diff options
Diffstat (limited to 'src/main/java/kubatech/mixin')
-rw-r--r-- | src/main/java/kubatech/mixin/Mixin.java | 3 | ||||
-rw-r--r-- | src/main/java/kubatech/mixin/mixins/minecraft/WorldMixin.java | 21 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/main/java/kubatech/mixin/Mixin.java b/src/main/java/kubatech/mixin/Mixin.java index 01bb73089a..2a3259ef60 100644 --- a/src/main/java/kubatech/mixin/Mixin.java +++ b/src/main/java/kubatech/mixin/Mixin.java @@ -9,7 +9,8 @@ import java.util.List; public enum Mixin { // Minecraft - EnchantmentHelperMixin("minecraft.EnchantmentHelperMixin", VANILLA); + EnchantmentHelperMixin("minecraft.EnchantmentHelperMixin", VANILLA), + WorldMixin("minecraft.WorldMixin", VANILLA); public final String mixinClass; public final List<TargetedMod> targetedMods; diff --git a/src/main/java/kubatech/mixin/mixins/minecraft/WorldMixin.java b/src/main/java/kubatech/mixin/mixins/minecraft/WorldMixin.java new file mode 100644 index 0000000000..320917c694 --- /dev/null +++ b/src/main/java/kubatech/mixin/mixins/minecraft/WorldMixin.java @@ -0,0 +1,21 @@ +package kubatech.mixin.mixins.minecraft; + +import kubatech.loaders.BlockLoader; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@SuppressWarnings("unused") +@Mixin(value = World.class) +public class WorldMixin { + + @SuppressWarnings("ConstantConditions") + @Inject(method = "getBlock", at = @At("RETURN"), require = 1) + private void getBlockDetector(int x, int y, int z, CallbackInfoReturnable<Block> callbackInfoReturnable) { + if (callbackInfoReturnable.getReturnValue() == BlockLoader.kubaBlock) + BlockLoader.kubaBlock.setLastBlockAccess((World) (Object) this, x, y, z); + } +} |