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;