From e54a05dbb4669d7310d350c2447d76a2d0bdde82 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Wed, 15 May 2024 10:57:18 +0300 Subject: [PATCH 1/3] Fix for out of bounds for blocks --- .../stationapi/mixin/flattening/BlockMixin.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java index 4a537688c..315f3ac8c 100644 --- a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java +++ b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java @@ -1,5 +1,6 @@ package net.modificationstation.stationapi.mixin.flattening; +import com.llamalad7.mixinextras.injector.WrapWithCondition; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.Block; @@ -7,6 +8,8 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.stat.Stat; +import net.minecraft.stat.Stats; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; import net.minecraft.world.World; @@ -362,4 +365,12 @@ public ToIntFunction stationapi_getLuminanceProvider() { private int stationapi_getStateBrightness(int original) { return BlockBrightness.light; } + + @WrapWithCondition(method = "afterBreak", at = @At( + value = "INVOKE", + target = "Lnet/minecraft/entity/player/PlayerEntity;increaseStat(Lnet/minecraft/stat/Stat;I)V") + ) + private boolean stationapi_temporalStatFix(PlayerEntity instance, Stat amount, int i) { + return id < Stats.MINE_BLOCK.length; + } } From 025ce91ea05e310689c38550601b6c0c4cc13498 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Wed, 15 May 2024 14:29:44 +0300 Subject: [PATCH 2/3] Fix for the fix --- .../stationapi/mixin/flattening/BlockMixin.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java index 315f3ac8c..b13558321 100644 --- a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java +++ b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java @@ -366,11 +366,11 @@ private int stationapi_getStateBrightness(int original) { return BlockBrightness.light; } - @WrapWithCondition(method = "afterBreak", at = @At( - value = "INVOKE", - target = "Lnet/minecraft/entity/player/PlayerEntity;increaseStat(Lnet/minecraft/stat/Stat;I)V") - ) - private boolean stationapi_temporalStatFix(PlayerEntity instance, Stat amount, int i) { - return id < Stats.MINE_BLOCK.length; + @Inject(method = "afterBreak", at = @At("HEAD"), cancellable = true) + private void stationapi_temporalStatFix(World world, PlayerEntity player, int x, int y, int z, int meta, CallbackInfo info) { + if (id < Stats.MINE_BLOCK.length) { + this.dropStacks(world, x, y, z, meta); + info.cancel(); + } } } From 5cb47106fa326aa3a068255728ddb9690d612c5e Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Wed, 15 May 2024 14:30:59 +0300 Subject: [PATCH 3/3] Fix for the fix for the fix --- .../stationapi/mixin/flattening/BlockMixin.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java index b13558321..00846d5cb 100644 --- a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java +++ b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/BlockMixin.java @@ -368,9 +368,8 @@ private int stationapi_getStateBrightness(int original) { @Inject(method = "afterBreak", at = @At("HEAD"), cancellable = true) private void stationapi_temporalStatFix(World world, PlayerEntity player, int x, int y, int z, int meta, CallbackInfo info) { - if (id < Stats.MINE_BLOCK.length) { - this.dropStacks(world, x, y, z, meta); - info.cancel(); - } + if (id < Stats.MINE_BLOCK.length) return; + this.dropStacks(world, x, y, z, meta); + info.cancel(); } }