mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-30 04:02:50 +01:00
118 lines
5.2 KiB
Diff
118 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
|
||
|
|