diff --git a/pom.xml b/pom.xml
index 4ed2e05210..8d3a84bbc0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.github.retrooper
packetevents
- 1.3.2
+ 1.3.3
jar
packetevents
diff --git a/src/main/java/io/github/retrooper/packetevents/PacketEvents.java b/src/main/java/io/github/retrooper/packetevents/PacketEvents.java
index 50ddf44f0a..05c4e9d5c1 100644
--- a/src/main/java/io/github/retrooper/packetevents/PacketEvents.java
+++ b/src/main/java/io/github/retrooper/packetevents/PacketEvents.java
@@ -1,19 +1,17 @@
package io.github.retrooper.packetevents;
+import io.github.retrooper.packetevents.annotations.Nullable;
+import io.github.retrooper.packetevents.annotations.PacketHandler;
import io.github.retrooper.packetevents.enums.ClientVersion;
import io.github.retrooper.packetevents.enums.ServerVersion;
-import io.github.retrooper.packetevents.annotations.PacketHandler;
+import io.github.retrooper.packetevents.event.PacketEvent;
import io.github.retrooper.packetevents.event.PacketListener;
-import io.github.retrooper.packetevents.event.impl.PacketLoginEvent;
-import io.github.retrooper.packetevents.event.impl.PlayerInjectEvent;
-import io.github.retrooper.packetevents.event.impl.PostPlayerInjectEvent;
-import io.github.retrooper.packetevents.event.impl.ServerTickEvent;
+import io.github.retrooper.packetevents.event.impl.*;
import io.github.retrooper.packetevents.event.manager.EventManager;
import io.github.retrooper.packetevents.handler.TinyProtocolHandler;
-import io.github.retrooper.packetevents.mojang.GameProfile;
import io.github.retrooper.packetevents.packet.Packet;
import io.github.retrooper.packetevents.packetwrappers.Sendable;
-import io.github.retrooper.packetevents.packetwrappers.login.*;
+import io.github.retrooper.packetevents.packetwrappers.login.WrappedPacketLoginHandshake;
import io.github.retrooper.packetevents.utils.NMSUtils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -23,10 +21,7 @@
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitTask;
-import io.github.retrooper.packetevents.annotations.Nullable;
-
import java.lang.reflect.InvocationTargetException;
-import java.security.PublicKey;
import java.util.HashMap;
public final class PacketEvents implements PacketListener, Listener {
@@ -209,6 +204,13 @@ public void onLogin(final PacketLoginEvent e) {
}
}
+ @PacketHandler
+ public void onPacket(final PacketEvent e) {
+ if(e instanceof PacketReceiveEvent) {
+ // System.out.println("RECEIVED");
+ }
+ }
+
/**
* Do not check the client version in or before the PlayerInjectEvent, use the PostPlayerInjectEvent.
* It is not recommended to do much in the PlayerInjectEvent, as some fields in the Player object are be null.
@@ -240,8 +242,7 @@ public void onJoin(PlayerJoinEvent e) {
}
/**
- * Version independant player injection
- *
+ * Version independent player injection
* @param player
*/
public static void injectPlayer(final Player player) {
diff --git a/src/main/java/io/github/retrooper/packetevents/annotations/NotNull.java b/src/main/java/io/github/retrooper/packetevents/annotations/NotNull.java
index 9f809e78de..d87e701890 100644
--- a/src/main/java/io/github/retrooper/packetevents/annotations/NotNull.java
+++ b/src/main/java/io/github/retrooper/packetevents/annotations/NotNull.java
@@ -1,7 +1,9 @@
package io.github.retrooper.packetevents.annotations;
-import java.lang.annotation.*;
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
/**
* Is for sure not null.
*/
diff --git a/src/main/java/io/github/retrooper/packetevents/event/manager/EventManager.java b/src/main/java/io/github/retrooper/packetevents/event/manager/EventManager.java
index cff92343fc..8e85a658f1 100644
--- a/src/main/java/io/github/retrooper/packetevents/event/manager/EventManager.java
+++ b/src/main/java/io/github/retrooper/packetevents/event/manager/EventManager.java
@@ -1,7 +1,7 @@
package io.github.retrooper.packetevents.event.manager;
-import io.github.retrooper.packetevents.event.PacketEvent;
import io.github.retrooper.packetevents.annotations.PacketHandler;
+import io.github.retrooper.packetevents.event.PacketEvent;
import io.github.retrooper.packetevents.event.PacketListener;
import java.lang.reflect.InvocationTargetException;
@@ -19,8 +19,9 @@ public void callEvent(final PacketEvent e) {
//Annotated methods
final List methods = registeredMethods.get(listener);
for (final Method method : methods) {
- if (method.getParameterTypes()[0].equals(PacketEvent.class)
- || method.getParameterTypes()[0].getSimpleName().equals(e.getClass().getSimpleName())) {
+ final Class> parameterType = method.getParameterTypes()[0];
+ if (parameterType.equals(PacketEvent.class)
+ || parameterType.isInstance(e)) {
try {
method.invoke(listener, e);
} catch (IllegalAccessException | InvocationTargetException ex) {
@@ -33,13 +34,19 @@ public void callEvent(final PacketEvent e) {
public void registerListener(final PacketListener e) {
+ if (registeredMethods.containsKey(e)) {
+ return;
+ }
final List methods = new ArrayList();
for (final Method m : e.getClass().getMethods()) {
- if (m.isAnnotationPresent(PacketHandler.class)) {
+ if (m.isAnnotationPresent(PacketHandler.class)
+ && m.getParameterTypes().length == 1) {
methods.add(m);
}
}
- registeredMethods.put(e, methods);
+ if (!methods.isEmpty()) {
+ registeredMethods.put(e, methods);
+ }
}
public void unregisterListener(final PacketListener e) {
diff --git a/src/main/java/io/github/retrooper/packetevents/handler/TinyProtocolHandler_1_7.java b/src/main/java/io/github/retrooper/packetevents/handler/TinyProtocolHandler_1_7.java
index 2c4a6fa766..92eb7e1f96 100644
--- a/src/main/java/io/github/retrooper/packetevents/handler/TinyProtocolHandler_1_7.java
+++ b/src/main/java/io/github/retrooper/packetevents/handler/TinyProtocolHandler_1_7.java
@@ -1,6 +1,7 @@
package io.github.retrooper.packetevents.handler;
import io.github.retrooper.packetevents.PacketEvents;
+import io.github.retrooper.packetevents.annotations.Nullable;
import io.github.retrooper.packetevents.event.impl.PacketLoginEvent;
import io.github.retrooper.packetevents.event.impl.PacketReceiveEvent;
import io.github.retrooper.packetevents.event.impl.PacketSendEvent;
@@ -10,8 +11,6 @@
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
-import io.github.retrooper.packetevents.annotations.Nullable;
-
public final class TinyProtocolHandler_1_7 {
private final Plugin plugin;
diff --git a/src/main/java/io/github/retrooper/packetevents/handler/TinyProtocolHandler_1_8.java b/src/main/java/io/github/retrooper/packetevents/handler/TinyProtocolHandler_1_8.java
index ea9073f03d..c5054ac835 100644
--- a/src/main/java/io/github/retrooper/packetevents/handler/TinyProtocolHandler_1_8.java
+++ b/src/main/java/io/github/retrooper/packetevents/handler/TinyProtocolHandler_1_8.java
@@ -1,6 +1,7 @@
package io.github.retrooper.packetevents.handler;
import io.github.retrooper.packetevents.PacketEvents;
+import io.github.retrooper.packetevents.annotations.Nullable;
import io.github.retrooper.packetevents.enums.ServerVersion;
import io.github.retrooper.packetevents.event.impl.PacketLoginEvent;
import io.github.retrooper.packetevents.event.impl.PacketReceiveEvent;
@@ -11,8 +12,6 @@
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
-import io.github.retrooper.packetevents.annotations.Nullable;
-
public final class TinyProtocolHandler_1_8 {
private static final ServerVersion version = PacketEvents.getServerVersion();
private final Plugin plugin;
diff --git a/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/entityaction/WrappedPacketInEntityAction.java b/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/entityaction/WrappedPacketInEntityAction.java
index 3695b8a3b5..df99054d68 100644
--- a/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/entityaction/WrappedPacketInEntityAction.java
+++ b/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/entityaction/WrappedPacketInEntityAction.java
@@ -1,12 +1,12 @@
package io.github.retrooper.packetevents.packetwrappers.in.entityaction;
+import io.github.retrooper.packetevents.annotations.Nullable;
import io.github.retrooper.packetevents.enums.PlayerAction;
import io.github.retrooper.packetevents.enums.ServerVersion;
import io.github.retrooper.packetevents.packetwrappers.api.WrappedPacket;
import io.github.retrooper.packetevents.utils.NMSUtils;
import org.bukkit.entity.Entity;
-import io.github.retrooper.packetevents.annotations.Nullable;
import java.lang.reflect.Field;
public final class WrappedPacketInEntityAction extends WrappedPacket {
diff --git a/src/main/java/io/github/retrooper/packetevents/utils/NMSUtils.java b/src/main/java/io/github/retrooper/packetevents/utils/NMSUtils.java
index 0541171c68..930082573a 100644
--- a/src/main/java/io/github/retrooper/packetevents/utils/NMSUtils.java
+++ b/src/main/java/io/github/retrooper/packetevents/utils/NMSUtils.java
@@ -1,5 +1,6 @@
package io.github.retrooper.packetevents.utils;
+import io.github.retrooper.packetevents.annotations.Nullable;
import io.github.retrooper.packetevents.enums.ServerVersion;
import io.github.retrooper.packetevents.packetwrappers.Sendable;
import io.github.retrooper.packetevents.utils.nms_entityfinder.EntityFinderUtils;
@@ -8,7 +9,6 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
-import io.github.retrooper.packetevents.annotations.Nullable;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;