Coder Social home page Coder Social logo

carlbennett / bnrbot Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 4.0 1.61 MB

Classic Battle.Net Realbasic Bot by @carlbennett, his flagship Classic Battle.net bot

License: MIT License

REALbasic 100.00%
battle-net blizzard bot diablo linux pvpgn real-studio starcraft warcraft windows

bnrbot's People

Contributors

carlbennett avatar davnit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bnrbot's Issues

An unhandled NilObjectException occurred.

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

Add //rj as an alias to //rejoin

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.

Fix chat auto-clearing

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:

  • It resets the entire chat instead of popping old messages off the back, leaving only one message available to read and abruptly interrupting conversations.
  • There are memory constraints the bot has to adhere to so the chat can't continue endlessly. There's a cost to storing old messages.
  • There are no logs of the chat that gets deleted off the screen.

A solution needs to be put in place to remedy the issue.

Configurable reconnect timer

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.

Diablo II local hashing should use the single game.exe file

[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

Option to replace ping bars with numbers

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.

Save config file as JSON instead of proprietary binary format

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:

  • Easy to modify outside of BNRBot
  • Easy to add onto with new features or bugfixes

But there's also disadvantages:

  • More fragile to user error
  • Realbasic's native JSONItem class is hard to work with

Flood detected breaks reconnect timer

If 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.

Fix double click and friends/clan member actions for Telnet/Chat protocols

[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>

Show ping when user enters the channel

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

Fix auto-scroll in chat box

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.

Fix user popup info getting stuck open

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.

Refactor notification of illegal characters in username

[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

NilObjectException while parsing SID_CHATEVENT

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.