diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index 05ff8ed..b121138 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -12,6 +12,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemSword; +import net.minecraft.network.play.client.C0DPacketCloseWindow; import net.minecraft.potion.Potion; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSource; @@ -114,6 +115,7 @@ import org.ultramine.mods.bukkit.interfaces.entity.player.IMixinPlayerMP; import org.ultramine.mods.bukkit.interfaces.inventory.IInventoryTransactionProvider; import org.ultramine.mods.bukkit.interfaces.inventory.IMixinContainer; +import org.ultramine.mods.bukkit.interfaces.network.play.client.IMixinC0DPacketCloseWindow; import org.ultramine.mods.bukkit.interfaces.world.IMixinWorld; import org.ultramine.mods.bukkit.util.ArmorPropertiesUM; @@ -1085,7 +1087,9 @@ return container; if (player.openContainer != player.inventoryContainer && closeInv) { // fire INVENTORY_CLOSE if one already open // Cauldron end - player.playerNetServerHandler.processCloseWindow(new net.minecraft.network.play.client.C0DPacketCloseWindow(player.openContainer.windowId)); + C0DPacketCloseWindow packetCloseWindow = new C0DPacketCloseWindow(); + ((IMixinC0DPacketCloseWindow) packetCloseWindow).setWindowId(player.openContainer.windowId); + player.playerNetServerHandler.processCloseWindow(packetCloseWindow); } if (player.openContainer == container) player.openContainer = player.inventoryContainer; diff --git a/src/main/java/org/ultramine/mods/bukkit/interfaces/network/play/client/IMixinC0DPacketCloseWindow.java b/src/main/java/org/ultramine/mods/bukkit/interfaces/network/play/client/IMixinC0DPacketCloseWindow.java new file mode 100644 index 0000000..5a84428 --- /dev/null +++ b/src/main/java/org/ultramine/mods/bukkit/interfaces/network/play/client/IMixinC0DPacketCloseWindow.java @@ -0,0 +1,6 @@ +package org.ultramine.mods.bukkit.interfaces.network.play.client; + +public interface IMixinC0DPacketCloseWindow +{ + void setWindowId(int windowId); +} diff --git a/src/main/java/org/ultramine/mods/bukkit/mixin/network/play/client/MixinC0DPacketCloseWindow.java b/src/main/java/org/ultramine/mods/bukkit/mixin/network/play/client/MixinC0DPacketCloseWindow.java new file mode 100644 index 0000000..705c229 --- /dev/null +++ b/src/main/java/org/ultramine/mods/bukkit/mixin/network/play/client/MixinC0DPacketCloseWindow.java @@ -0,0 +1,18 @@ +package org.ultramine.mods.bukkit.mixin.network.play.client; + +import net.minecraft.network.play.client.C0DPacketCloseWindow; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.ultramine.mods.bukkit.interfaces.network.play.client.IMixinC0DPacketCloseWindow; + +@Mixin(C0DPacketCloseWindow.class) +public class MixinC0DPacketCloseWindow implements IMixinC0DPacketCloseWindow +{ + @Shadow private int field_149556_a; + + @Override + public void setWindowId(int windowId) + { + this.field_149556_a = windowId; + } +} diff --git a/src/main/resources/mixin.umbukkitimpl.json b/src/main/resources/mixin.umbukkitimpl.json index ae37565..5969459 100644 --- a/src/main/resources/mixin.umbukkitimpl.json +++ b/src/main/resources/mixin.umbukkitimpl.json @@ -84,6 +84,7 @@ "network.MixinNetHPlayS", "network.MixinNetHLoginS", "network.MixinC08PacketPlayerBlockPlacement", + "network.play.client.MixinC0DPacketCloseWindow", "tileentity.MixinTileEntityBrewingStand", "tileentity.MixinTileEntityFurnace", "tileentity.MixinTileEntitySkull",