News:

So the widespread use of emojis these days kinda makes forum smileys pointless, yeah?

Main Menu

JavaOp2 -- Beta 42! - Pre-Release discussion.

Started by Joe, February 18, 2007, 04:31:44 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Joe

- Re-created StayConnected plugin. Implements another attempt at detecting disconnects and acting upon them.
- Moved the 0x00 sending code from Ping to StayConnected, as it's more fitting there.
- Switched the code in the Ping plugin from SID_EXTRAWORK to the intended SID_OPTIONALWORK so it is now properly caught, and also added SID_REQUIREDWORK parsing, in responce to IX86BlueDrake.mpq and IX86FarSight.mpq annoying the life out of me. Both are debug messages.
- Re-enabled CheckRevision on a by-product basis. Currently, it is set up to throw a InvalidVersion exception (which is caught, of course) if the product is STAR, SEXP, or W2BN. This allows D2DV D2XP, WAR3, and W3XP to hash locally, although they will need their local hashing information updated (see below about _GameData.txt).
- All clients now use BNLS_VERSIONCHECKEX2, where STAR and SEXP originally used BNLS_VERSIONCHECK. This reduces the code size of BNetLogin.versioning.BNLSClient by a fair deal, and removes an ugly kludge that I had for a reason I can't even remember.
- Removed a few debugging message that I put in for myself and forgot to remove. They didn't even have any debugging value if you didn't know exactly where they were firing from, either.
- Removed all coding for RCRS. I have no intention of rewriting it for Lockdown, nor does iago, and the code was getting out of date quickly with the new BNLS support.
- Changed the BNLSClient class to save the instance of the BNLS socket once it's created. Now you only connect to BNLS once for all your data, instead of before, where it connected for both version byte and checkrevision causing twice the stress on both you and BNLS. I started this but due to some problems I ran into it's been postponed until [eventually]. It's still pretty high priority on my list though.
- Updated some hardcoded values, so we're getting closer to supporting local hashing out of the box again. However, I don't have time or resources to get the version hashes so they may still need to be updated manually, although rumor is that Battle.net doesn't care about them anymore. Delete your _GameData.txt to revert to my new settings if you'd like.
- Why was BotCore setting the version number to BotCoreStatic in it's constructor?! I've changed it so it's returned straight from BotCore as a "magic string". The Version plugin as well as StaticExposedFunctions (interface) has been updated to reflect this, and I note the API change below.
- Some pieces of data in the login blob, notably the formula and version statstring, were removed along with their terminator -- something that never should have happened. With the new removeNtByteArray() function this is corrected, and they are now followed by a terminator which is added in the function they are used in -- not to the data itself.
- BNLSClient's creation of it's socket is now tied in with the global timeout value. Previously, this was hardcoded to 5000 miliseconds and the global timeout was only used in connecting to Battle.net.
- Fixed the error where you'll fail login when using a password with some upper-case characters. Passwords are supposed to be case insensitive, but JavaOp2 wasn't setting them to all lowercase. This has been fixed for account creation, password changing, and account login.
- Better documented the BNLSClient methods, and rewrote some to do it's work slightly better.
- BNetLogin now uses the username as the CD-Key owner instead of "www.javaop.com". It just makes more sense to me. The only attention it got us was negative attention.
- JavaOp2 is once again built against 1.4!

API changes:
- javaop2_pub.util.Buffer has a new method -- byte[] removeNtByteArray(). This can be used for removing a field that is treated as a null-terminated String, but is not safe to treat as a java.lang.String due to non-printable characters (examples being the Lockdown-Style formulas and the new Version Statstrings).
- javaop2_pub.util.Buffer has a new method -- void addNtByteArray(byte[]). This is exactly the same as the above function, only backwards.
- javaop2_pub.callback_interfaces.StaticExposedFunctions has a new method -- String getVersion(). This simply returns a plain-text string stating the bot's version.
Quote from: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.


Ajan

Quote- JavaOp2 is once again built against 1.4!
Cute! Thx :) But a handy link would be much appreciated ;) .
We are but packets in this Internet of life.

Joe

See the last sentence. :P

If iago put the version number hardcoding in some place sensible.. :P
Quote from: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.


xXIanXx

I am The one the only The Ian!

Ersan

2 hours turned into 2 days, typical.

Allanon

Quote from: Ersan on February 20, 2007, 09:05:02 AM
2 hours turned into 2 days, typical.
Anyway good job, Joe :thumbs_up:
[I wanna change this World, but God don't give me sources]

Joe

Quote from: Ersan on February 20, 2007, 09:05:02 AM
2 hours turned into 2 days, typical.

Yeah. Heh.. that is typical of my projects. :-\.

ETA: Some time after BNLS comes back online. Until then it's useless to you all anyhow, so I might as well not even bother uploading it, eh?
Quote from: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.


Joe

#7
I messed a bunch of things up, then fixed them all. Now I just need to test it all, but the final fixing came along with me being IP banned on all servers (the whole null termination thing broke protocol hardcore) and dead tired. I'll see about getting around to testing/uploading it tomorrow after work, but I'm not sure.
Quote from: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.