summaryrefslogtreecommitdiff
path: root/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events')
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/PacketEvent.java18
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/SendPacketEventBus.java18
2 files changed, 36 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
new file mode 100644
index 0000000..654d2d8
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/PacketEvent.java
@@ -0,0 +1,18 @@
+package net.justlearning.arslaan3102.arslaansmagichax.events;
+
+import net.minecraft.network.packet.Packet;
+
+public final class PacketEvent {
+ private PacketEvent() {}
+
+ public static final class Send {
+ private final Packet<?> packet;
+ private boolean cancelled;
+
+ public Send(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/SendPacketEventBus.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/SendPacketEventBus.java
new file mode 100644
index 0000000..6f717ce
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/events/SendPacketEventBus.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 SendPacketEventBus {
+ private static final List<Consumer<PacketEvent.Send>> listeners = new CopyOnWriteArrayList<>();
+
+ public static void register(Consumer<PacketEvent.Send> listener) {
+ listeners.add(listener);
+ }
+
+ public static void post(PacketEvent.Send ev) {
+ for (Consumer<PacketEvent.Send> l : listeners) l.accept(ev);
+ }
+}
+