From 7dd2b596068a1fa881ffa4324ea59d6791fb68b8 Mon Sep 17 00:00:00 2001 From: Camper_Samu Date: Fri, 22 Dec 2023 14:08:01 +0100 Subject: [PATCH] fix: update the player inventory after attempting to clean nbt leftovers --- .../com/campersamu/shoutout/mixin/CleanNbtFix.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/campersamu/shoutout/mixin/CleanNbtFix.java b/src/main/java/com/campersamu/shoutout/mixin/CleanNbtFix.java index bf572f6..e76fadc 100644 --- a/src/main/java/com/campersamu/shoutout/mixin/CleanNbtFix.java +++ b/src/main/java/com/campersamu/shoutout/mixin/CleanNbtFix.java @@ -21,20 +21,22 @@ import static net.minecraft.text.Text.literal; @Mixin(ServerPlayerInteractionManager.class) -public class CleanNbtFix { +public abstract class CleanNbtFix { @Shadow @Final protected ServerPlayerEntity player; @Inject(method = "setGameMode", at = @At("RETURN")) protected void setGameMode(GameMode gameMode, GameMode previousGameMode, CallbackInfo ci) { - for (ItemStack itemStack : player.getInventory().main) { + final var inventory = player.getInventory(); + for (ItemStack itemStack : inventory.main) { cleanNbt(itemStack); } - cleanNbt(player.getInventory().offHand.get(0)); - for (ItemStack itemStack : player.getInventory().armor) { + cleanNbt(inventory.offHand.get(0)); + for (ItemStack itemStack : inventory.armor) { cleanNbt(itemStack); } + player.getInventory().markDirty(); } @Unique