This bot has been make by @LucBerge and is under MIT license.
- WIKI : Everything you need to know about the bot.
- INSTALLATION : How to install the bot.
- JAVA DOC : For developers.
- BUGS : For bug reports.
- CONTRIBUTION : You want to contribute ?
đźđ„đ€ Pixel bot for Dofus 2 using packet sniffing, mouse and keyboard emulations
Home Page: https://github.com/bot4dofus/B4D/wiki
License: MIT License
This bot has been make by @LucBerge and is under MIT license.
Is your feature request related to a problem? Please describe.
The current program selection uses dropdown lists, pograms are referenced by Place, Category, Subcategory and Titles. In this way, we cannot get a clear overview of all the programs making the program selection complicated.
Describe the solution you'd like
The idea would be to have a tableView with all the programs in it just like in the "Person" panel. The table has 4 rows : Category, Subcategory, Location and a title with possibility to add filter for each column to make a program searchable. Each program also have a short description which is displayed next to the table when seleted.
I have everything where it should be and when I try to run the B4D java file it tells me to please check my internet connection. Any idea if there is something I could do to fix this? It doesn't create an error text file when this happens.
Thanks.
Is your feature request related to a problem? Please describe.
When a program begins, the player position need to be retrieved for transportation API (to know where to go). It is currently done by doing %pos% in the chat. When the general channel is not displayed, it's impossible to get the position back. Because of this, every program has to have the Channel.GENERAL
set in the builder. Moreover, frequently running %pos% is a vulnerability for bot detection.
Describe the solution you'd like
The idea is simply to not use %pos% to get the current position of the player.
Describe alternatives you've considered
Bot installation and setup is missing on the Wiki
Is your feature request related to a problem? Please describe.
At each update, the socket ids change. We need a way to update the socket ids on the bot side as well.
Describe the solution you'd like
The bot need a json database matching the sockets ids with the event name.
Describe alternatives you've considered
When openning the bot, the database is updated based on the Datafus repo.
Describe the new program
Collect the trashes in:
This issue occurs when you try to execute B4D.jar with java 64-bit. Because jpcap.dll have been built for 32-bit architectures, B4D had to be built for 32-bit architectures as well.
Please install java 32-bit try again.
To temporary fixed this issue :
cd C:\path\to\B4D\folder
"C:\full\path\to\java32\bin\java.exe" -jar B4D.jar
Hello,
I have an Exception when i try to start the application:
java -jar B4D-2019.11.09.jar
=>
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\myuser\AppData\Local\Temp\jna-2095686\jna10876926830729102268.dll: Can't find dependent libraries
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617)
at java.base/java.lang.Runtime.load0(Runtime.java:765)
at java.base/java.lang.System.load(System.java:1835)
at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:851)
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:826)
at com.sun.jna.Native.(Native.java:140)
at com.sun.jna.Pointer.(Pointer.java:41)
at com.sun.jna.ptr.PointerByReference.(PointerByReference.java:28)
at com.sun.jna.ptr.PointerByReference.(PointerByReference.java:24)
at org.pcap4j.core.Pcaps.findAllDevs(Pcaps.java:51)
at org.pcap4j.core.Pcaps.getDevByAddress(Pcaps.java:99)
at fr.B4D.socket.PcapsFinder.findActiveDevice(PcapsFinder.java:45)
at fr.B4D.socket.SocketListener.(SocketListener.java:56)
at fr.B4D.bot.B4D.(B4D.java:67)
at fr.B4D.gui.JFrame_B4D.(JFrame_B4D.java:62)
at fr.B4D.gui.JFrame_B4D.main(JFrame_B4D.java:53)
This issue occurs when NetworkFinder.find() don't find any active device. Normaly, PacketCapture.findDevice() (from jpcap) should return the active device. But after few tests, this function only return the first device in the PacketCapture.lookupDevices() list. To find the active one, B4D listen on every devices in this list. When a packet is detected, the device name is returned.
Please keep trying and make sure you have an internet connection
java.lang.NullPointerException
at sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:728)
at sun.awt.SunToolkit.getImage(SunToolkit.java:762)
at fr.B4D.gui.JFrame_B4D.initialize(JFrame_B4D.java:78)
at fr.B4D.gui.JFrame_B4D.(JFrame_B4D.java:67)
at fr.B4D.gui.JFrame_B4D.main(JFrame_B4D.java:53)
Process finished with exit code 0
Is your feature request related to a problem? Please describe.
The java doc is manualy created with the maven command javadoc:javadoc.
Describe the solution you'd like
Setup a Javadoc pipeline that works in two steps :
Additional context
This ticket is the pipeline C on the picture
Describe the new program
Perform today's Alamanax:
Is your feature request related to a problem? Please describe.
To make sure good practices are used while coding, a static code analysis tool can like (SonarQube) can do the job to highlight vulnerabilities and errors.
Describe the solution you'd like
List and compare all the code analysis tools for github and pick one.
Add code analysis to the CI.
Additional context
This ticket is the pipeline E on the picture
Describe the bug
fr.B4D.bot.B4DException: org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403, URL=https://account.ankama.com/sso?from=http%3A%2F%2Fwww.krosmoz.com%2Ffr%2Falmanax%2F2021-04-01%3Fgame%3Ddofus
when trying to get today's almanax
To Reproduce
Try to get today's almanax
Expected behavior
Returns a list of items to get
Is your feature request related to a problem? Please describe.
The packaging part is manualy done. It is a waste of time.
Describe the solution you'd like
Setup a package pipeline that works in two steps :
Additional context
This ticket is the pipeline B on the picture
Describe the new program
The idea is to make a program that makes money based on runes. It compare the runes prices, buy runes, merge them and sell it.
Original message received by email:
Ouvre l'HDV Runes Ă Brak ou bonta.
Clic sur "Achat"
Coche la case "Runes de forgemagie si elle n'est pas déjà cochée
Clic sur le premier item de la liste pour lire et enregistrer le prix de l'ensemble des items listés
Pour chacunes de recettes connus, si le [prix de vente] x 0.98 - [prix d'achat] > [prix d'achat] x 0.2 alors il achete de quoi faire la recette. (En gros si il peut faire 20% de bénef en soustrayant la taxe de 2%.)
Le bot fait ainsi une liste de recette rentable à hauteur de 20% de bénef.
(Dans l'idĂ©al, se chiffre peut ĂȘtre modifiĂ© en dĂ©but de programme.)
Ferme l'hdv
Entre dans l'atelier de forgemages
Monte Ă l'Ă©tage en clicant sur l'escalier (il y a moins de monde en haut)
Clic sur le concasseur puis sur fusionner des ressources
Tant qu'il y a une recette Ă fabriquer
Tape dans la barre de recherche le nom de l'items qu'il doit créer
Double clic dessus
Clic sur le "1" pour entrer la quantité d'items à crafter (multiple de 100)
Ferme la fenĂštre
Descend au RDC
Sort du batiment
Clic sur l'HDV
Clic sur Vente
Tant u'il y a des runes Ă vendre dans son inventaire
Recherhce dans son inventaire le nom exacte des runes Ă vendre
Clic desus
Quantité : 100
Prix du lot = n-1 kamas
Entrer
Ferme hdv Runes
--------------------
Liste des recettes
--------------------
1) Runes primaires
300 Runes Fo --> 100 Runes Pa Fo
300 Runes Pa Fo --> 100 Runes Ra Fo
<=> 900 Runes Fo --> 300 Runes Pa Fo --> 100 Runes Ra Fo
300 Runes Age --> 100 Runes Pa Age
300 Runes Pa Age --> 100 Runes Ra Age
<=> 900 Runes Age --> 300 Runes Pa Age --> 100 Runes Ra Age
300 Runes Ine --> 100 Runes Pa Ine
300 Runes Pa Ine --> 100 Runes Ra Ine
<=> 900 Runes Ine --> 300 Runes Pa Ine --> 100 Runes Ra Ine
300 Runes Cha --> 100 Runes Pa Cha
300 Runes Pa Cha --> 100 Runes Ra Cha
<=> 900 Runes Cha --> 300 Runes Pa Cha --> 100 Runes Ra Cha
300 Runes Sa --> 100 Runes Pa Sa
300 Runes Pa Sa --> 100 Runes Ra Sa
<=> 900 Runes Sa --> 300 Runes Pa Sa --> 100 Runes Ra Sa
300 Runes Vi --> 100 Runes Pa Vi
300 Runes Pa Vi --> 100 Runes Ra Vi
<=> 900 Runes Vi --> 300 Runes Pa Vi --> 100 Runes Ra Vi
2) Runes secondaires
300 Runes Ini --> 100 Runes Pa Ini
300 Runes Pa Ini --> 100 Runes Ra Ini
<=> 900 Runes Ini --> 300 Runes Pa Ini --> 100 Runes Ra Ini
300 Runes Pod --> 100 Runes Pa Pod
300 Runes Pa Pod --> 100 Runes Ra Pod
<=> 900 Runes Pod --> 300 Runes Pa Pod --> 100 Runes Ra Pod
3) Runes dommage
300 Runes Do Feu --> 100 Runes Pa Do Feu
300 Runes Do Neutre --> 100 Runes Pa Do Neutre
300 Runes Do Eau --> 100 Runes Pa Do Eau
300 Runes Do Air --> 100 Runes Pa Do Air
300 Runes Do Terre --> 100 Runes Pa Do Terre
300 Runes Do Pou --> 100 Runes Pa Do Pou
300 Runes Do Cri --> 100 Runes Pa Do Cri
300 Runes Pui --> 100 Runes Pa Pui
300 Runes Pa Pui --> 100 Runes Ra Pui
<=> 900 Runes Pui --> 300 Runes Pa Pui --> 100 Runes Ra Pui
4) Runes RĂ©sistance
300 Runes RĂ© Feu --> 100 Runes Pa RĂ© Feu
300 Runes RĂ© Neutre --> 100 Runes Pa RĂ© Neutre
300 Runes RĂ© Eau --> 100 Runes Pa RĂ© Eau
300 Runes RĂ© Air --> 100 Runes Pa RĂ© Air
300 Runes RĂ© Terre --> 100 Runes Pa RĂ© Terre
300 Runes RĂ© Pou --> 100 Runes Pa RĂ© Pou
300 Runes RĂ© Pa --> 100 Runes Pa RĂ© Pa
300 Runes RĂ© Pme --> 100 Runes Pa RĂ© Pme
300 Runes RĂ© Pme --> 100 Runes Pa RĂ© Pme
5) Autres runes
300 Runes Pi Per --> 100 Runes Pa Pi Per
300 Runes Pa Pi Per --> 100 Runes Ra Pi Per
<=> 900 Runes Pi Per --> 300 Runes Pa Pi Per --> 100 Runes Ra Pi Per
300 Runes Pi --> 100 Runes Pa Pi
300 Runes Prospe --> 100 Runes Pa Prospe
300 Runes So --> 100 Runes Pa So
300 Runes Fui --> 100 Runes Pa Fui
300 Runes RĂ© Cri --> 100 Runes Pa RĂ© Cri
300 Runes Ret Pa --> 100 Runes Pa Ret Pa
300 Runes Ret Pme --> 100 Runes Pa Ret Pme
300 Runes Tac --> 100 Runes Pa Tac
Describe the new program
Automatically breed mounts
Create a d2o parser to crezte the entites objects
Create a d2i parser to create the entites translations
Is your feature request related to a problem? Please describe.
As for now, the world maps are hard coded in java. But the world can evolve.
Describe the solution you'd like
The world map must be built from the MapScrollActions.d2o file.
Is your feature request related to a problem? Please describe.
Building and testing the code is manualy done. It is long and repetitive.
Describe the solution you'd like
Setup a "Test" pipeline that works in three steps :
Additional context
This ticket is the pipeline A on the picture
Someone asked me for a flood program that sends a private message for each person entering/leaving the map. The parameters would be the following:
Original message by email:
[...] Ce que je veux prĂ©cisĂ©ment c'est un spam bot (un bot flood) pour partager mon discord etc.. sur le jeu. un bot qui permet d'envoyer un message privĂ© aux joueurs qui passent par la map. Je suis prĂȘt Ă payer pour cela si la fonctionnalitĂ© n'existe pas. [...]
surtout pour la publicité et pour monter mon discord mais certainement pas pour de l'arnaque. Je ne cherche pas à monter non plus un bot comme snowbot ou autre pour le commercialiser, ma demande se limite uniquement au flood dans le canal privé.
- pouvoir personnaliser le message
- personnaliser un délai entre les messages
- des champs pour le proxy
- pouvoir choisir entre personnages entrant / sortants.
Describe the new program
Move by foots to discover:
A quest must exists to perform it. If so, it is equivalent to perform a quest.
PacketCapture: loading native library jpcap.. ok
fr.B4D.bot.B4DException: Merci de vĐčrifier votre connection internet.
at fr.B4D.socket.os.Windows.findActiveDevice(Windows.java:47)
at fr.B4D.socket.SocketListener.(SocketListener.java:61)
at fr.B4D.bot.B4D.(B4D.java:74)
at fr.B4D.gui.JFrame_B4D.(JFrame_B4D.java:64)
at fr.B4D.gui.JFrame_B4D.main(JFrame_B4D.java:55)
A simple question to ask
When changing map, is there a way to get data such as players, jobs ressources status and monsters on it ?
Is your feature request related to a problem? Please describe.
It is hard to debug an error if the user cannot acces the full logs.
Describe the solution you'd like
When an exception occurs, create a log file in logs/yyyy-MM-dd HH:mm:ss.log
Describe the new program
Collect water in the wells:
Describe the bug
When pushing on github, the CI workflow triggers to compile and test the program. But the compilation fails because of an unknown symbol. It might be encoding related or platform dependant.
To Reproduce
I'm not able to reproduce the bug on windows on compilation. Someone on linux must try it.
Expected behavior
Compilation pass.
Error
Error: COMPILATION ERROR :
[INFO] -------------------------------------------------------------
Error: /home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[27,32] error: cannot find symbol
Error: package fr.B4D.programs.tutorials
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[28,32] error: cannot find symbol
Error: package fr.B4D.programs.tutorials
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[29,32] error: cannot find symbol
Error: package fr.B4D.programs.tutorials
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[30,32] error: cannot find symbol
Error: package fr.B4D.programs.tutorials
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[31,32] error: cannot find symbol
Error: package fr.B4D.programs.tutorials
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[35,32] error: cannot find symbol
Error: package fr.B4D.programs.tutorials
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[101,21] error: cannot find symbol
Error: class Program
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[105,21] error: cannot find symbol
Error: class Program
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[107,21] error: cannot find symbol
Error: class Program
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[109,21] error: cannot find symbol
Error: class Program
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[111,21] error: cannot find symbol
Error: class Program
/home/runner/work/B4D/B4D/src/main/java/fr/B4D/program/Program.java:[119,21] error: cannot find symbol
Please, if you can describe everything in English it will be nice (I'm Brazilian) and may I help you to get this project further..
I know there's a translator haha :)
Is your feature request related to a problem? Please describe.
The program licensing is only set in the LICENSE file, but it has no legal value if the files does not have license intro in it.
Describe the solution you'd like
List and compare all the License scan tools for github and pick one.
Add license scanning to the CI.
Additional context
This ticket is the pipeline D on the picture
Is your feature request related to a problem? Please describe.
The javadoc has been firstly done in French but internationnal users want to contribute to the bot.
Describe the solution you'd like
Replace the French javadoc by English javadoc.
Additional context
All the classes that have been created before 2020 are in French (eg).
All classes modified after 2020 are in English (eg).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
đ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. đđđ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google â€ïž Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.