Author Topic: JavaOp2 -- Beta 42! - Pre-Release discussion.  (Read 3791 times)

0 Members and 1 Guest are viewing this topic.

Offline Joe

  • B&
  • x86
  • Hero Member
  • *****
  • Posts: 10319
  • In Soviet Russia, text read you!
    • View Profile
    • Github
JavaOp2 -- Beta 42! - Pre-Release discussion.
« on: February 18, 2007, 04:31:44 pm »
- 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.
« Last Edit: March 09, 2007, 01:14:57 am by Joe[x86] »
I'd personally do as Joe suggests

You might be right about that, Joe.


Offline Ajan

  • Newbie
  • *
  • Posts: 17
  • I have visited my profile
    • View Profile
    • War Masters clan
Re: JavaOp2 -- Beta 42!
« Reply #1 on: February 18, 2007, 04:36:46 pm »
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.

Offline Joe

  • B&
  • x86
  • Hero Member
  • *****
  • Posts: 10319
  • In Soviet Russia, text read you!
    • View Profile
    • Github
Re: JavaOp2 -- Beta 42!
« Reply #2 on: February 18, 2007, 05:04:54 pm »
See the last sentence. :P

If iago put the version number hardcoding in some place sensible.. :P
I'd personally do as Joe suggests

You might be right about that, Joe.


Offline xXIanXx

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: JavaOp2 -- Beta 42!
« Reply #3 on: February 19, 2007, 11:19:43 am »
Thank you very much.
I am The one the only The Ian!

Offline Ersan

  • Full Member
  • ***
  • Posts: 143
  • Hi! I'm new here!
    • View Profile
Re: JavaOp2 -- Beta 42!
« Reply #4 on: February 20, 2007, 09:05:02 am »
2 hours turned into 2 days, typical.

Offline Allanon

  • Newbie
  • *
  • Posts: 5
    • View Profile
    • Warcraft III : ecLipse Team
Re: JavaOp2 -- Beta 42!
« Reply #5 on: February 20, 2007, 12:12:08 pm »
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]

Offline Joe

  • B&
  • x86
  • Hero Member
  • *****
  • Posts: 10319
  • In Soviet Russia, text read you!
    • View Profile
    • Github
Re: JavaOp2 -- Beta 42!
« Reply #6 on: February 22, 2007, 12:11:18 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?
I'd personally do as Joe suggests

You might be right about that, Joe.


Offline Joe

  • B&
  • x86
  • Hero Member
  • *****
  • Posts: 10319
  • In Soviet Russia, text read you!
    • View Profile
    • Github
Re: JavaOp2 -- Beta 42!
« Reply #7 on: March 08, 2007, 02:38:50 am »
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.
« Last Edit: March 08, 2007, 02:40:22 am by Joe[x86] »
I'd personally do as Joe suggests

You might be right about that, Joe.