118 lines
5.2 KiB
Diff
118 lines
5.2 KiB
Diff
|
From bb4a9f701952be7e06e70fa583f41c8e2dc8382e 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 b519903..9411132 100644
|
||
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||
|
@@ -634,7 +634,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();
|
||
|
@@ -647,7 +650,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();
|
||
|
@@ -660,7 +666,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();
|
||
|
@@ -673,7 +682,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();
|
||
|
@@ -686,7 +698,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();
|
||
|
@@ -699,7 +714,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();
|
||
|
@@ -712,7 +730,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();
|
||
|
@@ -755,7 +776,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
|
||
|
|