Sweet man. Deadly brings up a good point. If you do release the bot, you have the unexpeted patch to download. Do you just download the patch from the world of warcraft cilent and then copy the folder into Jinxbot?
I've been trying to work that out with talking to Skywing. He suggested reverse-engineering the repair client and downloading the five files used in the revision check via the same service that the repair tool uses, which is likely similar to BnFTP. I just haven't bothered yet because I've been busy with other things like getting inventory management right ;-)
WoW uses 5 files (as I said) for version check: WoW.exe, dbghelp.dll, fmod.dll, ijl15.dll, and unicows.dll. Those are the only files JinxBot needs to connect to WoW. JinxBot reads the PE version information and then calculates the revision check. WoW's response (according to the MaNGOS source code with the constants) is one of the following:
public enum LoginProofResponse : byte
{
Okay = 0x00, // can get the realm list
InvalidPassword = 0x04, // if you can't figure this out, go kill yourself
InvalidVersion = 0x09, // checkrevision came out wrong. Perhaps a hacked exe or dll?
ValidVersionNeedsUpgrade = 0x0a, // WoW recognizes the version but you need to upgrade
}
I figure since people need to have an account to get online anyway they'll probably have the most updated CheckRevision files for the client. If they see that it says an upgrade is required, they can just get on their client and perform the upgrade.