diff --git a/ProtocolLib/src/com/comphenix/protocol/events/ListeningWhitelist.java b/ProtocolLib/src/com/comphenix/protocol/events/ListeningWhitelist.java index ee1a3870..31cfadbb 100644 --- a/ProtocolLib/src/com/comphenix/protocol/events/ListeningWhitelist.java +++ b/ProtocolLib/src/com/comphenix/protocol/events/ListeningWhitelist.java @@ -62,7 +62,7 @@ public class ListeningWhitelist { * @return TRUE if there are any packets, FALSE otherwise. */ public boolean isEnabled() { - return whitelist != null || whitelist.size() > 0; + return whitelist != null && whitelist.size() > 0; } /** diff --git a/ProtocolLib/src/com/comphenix/protocol/injector/MinecraftRegistry.java b/ProtocolLib/src/com/comphenix/protocol/injector/MinecraftRegistry.java index 173f7e0b..c66ef956 100644 --- a/ProtocolLib/src/com/comphenix/protocol/injector/MinecraftRegistry.java +++ b/ProtocolLib/src/com/comphenix/protocol/injector/MinecraftRegistry.java @@ -88,8 +88,8 @@ class MinecraftRegistry { Map lookup = forceVanilla ? previousValues : overwrittenPackets; // Optimized lookup - if (lookup.containsKey(packetToID)) { - return lookup.get(packetToID); + if (lookup.containsKey(packetID)) { + return lookup.get(packetID); } // Will most likely not be used diff --git a/ProtocolLib/src/com/comphenix/protocol/injector/NetworkFieldInjector.java b/ProtocolLib/src/com/comphenix/protocol/injector/NetworkFieldInjector.java index e3f6923d..d6f56ec3 100644 --- a/ProtocolLib/src/com/comphenix/protocol/injector/NetworkFieldInjector.java +++ b/ProtocolLib/src/com/comphenix/protocol/injector/NetworkFieldInjector.java @@ -48,7 +48,7 @@ class NetworkFieldInjector extends PlayerInjector { } @Override - protected void initialize() throws IllegalAccessException { + protected synchronized void initialize() throws IllegalAccessException { super.initialize(); // Get the sync field as well diff --git a/ProtocolLib/src/com/comphenix/protocol/injector/PacketFilterManager.java b/ProtocolLib/src/com/comphenix/protocol/injector/PacketFilterManager.java index 8b331ddb..0bac1231 100644 --- a/ProtocolLib/src/com/comphenix/protocol/injector/PacketFilterManager.java +++ b/ProtocolLib/src/com/comphenix/protocol/injector/PacketFilterManager.java @@ -522,12 +522,12 @@ public final class PacketFilterManager implements ProtocolManager { if (!hasClosed && player != null) { PlayerInjector injector = playerInjection.get(player); - DataInputStream input = injector.getInputStream(true); if (injector != null) { + DataInputStream input = injector.getInputStream(true); injector.cleanupAll(); - playerInjection.remove(injector); + playerInjection.remove(player); connectionLookup.remove(input); } } diff --git a/ProtocolLib/src/com/comphenix/protocol/reflect/StructureModifier.java b/ProtocolLib/src/com/comphenix/protocol/reflect/StructureModifier.java index 11df07b1..aecd71bd 100644 --- a/ProtocolLib/src/com/comphenix/protocol/reflect/StructureModifier.java +++ b/ProtocolLib/src/com/comphenix/protocol/reflect/StructureModifier.java @@ -63,8 +63,20 @@ public class StructureModifier { initialize(targetType, Object.class, fields, defaults, null, new HashMap()); } - private StructureModifier() { - // Consumers of this method should call "initialize" + /** + * Consumers of this method should call "initialize". + */ + protected StructureModifier() { + + } + + /** + * Initialize using the same field types. + * @param other - information to set. + */ + protected void initialize(StructureModifier other) { + initialize(other.targetType, other.fieldType, other.data, + other.defaultFields, other.converter, other.subtypeCache); } /** @@ -358,7 +370,7 @@ public class StructureModifier { public List getFields() { return ImmutableList.copyOf(data); } - + /** * Retrieve every value stored in the fields of the current type. * @return Every field value. @@ -367,8 +379,9 @@ public class StructureModifier { public List getValues() throws FieldAccessException { List values = new ArrayList(); - for (int i = 0; i < size(); i++) + for (int i = 0; i < size(); i++) { values.add(read(i)); + } return values; }