News:

Holy shit, it's 2018 2019 2020 2021 2022 2023 2024, and the US isn't a fascist country! What a time to be alive.

Main Menu

JinxBot

Started by MyndFyre, January 18, 2005, 12:40:36 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

MyndFyre

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.
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

Newby

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

Quote from: Rule on June 30, 2008, 01:13:20 PM
Quote from: CrAz3D on June 30, 2008, 10:38:22 AM
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. 

Quik

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

Mythix

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


Quik

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

MyndFyre

Quote from: Quik 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 :)

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.  :)
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

Mythix

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


Quik

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

Mythix

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


MyndFyre

Quote from: Mythix 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?

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
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

Mythix

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


MyndFyre

Quote from: Mythix 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.

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
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

Mythix

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


Newby

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

Quote from: Rule on June 30, 2008, 01:13:20 PM
Quote from: CrAz3D on June 30, 2008, 10:38:22 AM
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. 

Quik

Quote from: MyndFyre on January 19, 2005, 01:29:04 AM
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