handling of broken packets

This commit is contained in:
bixilon 2020-06-03 14:28:32 +02:00
parent 11f95213d3
commit 3d5a1249da
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -136,15 +136,14 @@ public class Network {
while (binQueueIn.size() > 0) { while (binQueueIn.size() > 0) {
// read data // read data
byte[] raw = binQueueIn.get(0); byte[] decrypted = binQueueIn.get(0);
InPacketBuffer inPacketBuffer; InPacketBuffer inPacketBuffer;
if (encryptionEnabled) { if (encryptionEnabled) {
// decrypt // decrypt
byte[] decrypted = cipherDecrypt.update(raw); decrypted = cipherDecrypt.update(decrypted);
inPacketBuffer = new InPacketBuffer(decrypted);
} else {
inPacketBuffer = new InPacketBuffer(raw);
} }
try {
inPacketBuffer = new InPacketBuffer(decrypted);
Packets.Clientbound p = connection.getVersion().getProtocol().getPacketByCommand(connection.getConnectionState(), inPacketBuffer.getCommand()); Packets.Clientbound p = connection.getVersion().getProtocol().getPacketByCommand(connection.getConnectionState(), inPacketBuffer.getCommand());
Class<? extends ClientboundPacket> clazz = Protocol.getPacketByPacket(p); Class<? extends ClientboundPacket> clazz = Protocol.getPacketByPacket(p);
@ -161,6 +160,10 @@ public class Network {
// safety first, but will not occur // safety first, but will not occur
e.printStackTrace(); e.printStackTrace();
} }
} catch (ArrayIndexOutOfBoundsException e) {
Log.protocol("Received broken packet!");
e.printStackTrace();
}
binQueueIn.remove(0); binQueueIn.remove(0);
} }