From fb15ee1b22a948d7a171af4704150223fc939837 Mon Sep 17 00:00:00 2001 From: "Kristian S. Stangeland" Date: Mon, 17 Sep 2012 22:59:20 +0200 Subject: [PATCH] Adding packet constructors. This should simplify a lot of code. --- .../src/com/comphenix/protocol/ProtocolManager.java | 9 +++++++++ .../comphenix/protocol/injector/PacketFilterManager.java | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/ProtocolLib/src/com/comphenix/protocol/ProtocolManager.java b/ProtocolLib/src/com/comphenix/protocol/ProtocolManager.java index c492e235..38ceb503 100644 --- a/ProtocolLib/src/com/comphenix/protocol/ProtocolManager.java +++ b/ProtocolLib/src/com/comphenix/protocol/ProtocolManager.java @@ -25,6 +25,7 @@ import org.bukkit.plugin.Plugin; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.events.PacketListener; +import com.comphenix.protocol.injector.PacketConstructor; import com.google.common.collect.ImmutableSet; /** @@ -124,6 +125,14 @@ public interface ProtocolManager { */ public PacketContainer createPacket(int id, boolean forceDefaults); + /** + * Construct a packet using the special builtin Minecraft constructors. + * @param id - the packet ID. + * @param argumentTypes - type of each argument to pass to Minecraft. + * @return The packet constructor. + */ + public PacketConstructor createPacketConstructor(int id, Class[] argumentTypes); + /** * Retrieves a immutable set containing the ID of the sent server packets that will be observed by listeners. * @return Every filtered server packet. diff --git a/ProtocolLib/src/com/comphenix/protocol/injector/PacketFilterManager.java b/ProtocolLib/src/com/comphenix/protocol/injector/PacketFilterManager.java index 6b6e1e33..70343ae2 100644 --- a/ProtocolLib/src/com/comphenix/protocol/injector/PacketFilterManager.java +++ b/ProtocolLib/src/com/comphenix/protocol/injector/PacketFilterManager.java @@ -325,6 +325,11 @@ public final class PacketFilterManager implements ProtocolManager { return packet; } + @Override + public PacketConstructor createPacketConstructor(int id, Class[] argumentTypes) { + return PacketConstructor.DEFAUALT.withPacket(id, argumentTypes); + } + @Override public Set getSendingFilters() { return ImmutableSet.copyOf(sendingFilters);