Author Topic: Brining a piece of history back to life  (Read 8611 times)

0 Members and 1 Guest are viewing this topic.

Offline nslay

  • Hero Member
  • *****
  • Posts: 786
  • Giraffe meat, mmm
    • View Profile
Brining a piece of history back to life
« on: October 25, 2007, 03:02:11 am »
I've been thinking about writing a protocol/OS portable, feature complete, BNX clone with initial support for IRC.  Notably, Bacca's BNX clone is not only not feature complete, but because it uses greetbot as its base which is not protocol or OS portable.  Anyhow, I chose BNX in particular because it is not only a hallmark to ancient Battle.net history, but it is incredibly simple with some fun features that made it unique, even to the later more sophisticated bots.  I feel BNX or a BNX/clone, with some additional features and maintenance has the potential to be one of best all-round chat bots ever made.  My only problem is that I lack the time to really sit down and design and write it.  Earlier this evening, I thought it would be fun to bring the original BNX back to life and wrote a IRC <-> Battle.net gateway for it - dubbed 'ircbnet'.  It's not quite complete but has the essentials for most bots to run, though, if you chatted through it, you'd notice some stuff missing.  Hopefully, if/when I finish it, I can post it here for you folks who still enjoy messing with battle.net bots.

Here is a picture of BNX 1.02 running on EFNet...it sits in #thecabal if you'd like to play around with it (it does have primitive chatting abilities).  And yes, I am fully aware anti-idle is not necessary on IRC because of the PING/PONG mechanisms, but tried to implement everything as it should be.


At present, ircbnet only supports thet text protocol (which is the only thing I know) but hopefully I can make the design flexible enough for someone, who cared, to add other protocols (e.g. like the so called binary protocols).
Feel free to comment or post questions...

How it works:
One starts ircbnet providing it with an IRC server and port to connect to - there is an optional debug flag as well.  If the debug flag isn't specified, it forks into the background.  It listens on localhost:6112 and upon accepting a connection, does a blocking connect to the IRC server.  First line it reads from the bot is considered the nickname.  It lies to the bot telling it that it joined The Void.  If the bot is not in any channel, any channel text (TALK,EMOTE) it sends is silently dropped.  ircbnet only allows the bot in one channel at a time and upon joining a new channel will auto-part the previous channel.  Nickname changes on IRC are dealt with by LEAVE/JOIN combo (nslay NICK enslay causes nslay to LEAVE and enslay to JOIN).  ircbnet loosely deals with user flags...everyone by default has NOUDP flag, but the operator flag is loosely handled (e.g. upon joining a channel and getting a USER list, those users with 0012 who might talk, will appear to have 0010)...NOUDP and CHANOP are the only flags used so far.  If either the bot or IRC server disconnect, ircbnet drops the other connection and will continue to listen for bot connections.  ircbnet only allows 1 bot to connect at a time.

EDIT: P.S. BNX is running one wine :(
« Last Edit: October 25, 2007, 03:05:02 am by nslay »
An adorable giant isopod!

Offline Camel

  • Hero Member
  • *****
  • Posts: 1703
    • View Profile
    • BNU Bot
Re: Brining a piece of history back to life
« Reply #1 on: October 25, 2007, 04:59:22 pm »
Battle.net doesn't even accept CHAT connections any more; this would be more useful if it could proxy a BNCS connection.

<Camel> i said what what
<Blaze> in the butt
<Camel> you want to do it in my butt?
<Blaze> in my butt
<Camel> let's do it in the butt
<Blaze> Okay!

Offline nslay

  • Hero Member
  • *****
  • Posts: 786
  • Giraffe meat, mmm
    • View Profile
Re: Brining a piece of history back to life
« Reply #2 on: October 25, 2007, 08:26:17 pm »
Battle.net doesn't even accept CHAT connections any more; this would be more useful if it could proxy a BNCS connection.
Well, the intent was to be able to run BNX and other old bots over IRC...but mostly BNX since I want to create a clone of it and need something to study.  As I said, I'm going to try my best to make ircbnet easy to modify to extend to other battle.net protocols.
An adorable giant isopod!

Offline Camel

  • Hero Member
  • *****
  • Posts: 1703
    • View Profile
    • BNU Bot
Re: Brining a piece of history back to life
« Reply #3 on: October 27, 2007, 03:47:58 am »
Why would you clone something you can't use any more? If you want to make an IRC bot, make an IRC bot. Skip the middleman.

<Camel> i said what what
<Blaze> in the butt
<Camel> you want to do it in my butt?
<Blaze> in my butt
<Camel> let's do it in the butt
<Blaze> Okay!

Offline nslay

  • Hero Member
  • *****
  • Posts: 786
  • Giraffe meat, mmm
    • View Profile
Re: Brining a piece of history back to life
« Reply #4 on: October 27, 2007, 01:26:14 pm »
Why would you clone something you can't use any more? If you want to make an IRC bot, make an IRC bot. Skip the middleman.
I'm trying to clone BNX to run on IRC.  Not on battle.net.

EDIT: I  don't feel I've answered your question adequately.  Allow me to first quote myself from the very first post of the topic
Quote
I feel BNX or a BNX/clone, with some additional features and maintenance has the potential to be one of best all-round chat bots ever made.
Secondly, not being able to use BNX on battle.net does not mean it is a worthless bot to copy.  I've even highlighted that I feel BNX's fun features and simplicity make it an ideal bot regardless of the protocol.  This contrasts with IRC bots which are generally more complicated, and sometimes a hassle, to setup and run.
« Last Edit: October 27, 2007, 01:37:06 pm by nslay »
An adorable giant isopod!

Offline Camel

  • Hero Member
  • *****
  • Posts: 1703
    • View Profile
    • BNU Bot
Re: Brining a piece of history back to life
« Reply #5 on: October 28, 2007, 11:58:16 am »
I never said the bot wasnt worth cloning. All I said was your IRC to BNCS gateway is a waste of time, since the battle.net chat protocol is totally deprecated. And another thing thing: it already exists. Take a look at FSGS.

<Camel> i said what what
<Blaze> in the butt
<Camel> you want to do it in my butt?
<Blaze> in my butt
<Camel> let's do it in the butt
<Blaze> Okay!

Offline nslay

  • Hero Member
  • *****
  • Posts: 786
  • Giraffe meat, mmm
    • View Profile
Re: Brining a piece of history back to life
« Reply #6 on: October 28, 2007, 12:44:45 pm »
I never said the bot wasnt worth cloning. All I said was your IRC to BNCS gateway is a waste of time, since the battle.net chat protocol is totally deprecated. And another thing thing: it already exists. Take a look at FSGS.
FSGS is a game server, not a battle.net to IRC gateway.  I already explained to you that I wrote the gateway to study BNX...it took but a few hours to write.  You also missed a fact that was expressed 3 times in 2 different posts, that if there was interest the gateway could be generalized to support more than just the CHAT protocol.

An adorable giant isopod!

Offline Camel

  • Hero Member
  • *****
  • Posts: 1703
    • View Profile
    • BNU Bot
Re: Brining a piece of history back to life
« Reply #7 on: October 29, 2007, 03:42:41 pm »
Actually, FSGS is a gateway for BNCS, IRC, and others.

<Camel> i said what what
<Blaze> in the butt
<Camel> you want to do it in my butt?
<Blaze> in my butt
<Camel> let's do it in the butt
<Blaze> Okay!

Offline nslay

  • Hero Member
  • *****
  • Posts: 786
  • Giraffe meat, mmm
    • View Profile
Re: Brining a piece of history back to life
« Reply #8 on: October 29, 2007, 04:00:19 pm »
Actually, FSGS is a gateway for BNCS, IRC, and others.

It may support the IRC protocol, but it is most certainly not a gateway.  By "gateway" you must understand that this small and simple ircbnet tool does nothing more than translate CHAT to IRC protocol and vice versa to/from a full fledge IRC server.  FSGS actually serves IRC/CHAT/BNCS/CC/etc... by "serves" you must understand that it creates and fosters a chat environment by authenticating users, switching messages, and enforcing channel and user rules (it additionally supports gaming).  That is why it is a game server and not a gateway.  Think of 'gateway' as an IRC bouncer...except this one bounces CHAT to IRC. 
Aside, the acronym "FSGS" stands for "Free Standard Game Server".  First of all, the software is defunct, Blizzard went after the author because FSGS allowed pirated copies of Blizzard games to be played.  Second of all, I don't wish to run a vacant game server to do testing when I can use populated IRC networks.  Bnetd also fell victim to the same fate as FSGS.  The only one that remains is XGN which, like bnetd, does not serve IRC (even if it did I wouldn't run it!).
An adorable giant isopod!

Offline CetniK

  • Newbie
  • *
  • Posts: 76
  • There is an abundance of penises here.
    • View Profile
    • CetniK Webs
Re: Brining a piece of history back to life
« Reply #9 on: October 29, 2007, 08:29:52 pm »
nslay is my hero. :)

Offline Camel

  • Hero Member
  • *****
  • Posts: 1703
    • View Profile
    • BNU Bot
Re: Brining a piece of history back to life
« Reply #10 on: October 30, 2007, 05:21:50 pm »
Actually, if you are going to be technical about it, a gateway is defined as any link between two computer programs. There isn't any scope or purpose attached to the definition.

One specific type of gateway is the kind that converts between two incompatible protocols. This specific type of gateway is not defined as middleware; its defining characteristic is its ability to take information from a source in one format, and transfer it to alternate sources in alternate formats. FSGS meets the definition for this type of gateway, even though it's a server.

Unless it's for some reason imperative that you show off how awesome the bot you didn't write is to all of your EFNet buddies, FSGS will do everything you need.

<Camel> i said what what
<Blaze> in the butt
<Camel> you want to do it in my butt?
<Blaze> in my butt
<Camel> let's do it in the butt
<Blaze> Okay!

Offline nslay

  • Hero Member
  • *****
  • Posts: 786
  • Giraffe meat, mmm
    • View Profile
Re: Brining a piece of history back to life
« Reply #11 on: October 30, 2007, 07:08:04 pm »
Actually, if you are going to be technical about it, a gateway is defined as any link between two computer programs. There isn't any scope or purpose attached to the definition.
This one acts as a link between two programs...IRC Daemon and Battle.net bot...hence a "gateway".
Here, let me draw it in crayon for you

Quote

One specific type of gateway is the kind that converts between two incompatible protocols. This specific type of gateway is not defined as middleware; its defining characteristic is its ability to take information from a source in one format, and transfer it to alternate sources in alternate formats. FSGS meets the definition for this type of gateway, even though it's a server.
It really doesn't...because its a server!
I know wikipedia is no authority, but I think it presents this very simple idea quite well
Quote
A gateway, in computer networking technology, is a node that serves as an entrance to another network, and vice-versa. Gateways are most commonly used to transfer data between private networks and the Internet.
How does FSGS act as an entrance to another network again?  Oh thats right...it doesn't.  While I understand that 'gateway' normally refers to routers, I think the definition is very fitting to 'ircbnet' which is a node that acts as an entrance for battle.net bots to IRC networks.  Perhaps this is more along the lines of "proxy"...but in either case, FSGS is neither a gateway nor a proxy.

Quote
Unless it's for some reason imperative that you show off how awesome the bot you didn't write is to all of your EFNet buddies, FSGS will do everything you need.
Please reread why I don't use a battle.net daemon - thanks.  Feel free to look at some of the applications I did write.
http://nslay.36bit.com/

Of those include:
A generalized auto derivative library (listed)
A prototype of a P2P VPN (listed)
2 bnet bots listed there that were written for XGN (listed but restricted)
An assortment of miscellaneous libraries (listed)
And an almost complete clone of battle.net with support up to Warcraft III (bunker). (not listed)
A parallel port MIDI device driver for Linux (not listed, check on ALSA website)

Unfortunately due to time constraints some things in my archive are unfinished.

If you want to personally attack me, I can give you my take: You are a snot nose know-it-all who really doesn't know anything.  Nobody else has had such a difficult time grasping ideas and concepts presented here in.  This thread serves as a testament of how ignorant you really are.
An adorable giant isopod!

Offline Newby

  • x86
  • Hero Member
  • *****
  • Posts: 10877
  • Thrash!
    • View Profile
Re: Brining a piece of history back to life
« Reply #12 on: October 30, 2007, 10:09:56 pm »
Keep it civil please. Arguing is OK, but bringing in personal attacks (both of you) is something I'd like to avoid. :)
- 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 warz

  • Hero Member
  • *****
  • Posts: 1134
    • View Profile
    • chyea.org
Re: Brining a piece of history back to life
« Reply #13 on: October 31, 2007, 12:22:16 am »
man, i never used bnx because it was so lame. winters bot owned it hardcore. if bnx was a person, itd be eli manning, and if winters bot was a person itd be arnold schwarzenegger from the movie Commando, specifically the scene where he throws a table saw blade at a dudes head and it cuts it in half. damn you winters bot for being so damn cold blooded, a lot like winter in the northern states, that sort of cold.
http://www.chyea.org/ - web based markup debugger

Offline Joe

  • B&
  • Moderator
  • Hero Member
  • *****
  • Posts: 10319
  • In Soviet Russia, text read you!
    • View Profile
    • Github
Re: Brining a piece of history back to life
« Reply #14 on: October 31, 2007, 05:48:00 am »
man, i never used bnx because it was so lame. winters bot owned it hardcore. if bnx was a person, itd be eli manning, and if winters bot was a person itd be arnold schwarzenegger from the movie Commando, specifically the scene where he throws a table saw blade at a dudes head and it cuts it in half. damn you winters bot for being so damn cold blooded, a lot like winter in the northern states, that sort of cold.

My pants require changing but I'm laughing too hard to do so.
I'd personally do as Joe suggests

You might be right about that, Joe.


Offline Camel

  • Hero Member
  • *****
  • Posts: 1703
    • View Profile
    • BNU Bot
Re: Brining a piece of history back to life
« Reply #15 on: October 31, 2007, 02:05:37 pm »
How does FSGS act as an entrance to another network again?  Oh thats right...it doesn't.  While I understand that 'gateway' normally refers to routers, I think the definition is very fitting to 'ircbnet' which is a node that acts as an entrance for battle.net bots to IRC networks.  Perhaps this is more along the lines of "proxy"...but in either case, FSGS is neither a gateway nor a proxy.

Have you ever used IRC? Do you even know what it stands for? Here's a picture of what IRC looks like, from Wikipedia.

« Last Edit: October 31, 2007, 02:14:50 pm by Camel »

<Camel> i said what what
<Blaze> in the butt
<Camel> you want to do it in my butt?
<Blaze> in my butt
<Camel> let's do it in the butt
<Blaze> Okay!

Offline Joe

  • B&
  • Moderator
  • Hero Member
  • *****
  • Posts: 10319
  • In Soviet Russia, text read you!
    • View Profile
    • Github
Re: Brining a piece of history back to life
« Reply #16 on: November 01, 2007, 01:49:39 am »
Holy shit, Camel. Did you totally miss what nslay is talking about? He's writing a piece of software that a Battle.net bot can connect to, assuming it's a Battle.net server, which in turn his software will connect to an IRC server and act as a gateway for the chatevents to be sent to IRC from the Battle.net client, and vice-versa.
I'd personally do as Joe suggests

You might be right about that, Joe.


Offline Camel

  • Hero Member
  • *****
  • Posts: 1703
    • View Profile
    • BNU Bot
Re: Brining a piece of history back to life
« Reply #17 on: November 01, 2007, 12:21:35 pm »
I think you missed my point, Joe. I was saying that FSGS can do everything this gateway could do if it was fully functional, and then more!

Since FSGS is an IRC server, it can interlink with existing IRC networks, and at the same time act as a gateway to BNCS. Effectively, you can put any battle.net CHAT, or binary bot on any IRC server. Hell, you can even play games!

<Camel> i said what what
<Blaze> in the butt
<Camel> you want to do it in my butt?
<Blaze> in my butt
<Camel> let's do it in the butt
<Blaze> Okay!