Author Topic: JinxBot  (Read 31643 times)

0 Members and 1 Guest are viewing this topic.

Offline MyndFyre

  • Boticulator Extraordinaire
  • Moderator
  • Hero Member
  • *****
  • Posts: 4540
  • The wait is over.
    • View Profile
    • JinxBot :: the evolution in boticulation
JinxBot
« on: January 18, 2005, 12:40:36 am »
After doing quite a bit of development on ArmaBot past the version available on the website, I decided to put ArmaBot away and begin work on a completely new project.  There were several issues that were tough to overcome, and there was also the problem that the code had become spaghettified.  Over 55,000 lines of code in 12 modules, it got the job done, but it was also a bit top-heavy.  There was also one other motivating factor -- ArmaBot can't get online at work.  There's a firewall at my work that prevents me from connecting to nonstandard ports; I can get onto port 443, 25, 21, and 80, but that's it.

With that, and seeing the news that Stealth is no longer going to be releasing further releases of StealthBot, he and I are working on JinxBot.

JinxBot will use a similar design pattern to that found in ArmaBot; specifically, it will be divided into well-designed, specific modules.  A single assembly will be responsible for creating and maintaining connections; all connections derive from a shared base class called ConnectionProtocol, which maintains a queue of Buffer objects waiting to be sent in prioritized order.  In order to use these connection objects, an external assembly will only be required to implement a single interface and then register itself for events.

JinxBot's APIs and user interface will be set up so that it can support language packs.

Beyond the connection module, JinxBot will run primarily as a Windows Service.  It will enumerate over available connection profiles defined and then enumerate over each server-side plugin defined.

Commands will be able to be applied per-plugin and will automatically load their help strings.  Additionally, commands will be loaded through reflection; all commands will be called with the same function interface, and when the plugin .DLL is loaded, a hashtable will store a pointer to the function that should be called when the command is executed.  Security will be checked before the command is executed.

A client is run remotely.  JinxBot will implement the Remote Bot Protocol (RBP) with the BNCS, BotNet, and zlib packages as documented by Skywing.  Coincidentally, JinxBot *should* be able to interoperate with BinaryChat Server (BinaryChat v4) on both the server and client sides.  JinxBot extensions to the RBP will allow me to use a separate utility to create additional connection profiles on the server.

The client will manage its own plugins locally, and a special enumeration will be designed to allow developers to create plugins that extend various aspects of the user interface, from additional menu items on the context menus (such as a plugin to copy chat text to UBBC) to additional collapsed tabs.

JinxBot is currently found at http://www.sourceforge.net/projects/jinxbot/ .  It is completely open-source, and currently connects to Battle.net via BNLS on Starcraft, Brood War, Warcraft II: Battle.net Edition, and Diablo II via a console.  To exit the console, type "exit" and press enter.
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Our species really annoys me.

Offline Newby

  • x86
  • Hero Member
  • *****
  • Posts: 10877
  • Thrash!
    • View Profile
Re: JinxBot
« Reply #1 on: January 18, 2005, 07:13:39 pm »
I got to see the GUI betas! :D
- Newby
http://www.x86labs.org

Quote
[17:32:45] * xar sets mode: -oooooooooo algorithm ban chris cipher newby stdio TehUser tnarongi|away vursed warz
[17:32:54] * xar sets mode: +o newby
[17:32:58] <xar> new rule
[17:33:02] <xar> me and newby rule all

I'd bet that you're currently bloated like a water ballon on a hot summer's day.

That analogy doesn't even make sense.  Why would a water balloon be especially bloated on a hot summer's day? For your sake, I hope there wasn't too much logic testing on your LSAT. 

Offline Quik

  • Webmaster Guy
  • x86
  • Hero Member
  • *****
  • Posts: 3262
  • \x51 \x75 \x69 \x6B \x5B \x78 \x38 \x36 \x5D
    • View Profile
Re: JinxBot
« Reply #2 on: January 18, 2005, 08:44:18 pm »
I checked out the source over at sourceforge, errors on my system when I try to execute.

Newby, they are amazing :)
Quote
[20:21:13] xar: i was just thinking about the time iago came over here and we made this huge bomb and light up the sky for 6 min
[20:21:15] xar: that was funny

Offline Mythix

  • The Dude
  • x86
  • Hero Member
  • *****
  • Posts: 1569
  • Victory
    • View Profile
    • Dark-Wire
Re: JinxBot
« Reply #3 on: January 18, 2005, 08:52:26 pm »
My eyes must have corrupted. I didn't see any screenshots :( anychance someone could post a link to one?
Philosophy, n. A route of many roads leading from nowhere to nothing.

- Ambrose Bierce


Offline Quik

  • Webmaster Guy
  • x86
  • Hero Member
  • *****
  • Posts: 3262
  • \x51 \x75 \x69 \x6B \x5B \x78 \x38 \x36 \x5D
    • View Profile
Re: JinxBot
« Reply #4 on: January 18, 2005, 09:41:01 pm »
Hmm, don't think so. At least, not at this time. I saw them a bit ago, and will just comment on them anonymously until Myndfyre gives the OK to post them, since at the time I saw them he hadn't said anything about the bot publicly.

On a side note, Mynd: Just tell me when you need any of that work done, I know it comes later but I'll be ready. Please, the coming week (Jan 24 - 28) and the preceeding weekend I will be working on finals, and won't have a ton of time. With this in mind, I can help whenever needed. Hope the project runs smoothly :)
Quote
[20:21:13] xar: i was just thinking about the time iago came over here and we made this huge bomb and light up the sky for 6 min
[20:21:15] xar: that was funny

Offline MyndFyre

  • Boticulator Extraordinaire
  • Moderator
  • Hero Member
  • *****
  • Posts: 4540
  • The wait is over.
    • View Profile
    • JinxBot :: the evolution in boticulation
Re: JinxBot
« Reply #5 on: January 18, 2005, 10:33:25 pm »
Hmm, don't think so. At least, not at this time. I saw them a bit ago, and will just comment on them anonymously until Myndfyre gives the OK to post them, since at the time I saw them he hadn't said anything about the bot publicly.

On a side note, Mynd: Just tell me when you need any of that work done, I know it comes later but I'll be ready. Please, the coming week (Jan 24 - 28) and the preceeding weekend I will be working on finals, and won't have a ton of time. With this in mind, I can help whenever needed. Hope the project runs smoothly :)

Right now I'm putting together all of the GUI common components files right now so that when I have the RBP system set up I can just plug it in and go.  Since there is a standalone version for Win9x and a server-client version for NT/2000/XP, almost all of the controls will actually be contained in a DLL.  :)  But I just resumed school, and Stealth still hasn't finished SB 2.6 (I guess there are some issues with the queue), so he hasn't gotten around to it yet, either.  I'll keep you posted.

Also -- about the errors: use the multilanguage versions.  Those run.  I haven't identified the cause of the FileNotFoundException that gets thrown in the English-only versions, but I only have English-language XML files anyway, so it's all good.  ;)

This is a screenshot of an early prototype (the UI has already evolved significantly from this, but it still has the general idea):

I'm going for a VS-2003-look.  :)
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Our species really annoys me.

Offline Mythix

  • The Dude
  • x86
  • Hero Member
  • *****
  • Posts: 1569
  • Victory
    • View Profile
    • Dark-Wire
Re: JinxBot
« Reply #6 on: January 18, 2005, 10:49:01 pm »
That looks great, trendwhore! (kidding)

I like the sidelist, thats a neat idea.
Philosophy, n. A route of many roads leading from nowhere to nothing.

- Ambrose Bierce


Offline Quik

  • Webmaster Guy
  • x86
  • Hero Member
  • *****
  • Posts: 3262
  • \x51 \x75 \x69 \x6B \x5B \x78 \x38 \x36 \x5D
    • View Profile
Re: JinxBot
« Reply #7 on: January 19, 2005, 12:40:29 am »
Everything in JinxBot.Console\obj errors, and that error is: Application has generated an exception that could not be handled.

Process id=0xa98 (2712), Thread id=0x180 (384).

Click OK to terminate, CANCEL to DEBUG.

Clicking CANCEL does this:

Registered JIT debugger is not available. An attempt to launch a JIT debugger with the following command resulted in an error code of 0x2 (2). Please check computer settings.

cordbg.exe !a 0xa98

More crap about retry and so forth. Guess I don't have the debugger :p

All 4 folders (excluding the hidden CVS folder of course) contained executables with the same error.

I love that GUI. I think it's very unique and flexible.
Quote
[20:21:13] xar: i was just thinking about the time iago came over here and we made this huge bomb and light up the sky for 6 min
[20:21:15] xar: that was funny

Offline Mythix

  • The Dude
  • x86
  • Hero Member
  • *****
  • Posts: 1569
  • Victory
    • View Profile
    • Dark-Wire
Re: JinxBot
« Reply #8 on: January 19, 2005, 01:00:16 am »
My only concern with a nice advanced GUI like that, is how much ram usage alone will it use?
Philosophy, n. A route of many roads leading from nowhere to nothing.

- Ambrose Bierce


Offline MyndFyre

  • Boticulator Extraordinaire
  • Moderator
  • Hero Member
  • *****
  • Posts: 4540
  • The wait is over.
    • View Profile
    • JinxBot :: the evolution in boticulation
Re: JinxBot
« Reply #9 on: January 19, 2005, 01:29:04 am »
My only concern with a nice advanced GUI like that, is how much ram usage alone will it use?

You *should* be in the bin/ folder, not the obj/ folder silly.  :P

As far as I can tell, GUI takes about 25mb of RAM give or take a few, and shrinks to about 1mb when minimized.  Obviously then the Service, which is the moderation part of it, will take very little.

But with 512mb or 1gb of RAM to burn, who cares about a piddly 25mb anyway?  :P
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Our species really annoys me.

Offline Mythix

  • The Dude
  • x86
  • Hero Member
  • *****
  • Posts: 1569
  • Victory
    • View Profile
    • Dark-Wire
Re: JinxBot
« Reply #10 on: January 19, 2005, 01:39:28 am »
WHAT IF I HAVE  64 MB OF RAM?!?!? I'm too poor to afford a new stick! what then?! you failed.
Philosophy, n. A route of many roads leading from nowhere to nothing.

- Ambrose Bierce


Offline MyndFyre

  • Boticulator Extraordinaire
  • Moderator
  • Hero Member
  • *****
  • Posts: 4540
  • The wait is over.
    • View Profile
    • JinxBot :: the evolution in boticulation
Re: JinxBot
« Reply #11 on: January 19, 2005, 01:42:18 am »
WHAT IF I HAVE  64 MB OF RAM?!?!? I'm too poor to afford a new stick! what then?! you failed.

If you have 64 mb of RAM then you're still running Windows 95, and unfortunately, the .NET platform is not supported on Windows 95.  You lose anyway.  G_G
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Our species really annoys me.

Offline Mythix

  • The Dude
  • x86
  • Hero Member
  • *****
  • Posts: 1569
  • Victory
    • View Profile
    • Dark-Wire
Re: JinxBot
« Reply #12 on: January 19, 2005, 01:46:08 am »
I cross haxed and mated windows 95 with 2000, I call it Windows2095.
Philosophy, n. A route of many roads leading from nowhere to nothing.

- Ambrose Bierce


Offline Newby

  • x86
  • Hero Member
  • *****
  • Posts: 10877
  • Thrash!
    • View Profile
Re: JinxBot
« Reply #13 on: January 19, 2005, 08:17:17 pm »
I have Windows 2098. It is elite.
- Newby
http://www.x86labs.org

Quote
[17:32:45] * xar sets mode: -oooooooooo algorithm ban chris cipher newby stdio TehUser tnarongi|away vursed warz
[17:32:54] * xar sets mode: +o newby
[17:32:58] <xar> new rule
[17:33:02] <xar> me and newby rule all

I'd bet that you're currently bloated like a water ballon on a hot summer's day.

That analogy doesn't even make sense.  Why would a water balloon be especially bloated on a hot summer's day? For your sake, I hope there wasn't too much logic testing on your LSAT. 

Offline Quik

  • Webmaster Guy
  • x86
  • Hero Member
  • *****
  • Posts: 3262
  • \x51 \x75 \x69 \x6B \x5B \x78 \x38 \x36 \x5D
    • View Profile
Re: JinxBot
« Reply #14 on: January 19, 2005, 09:21:01 pm »
You *should* be in the bin/ folder, not the obj/ folder silly. :P

You're horrible, why put in the other crap then?! You're just trying to confuse me!
Quote
[20:21:13] xar: i was just thinking about the time iago came over here and we made this huge bomb and light up the sky for 6 min
[20:21:15] xar: that was funny