92db88d292
Update chest animation after cancelling InventoryOpenEvent. Fixes BUKKIT-1440 Currently if a plugin cancels an InventoryOpenEvent for vanilla chests, the chest animation for clients is stuck in the open state since IInventory's closeChest method is never called. To fix the issue, closeChest is called before exiting the display GUI method. More info can be found here https://bukkit.atlassian.net/browse/BUKKIT-1440
117 lines
5.2 KiB
Diff
117 lines
5.2 KiB
Diff
From 9b82bd9730c7b87940423c5a48724b05c841900c Mon Sep 17 00:00:00 2001
|
|
From: bloodshot <jdroque@gmail.com>
|
|
Date: Mon, 6 Jan 2014 16:29:51 -0500
|
|
Subject: [PATCH] Update Chest Animation when Cancelling Event
|
|
|
|
Update chest animation after cancelling InventoryOpenEvent. Fixes BUKKIT-1440
|
|
|
|
Currently if a plugin cancels an InventoryOpenEvent for vanilla chests,
|
|
the chest animation for clients is stuck in the open state since
|
|
IInventory's closeChest method is never called. To fix the issue, closeChest
|
|
is called before exiting the display GUI method.
|
|
More info can be found here
|
|
https://bukkit.atlassian.net/browse/BUKKIT-1440
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
index ab39926..550ef44 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
@@ -629,7 +629,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
|
|
// CraftBukkit start - Inventory open hook
|
|
Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerChest(this.inventory, iinventory));
|
|
- if(container == null) return;
|
|
+ if(container == null) {
|
|
+ iinventory.l_();
|
|
+ return;
|
|
+ }
|
|
// CraftBukkit end
|
|
|
|
this.nextContainerCounter();
|
|
@@ -642,7 +645,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
public void openHopper(TileEntityHopper tileentityhopper) {
|
|
// CraftBukkit start - Inventory open hook
|
|
Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerHopper(this.inventory, tileentityhopper));
|
|
- if(container == null) return;
|
|
+ if(container == null) {
|
|
+ tileentityhopper.l_();
|
|
+ return;
|
|
+ }
|
|
// CraftBukkit end
|
|
|
|
this.nextContainerCounter();
|
|
@@ -655,7 +661,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
public void openMinecartHopper(EntityMinecartHopper entityminecarthopper) {
|
|
// CraftBukkit start - Inventory open hook
|
|
Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerHopper(this.inventory, entityminecarthopper));
|
|
- if(container == null) return;
|
|
+ if(container == null) {
|
|
+ entityminecarthopper.l_();
|
|
+ return;
|
|
+ }
|
|
// CraftBukkit end
|
|
|
|
this.nextContainerCounter();
|
|
@@ -668,7 +677,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
public void openFurnace(TileEntityFurnace tileentityfurnace) {
|
|
// CraftBukkit start - Inventory open hook
|
|
Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerFurnace(this.inventory, tileentityfurnace));
|
|
- if(container == null) return;
|
|
+ if(container == null) {
|
|
+ tileentityfurnace.l_();
|
|
+ return;
|
|
+ }
|
|
// CraftBukkit end
|
|
|
|
this.nextContainerCounter();
|
|
@@ -681,7 +693,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
public void openDispenser(TileEntityDispenser tileentitydispenser) {
|
|
// CraftBukkit start - Inventory open hook
|
|
Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerDispenser(this.inventory, tileentitydispenser));
|
|
- if(container == null) return;
|
|
+ if(container == null) {
|
|
+ tileentitydispenser.l_();
|
|
+ return;
|
|
+ }
|
|
// CraftBukkit end
|
|
|
|
this.nextContainerCounter();
|
|
@@ -694,7 +709,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
public void openBrewingStand(TileEntityBrewingStand tileentitybrewingstand) {
|
|
// CraftBukkit start - Inventory open hook
|
|
Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerBrewingStand(this.inventory, tileentitybrewingstand));
|
|
- if(container == null) return;
|
|
+ if(container == null) {
|
|
+ tileentitybrewingstand.l_();
|
|
+ return;
|
|
+ }
|
|
// CraftBukkit end
|
|
|
|
this.nextContainerCounter();
|
|
@@ -707,7 +725,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
public void openBeacon(TileEntityBeacon tileentitybeacon) {
|
|
// CraftBukkit start - Inventory open hook
|
|
Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerBeacon(this.inventory, tileentitybeacon));
|
|
- if(container == null) return;
|
|
+ if(container == null) {
|
|
+ tileentitybeacon.l_();
|
|
+ return;
|
|
+ }
|
|
// CraftBukkit end
|
|
|
|
this.nextContainerCounter();
|
|
@@ -748,7 +769,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
public void openHorseInventory(EntityHorse entityhorse, IInventory iinventory) {
|
|
// CraftBukkit start - Inventory open hook
|
|
Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerHorse(this.inventory, iinventory, entityhorse));
|
|
- if(container == null) return;
|
|
+ if(container == null) {
|
|
+ iinventory.l_();
|
|
+ return;
|
|
+ }
|
|
// CraftBukkit end
|
|
|
|
if (this.activeContainer != this.defaultContainer) {
|
|
--
|
|
1.8.3.2
|
|
|