diff --git a/ProtocolLib/src/main/java/com/comphenix/protocol/PacketType.java b/ProtocolLib/src/main/java/com/comphenix/protocol/PacketType.java index dfcf8cdb..ee9b52bb 100644 --- a/ProtocolLib/src/main/java/com/comphenix/protocol/PacketType.java +++ b/ProtocolLib/src/main/java/com/comphenix/protocol/PacketType.java @@ -653,6 +653,28 @@ public class PacketType implements Serializable { return type; } + /** + * Lookup a packet type from a packet class. + * @param packetClass - the packet class. + * @return The corresponding packet type, or NULL if not found. + */ + public static PacketType fromClass(Class> packetClass) { + PacketType type = PacketRegistry.getPacketType(packetClass); + + if (type != null) + return type; + throw new IllegalArgumentException("Class " + packetClass + " is not a registered packet."); + } + + /** + * Determine if a given class represents a packet class. + * @param packetClass - the class to lookup. + * @return TRUE if this is a packet class, FALSE otherwise. + */ + public static boolean hasClass(Class> packetClass) { + return PacketRegistry.getPacketType(packetClass) != null; + } + /** * Register a particular packet type. *
diff --git a/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/InjectionFactory.java b/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/InjectionFactory.java
index 9af27a61..10f81982 100644
--- a/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/InjectionFactory.java
+++ b/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/InjectionFactory.java
@@ -79,15 +79,15 @@ class InjectionFactory {
* @return The cached injector, or a closed injector if it could not be found.
*/
public Injector fromName(String name, Player player) {
- if (closed)
- return new ClosedInjector(player);
- Injector injector = nameLookup.get(name);
-
- // We can only retrieve cached injectors
- if (injector != null) {
- // Update instance
- injector.setUpdatedPlayer(player);
- return injector;
+ if (!closed) {
+ Injector injector = nameLookup.get(name);
+
+ // We can only retrieve cached injectors
+ if (injector != null) {
+ // Update instance
+ injector.setUpdatedPlayer(player);
+ return injector;
+ }
}
return new ClosedInjector(player);
}
diff --git a/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/NettyProtocolRegistry.java b/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/NettyProtocolRegistry.java
index 57f2e5f0..da794ac1 100644
--- a/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/NettyProtocolRegistry.java
+++ b/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/NettyProtocolRegistry.java
@@ -43,7 +43,7 @@ public class NettyProtocolRegistry {
}
/**
- * Retrieve an immutable view of the class to packet tyåe lookup.
+ * Retrieve an immutable view of the class to packet type lookup.
* @return The packet type lookup.
*/
public Map