From ff35e4a14b34ee764def77b36b191cd5b6e9a128 Mon Sep 17 00:00:00 2001 From: FatSaw Date: Mon, 6 Mar 2023 23:41:55 +0200 Subject: [PATCH] Dont trigger Lootable Refresh for non player --- .../mixin/core/MixinTileEntityLootable.java | 17 +++++++++++++++++ .../src/main/resources/mixins.akarin.core.json | 1 + 2 files changed, 18 insertions(+) create mode 100644 sources/src/main/java/io/akarin/server/mixin/core/MixinTileEntityLootable.java diff --git a/sources/src/main/java/io/akarin/server/mixin/core/MixinTileEntityLootable.java b/sources/src/main/java/io/akarin/server/mixin/core/MixinTileEntityLootable.java new file mode 100644 index 000000000..f9a70e196 --- /dev/null +++ b/sources/src/main/java/io/akarin/server/mixin/core/MixinTileEntityLootable.java @@ -0,0 +1,17 @@ +package io.akarin.server.mixin.core; + +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.CallbackInfo; + +import net.minecraft.server.EntityHuman; +import net.minecraft.server.TileEntityLootable; + +@Mixin(value = TileEntityLootable.class, remap = false) +public abstract class MixinTileEntityLootable { + @Inject(at = @At("HEAD"), method = "b()V", cancellable = true) + private void b(EntityHuman entityhuman, CallbackInfo ci) { + if (entityhuman == null) ci.cancel(); + } +} diff --git a/sources/src/main/resources/mixins.akarin.core.json b/sources/src/main/resources/mixins.akarin.core.json index fb61ac46d..ca88fafc7 100644 --- a/sources/src/main/resources/mixins.akarin.core.json +++ b/sources/src/main/resources/mixins.akarin.core.json @@ -31,6 +31,7 @@ "core.MixinPlayerChunk", "core.MixinWorldBorder", "core.MixinEntityLiving", + "core.MixinTileEntityLootable", "nsc.OptimisticNetworkManager", "nsc.NonblockingServerConnection",