aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/events
diff options
context:
space:
mode:
authorYasin <LifeIsAParadox@users.noreply.github.com>2023-10-09 12:21:49 +0200
committerGitHub <noreply@github.com>2023-10-09 12:21:49 +0200
commit673d29d25ad7e92759d314ea25feaf6259ac5e60 (patch)
treeeca7429bc7608d2c76e19a0d0cf0ac892e55cd7c /src/main/java/me/xmrvizzy/skyblocker/events
parent6e5bef27ff2d78b5012f99c9d96e99d9b9673e4c (diff)
parentafe0610dccdbd00f3a4051141ce247b28a1a4e76 (diff)
downloadSkyblocker-673d29d25ad7e92759d314ea25feaf6259ac5e60.tar.gz
Skyblocker-673d29d25ad7e92759d314ea25feaf6259ac5e60.tar.bz2
Skyblocker-673d29d25ad7e92759d314ea25feaf6259ac5e60.zip
Merge branch 'master' into scoreboard-optimizations
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/events')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/events/ClientPlayerBlockBreakEvent.java23
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/events/SkyblockEvents.java33
2 files changed, 56 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/events/ClientPlayerBlockBreakEvent.java b/src/main/java/me/xmrvizzy/skyblocker/events/ClientPlayerBlockBreakEvent.java
new file mode 100644
index 00000000..76298612
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/events/ClientPlayerBlockBreakEvent.java
@@ -0,0 +1,23 @@
+package me.xmrvizzy.skyblocker.events;
+
+import net.fabricmc.fabric.api.event.Event;
+import net.fabricmc.fabric.api.event.EventFactory;
+import net.minecraft.block.BlockState;
+import net.minecraft.entity.player.PlayerEntity;
+import net.minecraft.util.math.BlockPos;
+import net.minecraft.world.World;
+
+// Fabric API currently doesn't have an event for this
+public class ClientPlayerBlockBreakEvent {
+ public static final Event<AfterBlockBreak> AFTER = EventFactory.createArrayBacked(AfterBlockBreak.class,
+ (listeners) -> (world, player, pos, state) -> {
+ for (AfterBlockBreak listener : listeners) {
+ listener.afterBlockBreak(world, player, pos, state);
+ }
+ });
+
+ @FunctionalInterface
+ public interface AfterBlockBreak {
+ void afterBlockBreak(World world, PlayerEntity player, BlockPos pos, BlockState state);
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/events/SkyblockEvents.java b/src/main/java/me/xmrvizzy/skyblocker/events/SkyblockEvents.java
new file mode 100644
index 00000000..477d68b0
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/events/SkyblockEvents.java
@@ -0,0 +1,33 @@
+package me.xmrvizzy.skyblocker.events;
+
+import net.fabricmc.api.EnvType;
+import net.fabricmc.api.Environment;
+import net.fabricmc.fabric.api.event.Event;
+import net.fabricmc.fabric.api.event.EventFactory;
+
+@Environment(EnvType.CLIENT)
+public final class SkyblockEvents {
+ public static final Event<SkyblockEvents.SkyblockJoin> JOIN = EventFactory.createArrayBacked(SkyblockEvents.SkyblockJoin.class, callbacks -> () -> {
+ for (SkyblockEvents.SkyblockJoin callback : callbacks) {
+ callback.onSkyblockJoin();
+ }
+ });
+
+ public static final Event<SkyblockEvents.SkyblockLeave> LEAVE = EventFactory.createArrayBacked(SkyblockEvents.SkyblockLeave.class, callbacks -> () -> {
+ for (SkyblockEvents.SkyblockLeave callback : callbacks) {
+ callback.onSkyblockLeave();
+ }
+ });
+
+ @Environment(EnvType.CLIENT)
+ @FunctionalInterface
+ public interface SkyblockJoin {
+ void onSkyblockJoin();
+ }
+
+ @Environment(EnvType.CLIENT)
+ @FunctionalInterface
+ public interface SkyblockLeave {
+ void onSkyblockLeave();
+ }
+}