take a peek at the code:
Code:
.writeByte(14)
.writeByte(0);
c.sendBuffer();
String calculatedUsername = DEFAULT_USERNAME + c.getClientId();
int estimatedSize = 177 + calculatedUsername.length() + DEFAULT_PASSWORD.length();
c.getPacketBuilder().setBare(true)
.writeByte(16)
.writeShort(estimatedSize)
.writeInt(508)
.writeByte(0)
.writeByte(0)
.writeByte(0)
.writeShort(765)
.writeShort(503);
for (int i = 0; i < 8; i++) { //CHANGED IO=24 NIO=8???
c.getPacketBuilder().writeByte(0);
}
c.getPacketBuilder().writeString(calculatedUsername);
for (int i = 0; i < 29; i++) {
c.getPacketBuilder().writeInt(0);
}
notice the byte 0 being written after the byte 14... the byte 0 is the 'name part' hash byte and should NOT be 0... so check for this during login and dc if it's 0. secondly, it sends all container file checksums as 0 (i < 29 for-loop at end) which is IMPOSSIBLE for a real client to send. so... check for it too.