mirror of
https://hub.spigotmc.org/stash/scm/spigot/spigot.git
synced 2025-09-18 21:33:01 +00:00
SPIGOT-5730: Modernise inventory patch
This commit is contained in:
parent
a2bdb11986
commit
2f5d615f15
3 changed files with 29 additions and 41 deletions
|
@ -1,4 +1,4 @@
|
|||
From f35bfe34666037b7b0ad8abc54bcf1eb0bc237b3 Mon Sep 17 00:00:00 2001
|
||||
From 4da48f3cafb99cd8b4a36d3c5823cf64e6546e97 Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <md_5@live.com.au>
|
||||
Date: Thu, 27 Jun 2013 17:26:09 +1000
|
||||
Subject: [PATCH] Properly Close Inventories
|
||||
|
@ -6,24 +6,18 @@ Subject: [PATCH] Properly Close Inventories
|
|||
Properly close inventories when unloading and switching worlds.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index c3a6848ef..568f879a6 100644
|
||||
index c3a6848ef..cbbef96e5 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -1021,6 +1021,21 @@ public class WorldServer extends World {
|
||||
@@ -1021,6 +1021,15 @@ public class WorldServer extends World {
|
||||
}
|
||||
|
||||
public void unloadChunk(Chunk chunk) {
|
||||
+ // Spigot Start
|
||||
+ for (TileEntity tileentity : chunk.getTileEntities().values())
|
||||
+ {
|
||||
+ if ( tileentity instanceof IInventory )
|
||||
+ {
|
||||
+ for ( org.bukkit.entity.HumanEntity h : Lists.<org.bukkit.entity.HumanEntity>newArrayList((List<org.bukkit.entity.HumanEntity>) ( (IInventory) tileentity ).getViewers() ) )
|
||||
+ {
|
||||
+ if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity )
|
||||
+ {
|
||||
+ ( (org.bukkit.craftbukkit.entity.CraftHumanEntity) h).getHandle().closeInventory();
|
||||
+ }
|
||||
+ for (TileEntity tileentity : chunk.getTileEntities().values()) {
|
||||
+ if (tileentity instanceof IInventory) {
|
||||
+ for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((IInventory) tileentity).getViewers())) {
|
||||
+ h.closeInventory();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
|
@ -31,25 +25,20 @@ index c3a6848ef..568f879a6 100644
|
|||
this.tileEntityListUnload.addAll(chunk.getTileEntities().values());
|
||||
EntitySlice[] aentityslice = chunk.getEntitySlices();
|
||||
int i = aentityslice.length;
|
||||
@@ -1031,6 +1046,18 @@ public class WorldServer extends World {
|
||||
@@ -1047,6 +1056,13 @@ public class WorldServer extends World {
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
Entity entity = (Entity) iterator.next();
|
||||
+ // Spigot Start
|
||||
+ if ( entity instanceof IInventory )
|
||||
+ {
|
||||
+ for ( org.bukkit.entity.HumanEntity h : Lists.<org.bukkit.entity.HumanEntity>newArrayList( (List<org.bukkit.entity.HumanEntity>) ( (IInventory) entity ).getViewers() ) )
|
||||
+ {
|
||||
+ if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity )
|
||||
+ {
|
||||
+ ( (org.bukkit.craftbukkit.entity.CraftHumanEntity) h).getHandle().closeInventory();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ // Spigot End
|
||||
|
||||
if (!(entity instanceof EntityPlayer)) {
|
||||
if (this.tickingEntities) {
|
||||
public void unregisterEntity(Entity entity) {
|
||||
org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot
|
||||
+ // Spigot Start
|
||||
+ if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder) {
|
||||
+ for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) {
|
||||
+ h.closeInventory();
|
||||
+ }
|
||||
+ }
|
||||
+ // Spigot End
|
||||
if (entity instanceof EntityEnderDragon) {
|
||||
EntityComplexPart[] aentitycomplexpart = ((EntityEnderDragon) entity).eo();
|
||||
int i = aentitycomplexpart.length;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
From 68ab8cb1f8886170ad95e4c60cca35b5f27a4c4b Mon Sep 17 00:00:00 2001
|
||||
From 66ddf582423c2bbec53c1bb2539848dadb84b544 Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <git@md-5.net>
|
||||
Date: Fri, 8 Aug 2014 19:57:03 +1000
|
||||
Subject: [PATCH] Plug WorldMap Memory Leak
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 568f879a6..1c72b5423 100644
|
||||
index cbbef96e5..47888e1ee 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -1074,6 +1074,30 @@ public class WorldServer extends World {
|
||||
@@ -1056,6 +1056,29 @@ public class WorldServer extends World {
|
||||
|
||||
public void unregisterEntity(Entity entity) {
|
||||
org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot
|
||||
|
@ -35,10 +35,9 @@ index 568f879a6..1c72b5423 100644
|
|||
+ } );
|
||||
+ }
|
||||
+ // Spigot end
|
||||
+
|
||||
if (entity instanceof EntityEnderDragon) {
|
||||
EntityComplexPart[] aentitycomplexpart = ((EntityEnderDragon) entity).eo();
|
||||
int i = aentitycomplexpart.length;
|
||||
// Spigot Start
|
||||
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder) {
|
||||
for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 4c23ca5d6c1a3118beb5d3ea6e9d856396dde214 Mon Sep 17 00:00:00 2001
|
||||
From 2e965163ce26df9168c222e10f878c5ef62c9b0d Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <git@md-5.net>
|
||||
Date: Fri, 20 Feb 2015 21:33:36 +1100
|
||||
Subject: [PATCH] Use Standard List for EntitySlices.
|
||||
|
@ -96,10 +96,10 @@ index 8a8abe1bb..5feb9e517 100644
|
|||
return chunk.getTileEntities().size();
|
||||
}).orElse(0));
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 1c72b5423..d5014abc9 100644
|
||||
index 47888e1ee..545ec5a2d 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -1037,11 +1037,11 @@ public class WorldServer extends World {
|
||||
@@ -1031,11 +1031,11 @@ public class WorldServer extends World {
|
||||
}
|
||||
// Spigot End
|
||||
this.tileEntityListUnload.addAll(chunk.getTileEntities().values());
|
||||
|
|
Loading…
Add table
Reference in a new issue