diff --git a/src/main/java/org/cardboardpowered/mixin/server/level/ServerPlayerMixin.java b/src/main/java/org/cardboardpowered/mixin/server/level/ServerPlayerMixin.java index a462177e..aa52d488 100644 --- a/src/main/java/org/cardboardpowered/mixin/server/level/ServerPlayerMixin.java +++ b/src/main/java/org/cardboardpowered/mixin/server/level/ServerPlayerMixin.java @@ -88,11 +88,11 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer.RespawnConfig; import net.minecraft.server.network.ServerGamePacketListenerImpl; -import net.minecraft.world.CompoundContainer; import net.minecraft.world.Container; import net.minecraft.world.MenuProvider; import net.minecraft.world.entity.HumanoidArm; import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ChestMenu; import net.minecraft.world.level.Level; import net.minecraft.world.level.portal.TeleportTransition; import net.minecraft.world.phys.Vec3; @@ -339,13 +339,15 @@ public void openHandledScreen_c(MenuProvider factory, CallbackInfoReturnable result = org.bukkit.craftbukkit.event.CraftEventFactory.callInventoryOpenEventWithTitle(((ServerPlayer)(Object)this), container, cancelled); container = result.getSecond(); if (container == null && !cancelled) { if (factory instanceof Container) { ((Container) factory).stopOpen((ServerPlayer)(Object)this); - } else if (factory instanceof CompoundContainer) - ((CompoundContainer) factory).container1.stopOpen((ServerPlayer)(Object)this); + } else if (created instanceof ChestMenu) { + ((ChestMenu) created).getContainer().stopOpen((ServerPlayer)(Object)this); + } ci.setReturnValue(OptionalInt.empty()); } diff --git a/src/main/java/org/cardboardpowered/mixin/world/CompoundContainerMixin.java b/src/main/java/org/cardboardpowered/mixin/world/CompoundContainerMixin.java index 538cb3e5..e6702be8 100644 --- a/src/main/java/org/cardboardpowered/mixin/world/CompoundContainerMixin.java +++ b/src/main/java/org/cardboardpowered/mixin/world/CompoundContainerMixin.java @@ -37,15 +37,15 @@ public ItemStack getItem(int i) { @Override public void onOpen(CraftHumanEntity who) { - this.container1.startOpen(who.getHandle()); - this.container2.startOpen(who.getHandle()); + ((ContainerBridge) this.container1).onOpen(who); + ((ContainerBridge) this.container2).onOpen(who); transaction.add(who); } @Override public void onClose(CraftHumanEntity who) { - this.container1.stopOpen(who.getHandle()); - this.container2.stopOpen(who.getHandle()); + ((ContainerBridge) this.container1).onClose(who); + ((ContainerBridge) this.container2).onClose(who); transaction.remove(who); }