aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2024-01-01 14:49:31 +0800
committerGitHub <noreply@github.com>2024-01-01 01:49:31 -0500
commit8005dd9afe963a461619ee3da603d8202292840b (patch)
treeec35f59554a2bb9ed349128020e6b3a1ce410c59
parentc6a24637bea5f6d6534e88750d011270d7b612dc (diff)
downloadSkyblocker-8005dd9afe963a461619ee3da603d8202292840b.tar.gz
Skyblocker-8005dd9afe963a461619ee3da603d8202292840b.tar.bz2
Skyblocker-8005dd9afe963a461619ee3da603d8202292840b.zip
Migrate to Fabric Api ClientPlayerBlockBreakEvents (#466)
* Migrate to fabric api ClientPlayerBlockBreakEvents * Update fapi requirement
-rw-r--r--gradle.properties2
-rw-r--r--src/main/java/de/hysky/skyblocker/events/ClientPlayerBlockBreakEvent.java23
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/ClientPlayerInteractionManagerMixin.java27
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java4
-rw-r--r--src/main/resources/fabric.mod.json2
-rw-r--r--src/main/resources/skyblocker.mixins.json1
6 files changed, 4 insertions, 55 deletions
diff --git a/gradle.properties b/gradle.properties
index c08d96a6..98c6243a 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -9,7 +9,7 @@ loader_version=0.15.1
#Fabric api
## 1.20
-fabric_api_version=0.91.1+1.20.4
+fabric_api_version=0.92.0+1.20.4
# Minecraft Mods
## YACL (https://github.com/isXander/YetAnotherConfigLib)
diff --git a/src/main/java/de/hysky/skyblocker/events/ClientPlayerBlockBreakEvent.java b/src/main/java/de/hysky/skyblocker/events/ClientPlayerBlockBreakEvent.java
deleted file mode 100644
index 83ac716f..00000000
--- a/src/main/java/de/hysky/skyblocker/events/ClientPlayerBlockBreakEvent.java
+++ /dev/null
@@ -1,23 +0,0 @@
-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/mixin/ClientPlayerInteractionManagerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/ClientPlayerInteractionManagerMixin.java
deleted file mode 100644
index fab9a1ea..00000000
--- a/src/main/java/de/hysky/skyblocker/mixin/ClientPlayerInteractionManagerMixin.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package de.hysky.skyblocker.mixin;
-
-import de.hysky.skyblocker.events.ClientPlayerBlockBreakEvent;
-import net.minecraft.block.BlockState;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.network.ClientPlayerInteractionManager;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.world.World;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
-
-@Mixin(ClientPlayerInteractionManager.class)
-public class ClientPlayerInteractionManagerMixin {
- @Shadow
- @Final
- private MinecraftClient client;
-
- @Inject(method = "breakBlock", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;onBroken(Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)V"), locals = LocalCapture.CAPTURE_FAILHARD)
- private void skyblocker$onBlockBroken(BlockPos pos, CallbackInfoReturnable<Boolean> cir, World world, BlockState blockState) {
- ClientPlayerBlockBreakEvent.AFTER.invoker().afterBlockBreak(world, this.client.player, pos, blockState);
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java
index f1c9239c..b28e5da1 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java
@@ -2,8 +2,8 @@ package de.hysky.skyblocker.skyblock.item;
import com.google.common.collect.ImmutableList;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
-import de.hysky.skyblocker.events.ClientPlayerBlockBreakEvent;
import de.hysky.skyblocker.utils.ItemUtils;
+import net.fabricmc.fabric.api.event.client.player.ClientPlayerBlockBreakEvents;
import net.fabricmc.fabric.api.event.player.UseItemCallback;
import net.minecraft.block.BlockState;
import net.minecraft.entity.player.PlayerEntity;
@@ -26,7 +26,7 @@ public class ItemCooldowns {
private static final Map<String, CooldownEntry> ITEM_COOLDOWNS = new HashMap<>();
public static void init() {
- ClientPlayerBlockBreakEvent.AFTER.register(ItemCooldowns::afterBlockBreak);
+ ClientPlayerBlockBreakEvents.AFTER.register(ItemCooldowns::afterBlockBreak);
UseItemCallback.EVENT.register(ItemCooldowns::onItemInteract);
}
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index e8f5ddb8..8871135a 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -37,7 +37,7 @@
"accessWidener": "skyblocker.accesswidener",
"depends": {
"fabricloader": ">=0.15.0",
- "fabric-api": ">=0.91.1+1.20.3",
+ "fabric-api": ">=0.92.0+1.20.4",
"yet_another_config_lib_v3": ">=3.3.1+1.20.4",
"minecraft": "~1.20.3"
},
diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json
index 7baf4e76..6c887fad 100644
--- a/src/main/resources/skyblocker.mixins.json
+++ b/src/main/resources/skyblocker.mixins.json
@@ -8,7 +8,6 @@
"ArmorTrimMixin",
"BatEntityMixin",
"ClientPlayerEntityMixin",
- "ClientPlayerInteractionManagerMixin",
"ClientPlayNetworkHandlerMixin",
"DataTrackerMixin",
"DrawContextMixin",