mirror of
https://github.com/PaperMC/Waterfall.git
synced 2025-01-03 22:47:38 +01:00
337ca7f887
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing BungeeCord Changes: 70038c91 Revert "#2714: Remove unnecessary throws in ServerConnector" 39ef20b2 #2716: Don't attempt to send kick packet during handshake phase 74a6aa32 #2714: Remove unnecessary throws in ServerConnector c7984070 Misc dependency update
58 lines
2.5 KiB
Diff
58 lines
2.5 KiB
Diff
From 638c2dead03891867bded50eb96c3d074ff0b99e Mon Sep 17 00:00:00 2001
|
|
From: Techcable <Techcable@techcable.net>
|
|
Date: Thu, 4 Aug 2016 19:30:49 -0700
|
|
Subject: [PATCH] Dump the raw hex of a packet on a decoding error
|
|
|
|
|
|
diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java b/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java
|
|
index 5b32effe..9e9ea49c 100644
|
|
--- a/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java
|
|
+++ b/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java
|
|
@@ -1,7 +1,9 @@
|
|
package net.md_5.bungee.protocol;
|
|
|
|
import io.netty.buffer.ByteBuf;
|
|
+import io.netty.buffer.ByteBufUtil;
|
|
import io.netty.channel.ChannelHandlerContext;
|
|
+import io.netty.handler.codec.DecoderException;
|
|
import io.netty.handler.codec.MessageToMessageDecoder;
|
|
import java.util.List;
|
|
import lombok.AllArgsConstructor;
|
|
@@ -31,13 +33,16 @@ public class MinecraftDecoder extends MessageToMessageDecoder<ByteBuf>
|
|
Protocol.DirectionData prot = ( server ) ? protocol.TO_SERVER : protocol.TO_CLIENT;
|
|
ByteBuf slice = in.copy(); // Can't slice this one due to EntityMap :(
|
|
|
|
+ Object packetTypeInfo = null;
|
|
try
|
|
{
|
|
int packetId = DefinedPacket.readVarInt( in );
|
|
+ packetTypeInfo = packetId;
|
|
|
|
DefinedPacket packet = prot.createPacket( packetId, protocolVersion, supportsForge );
|
|
if ( packet != null )
|
|
{
|
|
+ packetTypeInfo = packet.getClass();
|
|
packet.read( in, prot.getDirection(), protocolVersion );
|
|
|
|
if ( in.isReadable() )
|
|
@@ -51,6 +56,16 @@ public class MinecraftDecoder extends MessageToMessageDecoder<ByteBuf>
|
|
|
|
out.add( new PacketWrapper( packet, slice ) );
|
|
slice = null;
|
|
+ } catch (BadPacketException | IndexOutOfBoundsException e) {
|
|
+ final String packetTypeStr;
|
|
+ if (packetTypeInfo instanceof Integer) {
|
|
+ packetTypeStr = "id " + Integer.toHexString((Integer) packetTypeInfo);
|
|
+ } else if (packetTypeInfo instanceof Class) {
|
|
+ packetTypeStr = "class " + ((Class) packetTypeInfo).getSimpleName();
|
|
+ } else {
|
|
+ packetTypeStr = "unknown";
|
|
+ }
|
|
+ throw new DecoderException("Error decoding packet " + packetTypeStr + " with contents:\n" + ByteBufUtil.prettyHexDump(slice), e);
|
|
} finally
|
|
{
|
|
if ( slice != null )
|
|
--
|
|
2.24.0
|
|
|