Merge pull request #1797 from KennyTV/packetids

Print protocol and packet type when erroring
This commit is contained in:
Myles 2020-06-06 15:32:47 +01:00 committed by GitHub
commit 67993364b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -406,17 +406,38 @@ public abstract class Protocol<C1 extends ClientboundPacketType, C2 extends Clie
return;
}
// write packet id
int newID = direction == Direction.OUTGOING ? protocolPacket.getNewID() : protocolPacket.getOldID();
packetWrapper.setId(newID);
// remap
if (protocolPacket.getRemapper() != null) {
// Write packet id
int oldId = packetWrapper.getId();
int newId = direction == Direction.OUTGOING ? protocolPacket.getNewID() : protocolPacket.getOldID();
packetWrapper.setId(newId);
if (protocolPacket.getRemapper() == null) {
return;
}
// Remap
try {
protocolPacket.getRemapper().remap(packetWrapper);
} catch (Exception e) {
if (e instanceof CancelException) {
throw e;
}
Class<? extends PacketType> packetTypeClass = direction == Direction.OUTGOING ? oldClientboundPacketEnum : newServerboundPacketEnum;
if (packetTypeClass != null) {
PacketType[] enumConstants = packetTypeClass.getEnumConstants();
PacketType packetType = oldId < enumConstants.length && oldId >= 0 ? enumConstants[oldId] : null;
Via.getPlatform().getLogger().warning("ERROR IN " + getClass().getSimpleName() + " IN REMAP OF " + packetType + " (" + oldId + ")");
} else {
Via.getPlatform().getLogger().warning("ERROR IN " + getClass().getSimpleName()
+ " IN REMAP OF 0x" + Integer.toHexString(oldId) + "->0x" + Integer.toHexString(newId));
}
throw e;
}
if (packetWrapper.isCancelled()) {
throw Via.getManager().isDebug() ? new CancelException() : CancelException.CACHED;
}
}
}
/**
* @param packetType packet type