Skip to content

Commit cd7894f

Browse files
committed
Ignore improperly registered custom packets
Fixes #123
1 parent 245433b commit cd7894f

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

ProtocolLib/src/main/java/com/comphenix/protocol/compat/netty/Netty.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ private static NettyCompat getCompat() {
5353
return compat;
5454
}
5555

56+
public static boolean isIndependent() {
57+
return compat instanceof IndependentNetty;
58+
}
59+
5660
public static WrappedByteBuf createPacketBuffer() {
5761
return getCompat().createPacketBuffer();
5862
}

ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/NettyProtocolRegistry.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
import com.comphenix.protocol.PacketType;
1010
import com.comphenix.protocol.PacketType.Protocol;
1111
import com.comphenix.protocol.PacketType.Sender;
12+
import com.comphenix.protocol.compat.netty.Netty;
1213
import com.comphenix.protocol.injector.packet.MapContainer;
1314
import com.comphenix.protocol.reflect.StructureModifier;
1415
import com.comphenix.protocol.utility.MinecraftReflection;
15-
import com.comphenix.protocol.utility.MinecraftVersion;
1616
import com.google.common.collect.BiMap;
1717
import com.google.common.collect.HashBiMap;
1818
import com.google.common.collect.Iterables;
@@ -109,14 +109,13 @@ public synchronized void synchronize() {
109109
* Load the packet lookup tables in each protocol.
110110
*/
111111
private synchronized void initialize() {
112-
Object[] protocols = enumProtocol.getEnumConstants();
113-
114-
// TODO: Find a better less than 1.7 check
115-
if (MinecraftVersion.getCurrentVersion().compareTo(MinecraftVersion.BOUNTIFUL_UPDATE) < 0) {
112+
if (!Netty.isIndependent()) { // Check for 1.7
116113
initialize17();
117114
return;
118115
}
119116

117+
Object[] protocols = enumProtocol.getEnumConstants();
118+
120119
// ID to Packet class maps
121120
Map<Object, Map<Integer, Class<?>>> serverMaps = Maps.newLinkedHashMap();
122121
Map<Object, Map<Integer, Class<?>>> clientMaps = Maps.newLinkedHashMap();
@@ -218,12 +217,17 @@ private synchronized void initialize17() {
218217
private void associatePackets(Register register, Map<Integer, Class<?>> lookup, Protocol protocol, Sender sender) {
219218
for (Entry<Integer, Class<?>> entry : lookup.entrySet()) {
220219
PacketType type = PacketType.fromCurrent(protocol, sender, entry.getKey(), PacketType.UNKNOWN_PACKET);
221-
register.typeToClass.put(type, entry.getValue());
222-
223-
if (sender == Sender.SERVER)
224-
register.serverPackets.add(type);
225-
if (sender == Sender.CLIENT)
226-
register.clientPackets.add(type);
220+
221+
try {
222+
register.typeToClass.put(type, entry.getValue());
223+
224+
if (sender == Sender.SERVER)
225+
register.serverPackets.add(type);
226+
if (sender == Sender.CLIENT)
227+
register.clientPackets.add(type);
228+
} catch (IllegalArgumentException ex) {
229+
// Sometimes this happens with fake packets, just ignore it
230+
}
227231
}
228232
}
229233

0 commit comments

Comments
 (0)