carlbennett / bnrbot Goto Github PK
View Code? Open in Web Editor NEWClassic Battle.Net Realbasic Bot by @carlbennett, his flagship Classic Battle.net bot
License: MIT License
Classic Battle.Net Realbasic Bot by @carlbennett, his flagship Classic Battle.net bot
License: MIT License
no other details were provided.
Packets.ParseSID_CHATEVENT%b%o<BNETSocket>s
Packets.Parse%b%o<BNETSocket>u1ss
Packets.ReceiveSID%%o<BNETSocket>
Packets.Receive%%o<BNETSocket>
BNETSocket.Event_DataAvailable%%o<BNETSocket>
Delegate.Invoke%%
Application._CallFunctionWithExceptionHandling%%o<Application>p
_Main
% main
Typing //rj
results in the following message:
[9:11:45 PM] Error - unrecognized internal command. Type //help for info.
It should instead perform the action of //rejoin
.
When sending text from the bot, the chat input should be limited to 223 characters.
Be mindful of the following too:
/me
/emote
/w
/msg
/whisper
Currently the only way to change proxy information is by using //proxy
which can be non-trivial at times to use.
It's already added to the configuration window, but doesn't work online.
Add a feature to notify the user if they are mentioned in chat.
This will need more digging into first before it can be resolved easily.
The chat will auto-clear after every 100 messages or so (an exact number can be found in the source code). This is troublesome due to several reasons:
A solution needs to be put in place to remedy the issue.
I'd like to be able to right-click on the channel name in the upper right and have the option to copy the name to my clipboard.
As it stands 5 minutes is the only option. I found the 300000ms setting and could have forked it to change something I think(not really sure about the whole fork thing) but I though it would be better if it were added to the configuration screen. I don't know anything about realBASIC and its forms so I would be lost there.
[6/14/2016 1:17:09 PM] <Code@USEast> when was the last time game.exe was updated for diablo II? I got mine from jailout's ftp, last modified march 15, 2016
[6/14/2016 1:18:02 PM] <Code@USEast> working on updating my cd-key tester and fixing the d2 product. Not sure if it's my game.exe being invalid or if the hashing library i use needs to be updated to properly hash a d2 client
[6/14/2016 1:19:44 PM] <Code@USEast> since it seems supplying a null value for either of the 2 remaining hash files (to libbnet's checkrevision function) creates an infinite loop, so I'm not sure if all i need is an updated game.exe file or i just need to
[6/14/2016 1:19:50 PM] <Code@USEast> use an alternate hashing procedure
[6/14/2016 5:16:49 PM] <Pyro> it was updated a few days ago
[6/14/2016 5:16:59 PM] <Pyro> 6/7/2016
[6/14/2016 5:17:31 PM] <Pyro> his is about 3 versions out of date
[6/14/2016 5:19:09 PM] <Pyro> what hashing library do you use
[6/14/2016 5:30:43 PM] <Pyro> oh idk about libbnet
[6/14/2016 5:30:49 PM] <Pyro> never used it or seen the code behind it
[6/14/2016 6:28:43 PM] <Code@USEast> can i get the updated game.exe off you?
[6/14/2016 6:28:52 PM] <Code@USEast> or do you have an ftp i can get it from?
[6/14/2016 6:29:26 PM] <Pyro> http://davnit.net/bnet/hashes/zip/
[6/14/2016 6:29:29 PM] <Code@USEast> thanks
[6/14/2016 6:30:46 PM] <Code@USEast> that was modified 5/31/2016
[6/14/2016 6:30:51 PM] <Code@USEast> for d2dv
[6/14/2016 6:31:10 PM] <Pyro> oh
[6/14/2016 6:31:13 PM] <Pyro> uhhh
[6/14/2016 6:32:06 PM] <Pyro> that's weird
[6/14/2016 6:32:46 PM] <Code@USEast> same with d2xp
[6/14/2016 6:34:13 PM] <Pyro> guess i forgot to update the zips
[6/14/2016 6:34:17 PM] <Pyro> should be fixed
[6/14/2016 6:34:32 PM] <Code@USEast> ok
[6/14/2016 6:34:52 PM] <Pyro> should really automate this whole process
[6/14/2016 6:36:03 PM] <Code@USEast> ugh ok, this method doesn't work
[6/14/2016 6:36:42 PM] <Code@USEast> i tried using bncsutil back in the day but couldn't get it to work for some reason, so that's why i looked for something else, found a project that utilized libbnet and built off of it
[6/14/2016 6:36:55 PM] <Code@USEast> guess i ought to get values from BNLS and cache them
[6/14/2016 6:37:39 PM] <Code@USEast> that wouldn't still work, would it? i assume it'd need to be updated to support d2
[6/14/2016 6:39:15 PM] <Pyro> BNLS?
[6/14/2016 6:39:20 PM] <Pyro> i updated jbls to work with d2
[6/14/2016 6:39:48 PM] <Pyro> and afaik all of the major servers are running the updated version
[6/14/2016 6:40:40 PM] <Code@USEast> guess JBLS is the only way to go atm
[6/14/2016 6:41:00 PM] <Pyro> warden.dll can do it
[6/14/2016 6:41:06 PM] <Pyro> and i'm pretty sure bncsutil can
[6/14/2016 6:41:17 PM] <Pyro> if you just call checkrevision with numFiles == 1
[6/14/2016 6:41:30 PM] <Code@USEast> oh
[6/14/2016 6:41:58 PM] <Pyro> MEXP(int) checkRevision(const char* formula, const char* files[], int numFiles,
[6/14/2016 6:42:01 PM] <Pyro> int mpqNumber, unsigned long* checksum)
[6/14/2016 6:42:19 PM] <Code@USEast> ah i see
[6/14/2016 6:42:22 PM] <Code@USEast> cool
The main window does not have a default / non-profile page. This is an issue when loading the bot for the first time.
When a user enters or parts the channel, or simply gets an update such as now being channel operator, the list will scroll up to the top instead of remaining at its current position.
With commit f862145 introduced a new cookie class and global cookie dictionary. The other global cookie dictionaries using custom string data should be refactored to use the new feature.
This function was removed but the code within it was not re-added:
Sometimes ping bars are nice but sometimes I just want to be able to show the numbers instead.
It would be cool if the numbers were still drawn using the red, yellow, and green colors like the ping bars are.
Should BNRBot save its config file as a JSON file instead of its own proprietary binary format like it does now?
There are several advantages to this:
But there's also disadvantages:
JSONItem
class is hard to work withIf a flood detected message is received, all future reconnects will fail; the bot will announce "reconnecting in 2 minutes" regardless of the user's reconnect interval setting, and will also never actually reconnect after this message.
The bot should be capable of retrieving and using the icons.bni
file from Battle.net instead of using its own hardcoded icons.
Create a feature that introduces client-side squelching and maintain this list between restarts of the application.
Starting with release 2.1.0.36, the configuration files were renamed from BNRBot v2.dat
to just BNRBot.dat
but this breaks older installations since the new release doesn't recognize the old filename. There should be an option to detect the old file and automatically rename it to the new name.
[1/26/2017 3:47:50 AM] Joined Channel: init 6 (Private)
[1/26/2017 3:47:50 AM] This is a chat channel. No Ops will be given.
[1/26/2017 4:17:38 AM] <TeK> ÿe�/PONG 9Hi4
[1/26/2017 4:18:03 AM] <TeK> ÿ&�����à€}TeKprofile\ageprofile\sexprofile\locationprofile\descriptionrecord\CHAT\0\winsrecord\CHAT\0\lossesrecord\CHAT\0\disconnectsrecord\CHAT\0\last game resultrecord\CHAT\0\last gamerecord\CHAT\1\winsrecord\CHAT\1\lossesrecord\C
[1/26/2017 4:27:59 AM] <Jailout2000> nice
[1/26/2017 4:28:41 AM] <Jailout2000> ÿ}��ÿe�/PONG g2US
[1/26/2017 4:28:49 AM] <Jailout2000> ÿe�/squelch [)ark~Goran
[1/26/2017 4:28:52 AM] [)ark~Goran has been squelched.
[1/26/2017 4:28:52 AM] INIT6: User [)ark~Goran is now squelched.
[1/26/2017 4:28:53 AM] [)ark~Goran has been unsquelched.
[1/26/2017 4:28:53 AM] INIT6: User [)ark~Goran is no longer squelched.
[1/26/2017 4:28:59 AM] <Jailout2000> ÿ&¥���!PÐEJailout2000profile\ageprofile\sexprofile\locationprofile\descriptionrecord\CHAT\0\winsrecord\CHAT\0\lossesrecord\CHAT\0\disconnectsrecord\CHAT\0\last game resultrecord\CHAT\0\last gamerecord\CHAT\1\winsrecord\CHAT\1\losses
[1/26/2017 4:29:02 AM] Filip has been squelched.
[1/26/2017 4:29:02 AM] INIT6: User Filip is now squelched.
[1/26/2017 4:29:03 AM] Filip has been unsquelched.
[1/26/2017 4:29:03 AM] INIT6: User Filip is no longer squelched.
[1/26/2017 4:29:30 AM] <Jailout2000> ÿ&¥���¥ˆ��Jailout2000profile\ageprofile\sexprofile\locationprofile\descriptionrecord\CHAT\0\winsrecord\CHAT\0\lossesrecord\CHAT\0\disconnectsrecord\CHAT\0\last game resultrecord\CHAT\0\last gamerecord\CHAT\1\winsrecord\CHAT\1\losses
[1/26/2017 4:30:08 AM] <Jailout2000 is using BNRBot v2.8.3.56 (Release) by Jailout2000>
Current:
[6:40:53 PM] -- Ribose joined the channel using Warcraft III The Frozen Throne.
Proposed:
[6:40:53 PM] -- Ribose joined the channel; 391ms, Warcraft III The Frozen Throne
Filter messages that are repetitive, such as when a user says the same thing twice without a different message in between.
The config window should open to whatever profile I'm currently viewing.
The config window feels pretty cluttered and unorganized. Clean it up and make it feel better to use.
If the user clicks inside the chat box, it will stop auto-scrolling until they refresh the profile. It should begin auto-scrolling again after they de-select the box instead.
When a user uses the bot for the first time and a new configuration is generated, the ping ranges aren't filled with default values, the same default values that get assigned by pushing the Reset to Defaults
button in the config window.
The popup info in the channel user list window gets stuck open almost consistently. It will also remain hovering when you switch to a different application. It does close when you minimize the program.
Windows 10 x64 intel.
[1/23/2017 8:52:42 PM] <+|{W+zenik> jail. ur bot keeps giving me this warning about illegal characters
[1/23/2017 8:53:12 PM] <Jailout2000> oh yeah I forgot about that bug
[1/23/2017 8:53:13 PM] <Jailout2000> just hit tab
[1/23/2017 8:53:17 PM] <Jailout2000> don't click
[1/23/2017 8:53:31 PM] <+|{W+zenik> okay
[1/23/2017 8:53:34 PM] <+|{W+zenik> ty
[1/23/2017 8:53:54 PM] <Jailout2000> I'll fix that while I have the source open
[1/23/2017 8:54:09 PM] <Jailout2000> I don't ever use illy's lol
The bot can send it but doesn't know how to receive it. It probably needs a new window/UI for it too.
no other details were provided.
Packets.ParseSID_CHATEVENT%b%o<BNETSocket>s
Packets.Parse%b%o<BNETSocket>u1ss
Packets.ReceiveSID%%o<BNETSocket>
Packets.Receive%%o<BNETSocket>
BNETSocket.Event_DataAvailable%%o<BNETSocket>
Delegate.Invoke%%
Application._CallFunctionWithExceptionHandling%%o<Application>p
_Main
% main
Create a feature that allows the user to blacklist certain messages, possibly using regular expressions or exact matching.
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.