Paper/CraftBukkit-Patches/0081-Update-Chest-Animation-when-Cancelling-Event.patch

118 lines
5.2 KiB
Diff
Raw Normal View History

2014-03-26 21:34:47 +01:00
From 898ed50fc7a54f6c3612f0d51f4bd2d9d410e700 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
2014-03-26 21:34:47 +01:00
index d32a2d2..fda1e26 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
2014-03-26 21:34:47 +01:00
@@ -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();
2014-03-26 21:34:47 +01:00
@@ -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();
2014-03-26 21:34:47 +01:00
@@ -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();
2014-03-26 21:34:47 +01:00
@@ -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();
2014-03-26 21:34:47 +01:00
@@ -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();
2014-03-26 21:34:47 +01:00
@@ -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();
2014-03-26 21:34:47 +01:00
@@ -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();
2014-03-26 21:34:47 +01:00
@@ -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.5.2.msysgit.0