Skip to content

Commit 9c40d23

Browse files
committed
Fix inventory closing
1 parent 8562c07 commit 9c40d23

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,4 +249,15 @@ public abstract class ServerPlayerMixin_Inventory extends PlayerMixin_Inventory
249249
}
250250
throw new IllegalStateException("Unknown Lens for Player Inventory: " + lens.getClass().getName());
251251
}
252+
253+
@Redirect(method = "doCloseContainer",
254+
at = @At(value = "INVOKE", target = "Lnet/minecraft/world/inventory/AbstractContainerMenu;removed(Lnet/minecraft/world/entity/player/Player;)V"))
255+
private void impl$onHandleContainerClose(final AbstractContainerMenu instance, final Player player) {
256+
final PhaseContext<@NonNull ?> context = PhaseTracker.SERVER.getPhaseContext();
257+
final TransactionalCaptureSupplier transactor = context.getTransactor();
258+
try (final EffectTransactor ignored = transactor.logCloseInventory(player, true)) {
259+
instance.removed(player);
260+
instance.broadcastChanges();
261+
}
262+
}
252263
}

src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/network/ServerGamePacketListenerImplMixin_Inventory.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -130,17 +130,6 @@ public class ServerGamePacketListenerImplMixin_Inventory {
130130
// TrackingUtil.processBlockCaptures called by UseItemPacketState
131131
}
132132

133-
@Redirect(method = "handleContainerClose",
134-
at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;doCloseContainer()V"))
135-
private void impl$onHandleContainerClose(final ServerPlayer player) {
136-
final PhaseContext<@NonNull ?> context = PhaseTracker.SERVER.getPhaseContext();
137-
final TransactionalCaptureSupplier transactor = context.getTransactor();
138-
try (final EffectTransactor ignored = transactor.logCloseInventory(player, true)) {
139-
this.player.containerMenu.removed(player);
140-
this.player.containerMenu.broadcastChanges();
141-
}
142-
}
143-
144133
@Redirect(method = "handleRenameItem(Lnet/minecraft/network/protocol/game/ServerboundRenameItemPacket;)V",
145134
at = @At(value = "INVOKE", target = "Lnet/minecraft/world/inventory/AnvilMenu;setItemName(Ljava/lang/String;)Z"))
146135
private boolean impl$onHandleRenameItem(final AnvilMenu menu, final String name) {

0 commit comments

Comments
 (0)