aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/events
diff options
context:
space:
mode:
authorYasin <a.piri@hotmail.de>2023-10-09 12:58:02 +0200
committerYasin <a.piri@hotmail.de>2023-10-09 12:58:02 +0200
commitbd3f0329d0e391bd84b5f9e3ff207d9dd9815853 (patch)
tree2fd1d1ef625f57acc2e4916c967d8d2393844798 /src/main/java/de/hysky/skyblocker/events
parent2315b90da8117f28f66348927afdb621ee4fc815 (diff)
downloadSkyblocker-bd3f0329d0e391bd84b5f9e3ff207d9dd9815853.tar.gz
Skyblocker-bd3f0329d0e391bd84b5f9e3ff207d9dd9815853.tar.bz2
Skyblocker-bd3f0329d0e391bd84b5f9e3ff207d9dd9815853.zip
new pr because fixing merge conflict would take too long
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/events')
-rw-r--r--src/main/java/de/hysky/skyblocker/events/ClientPlayerBlockBreakEvent.java23
-rw-r--r--src/main/java/de/hysky/skyblocker/events/SkyblockEvents.java33
2 files changed, 56 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/events/ClientPlayerBlockBreakEvent.java b/src/main/java/de/hysky/skyblocker/events/ClientPlayerBlockBreakEvent.java
new file mode 100644
index 00000000..83ac716f
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/events/ClientPlayerBlockBreakEvent.java
@@ -0,0 +1,23 @@
+package de.hysky.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/de/hysky/skyblocker/events/SkyblockEvents.java b/src/main/java/de/hysky/skyblocker/events/SkyblockEvents.java
new file mode 100644
index 00000000..303e454f
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/events/SkyblockEvents.java
@@ -0,0 +1,33 @@
+package de.hysky.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();
+ }
+}