diff options
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events')
2 files changed, 29 insertions, 0 deletions
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/PacketEvent.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/PacketEvent.java index 654d2d8..7250fdc 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/PacketEvent.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/PacketEvent.java @@ -15,4 +15,15 @@ public final class PacketEvent { public void setCancelled(boolean c) { cancelled = c; } public boolean isCancelled() { return cancelled; } } + + public static final class Receive { + private final Packet<?> packet; + private boolean cancelled; + + public Receive(Packet<?> packet) { this.packet = packet; } + + public Packet<?> packet() { return packet; } + public void setCancelled(boolean c) { cancelled = c; } + public boolean isCancelled() { return cancelled; } + } }
\ No newline at end of file diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/ReceivePacketEventBus.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/ReceivePacketEventBus.java new file mode 100644 index 0000000..5aa340b --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/ReceivePacketEventBus.java @@ -0,0 +1,18 @@ +package net.justlearning.arslaan3102.arslaansmagichax.events; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.function.Consumer; + +public class ReceivePacketEventBus { + private static final List<Consumer<PacketEvent.Receive>> listeners = new CopyOnWriteArrayList<>(); + + public static void register(Consumer<PacketEvent.Receive> listener) { + listeners.add(listener); + } + + public static void post(PacketEvent.Receive ev) { + for (Consumer<PacketEvent.Receive> l : listeners) l.accept(ev); + } +} + |
