Valhalla Legends Forums Archive | Battle.net Bot Development | BN# Community Technology Preview - a Library for Battle.net Development

AuthorMessageTime
Myndfyr
This evening I posted a technology preview of BN# (that's "BN-Sharp"), a new utility library I've been working on that manages Battle.net connections.  Most of the gruntwork is done for you in a core that manages a client connection based on a settings object; all you have to do is handle events as you see fit.  BN# includes MBNCSUtil out of the box, and although some might try to compare BN# to CleanSlateBot and others, there are several important features to consider.

1.) I've done quite a bit of work optimizing the multithreaded core; under the hood, it supports the ability to prioritize packet handling order based on ID.  So, it could be configured to be an effective channel protection client, for example.
2.) The event system is also multithreaded and priority-based.  Although you can use standard .NET syntax for handling events, it also supports a callback version.  Standard .NET event registration handles events at Normal priority.  So even with a graphical client, it can still be an effective moderation core.
3.) BN# doesn't support a drag-and-drop architecture; users need to be able to implement some objects on their own.
4.) BN# is fully object-oriented, which means that the connection class can be subclassed to modify behavior.
5.) BN# is (read: will be once posted) open-source under a BSD-style license and will be hosted on Google Code.
6.) BN# manages memory by pooling and reusing memory for packets, saving approximately 50% of total memory usage over previous editions of JinxBot and helping to prevent heap fragmentation.

The build has been posted here: BN# Community Technology Preview -- be sure to check out the Wiki page and the documentation which is available at BN# - Table of Contents.
June 27, 2008, 6:52 AM
UserLoser
cool
June 27, 2008, 10:47 PM
bethra
[quote author=MyndFyre[vL] link=topic=17540.msg178676#msg178676 date=1214549548]
3.) BN# doesn't support a drag-and-drop architecture; users need to be able to implement some objects on their own.
[/quote]

Alright, I think this is the most significant difference between CSB and what you've developed.  It's not merely a single object or control you can just "drag and drop" onto a form and start using with minimal effort.
June 29, 2008, 1:35 AM
Myndfyr
[quote author=Sorc.Polgara link=topic=17540.msg178705#msg178705 date=1214703343]
[quote author=MyndFyre[vL] link=topic=17540.msg178676#msg178676 date=1214549548]
3.) BN# doesn't support a drag-and-drop architecture; users need to be able to implement some objects on their own.
[/quote]

Alright, I think this is the most significant difference between CSB and what you've developed.  It's not merely a single object or control you can just "drag and drop" onto a form and start using with minimal effort.
[/quote]

The honest truth is that it's not; the under-the-hood plumbing really is.  It's object-oriented and multithreaded, neither of which could have been accomplished in a VB control.

That said, it's the most significant outside-the-black-box change.
June 29, 2008, 7:49 AM
Myndfyr
BN# hits another milestone release today!  In today's release I added:
-- The ability to add custom packet handlers.  See the wiki article.
-- The ability to handle Warden.  See the wiki article.
-- Some clan support.  See the BNSharp.BattleNet.Clans namespace for more information.
-- High-level objects for Battle.net, including the Product class, which has information about clients; stats parsing for Warcraft III, Starcraft/War2BNE/Diablo, and Diablo II.
-- I can't remember if this was in the last release: BNI parsing support as part of MBNCSUtil.
-- Imported it into Google Code!  BN#, JinxBot, and the JinxBot Controls library are released under the modified BSD license.  As soon as I can figure out how to make MBNCSUtil share source code with BN#, that'll be available as well.  Check out our Google Code page.

Known issues:
-- Yes, I know that Friends events aren't there and not all clan packets work.
-- The Disconnect event would sometimes be fired twice.  I attempted to fix it but I'm not sure I tracked it down.

I welcome your feedback.  Please keep it on my forum there, though, or on the gcode issues tracker.  Thanks!!
July 10, 2008, 7:27 AM
Smarter
:-D As usual you make the things that make us all pee our pants just a little.
July 11, 2008, 7:31 AM
Myndfyr
[quote author=Smarter link=topic=17540.msg178904#msg178904 date=1215761487]
:-D As usual you make the things that make us all pee our pants just a little.
[/quote]
Uh..... K.
July 11, 2008, 7:52 AM
dlStevens
[quote author=Smarter link=topic=17540.msg178904#msg178904 date=1215761487]
:-D As usual you make the things that make us all pee our pants just a little.
[/quote]

Haven't you learned yet, MyndFyre doesn't enjoy complements.
July 11, 2008, 5:54 PM
Myndfyr
[quote author=Dale link=topic=17540.msg178908#msg178908 date=1215798845]
Haven't you learned yet, MyndFyre doesn't enjoy complements.
[/quote]
It's not so much that I mind compliments.  Let's discuss the specific detail of THAT one, though.  :P
July 11, 2008, 6:41 PM
dlStevens
;)
July 11, 2008, 7:55 PM

Search