From 63c468eff0b46b215021203997d336be4e0c3550 Mon Sep 17 00:00:00 2001 From: "Kristian S. Stangeland" Date: Sun, 21 Oct 2012 16:33:41 +0200 Subject: [PATCH] Packet constructor can now handle primitive parameter types. --- .../protocol/injector/PacketConstructor.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PacketConstructor.java b/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PacketConstructor.java index c00c7f72..07b509f4 100644 --- a/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PacketConstructor.java +++ b/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PacketConstructor.java @@ -25,6 +25,7 @@ import net.minecraft.server.Packet; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.reflect.FieldAccessException; +import com.comphenix.protocol.reflect.PrimitiveUtils; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; @@ -176,7 +177,17 @@ public class PacketConstructor { // Determine if the types are similar if (params.length == types.length) { for (int i = 0; i < params.length; i++) { - if (!params[i].isAssignableFrom(types[i])) { + Class inputType = types[i]; + Class paramType = params[i]; + + // The input type is always wrapped + if (PrimitiveUtils.isPrimitive(paramType)) { + // Wrap it + paramType = PrimitiveUtils.wrap(paramType); + } + + // Compare assignability + if (!paramType.isAssignableFrom(inputType)) { return false; } }