mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-06 00:07:56 +01:00
Further optimise hoppers
This commit is contained in:
parent
ac93a5cb00
commit
d334865466
@ -5,6 +5,7 @@ Subject: [PATCH] Improve Minecraft Hopper Performance
|
||||
|
||||
Removes unnecessary extra calls to .update() that are very expensive
|
||||
Also reset cooldown each hopper tick that a hopper is full.
|
||||
Also don't constantly clone ItemStacks without merit
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
@ -30,6 +31,42 @@ diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||
@@ -0,0 +0,0 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
this.setCooldown(world.spigotConfig.hopperTransfer); // Spigot
|
||||
return false;
|
||||
}
|
||||
- int origCount = event.getItem().getAmount(); // Spigot
|
||||
- ItemStack itemstack1 = addItem(this, iinventory, CraftItemStack.asNMSCopy(event.getItem()), enumdirection);
|
||||
-
|
||||
+ // Paper start
|
||||
+ org.bukkit.inventory.ItemStack eventStack = event.getItem();
|
||||
+ int origCount = eventStack.getAmount(); // Spigot
|
||||
+ ItemStack itemstack1 = addItem(this, iinventory, CraftItemStack.asNMSCopy(eventStack), enumdirection);
|
||||
+ // Paper end
|
||||
if (itemstack1.isEmpty()) {
|
||||
- if (event.getItem().equals(oitemstack)) {
|
||||
+ if (eventStack.equals(oitemstack)) { // Paper
|
||||
iinventory.update();
|
||||
} else {
|
||||
this.setItem(i, itemstack);
|
||||
@@ -0,0 +0,0 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
}
|
||||
return false;
|
||||
}
|
||||
- int origCount = event.getItem().getAmount(); // Spigot
|
||||
- ItemStack itemstack2 = addItem(iinventory, ihopper, CraftItemStack.asNMSCopy(event.getItem()), null);
|
||||
-
|
||||
+ // Paper start
|
||||
+ org.bukkit.inventory.ItemStack eventStack = event.getItem();
|
||||
+ int origCount = eventStack.getAmount(); // Spigot
|
||||
+ ItemStack itemstack2 = addItem(iinventory, ihopper, CraftItemStack.asNMSCopy(eventStack), null);
|
||||
+ // Paper end
|
||||
if (itemstack2.isEmpty()) {
|
||||
- if (event.getItem().equals(oitemstack)) {
|
||||
+ if (eventStack.equals(oitemstack)) { // Paper
|
||||
iinventory.update();
|
||||
} else {
|
||||
iinventory.setItem(i, itemstack1);
|
||||
@@ -0,0 +0,0 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
boolean flag1 = iinventory1.w_();
|
||||
|
||||
@ -48,4 +85,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
private boolean J() {
|
||||
return this.f > 0;
|
||||
}
|
||||
--
|
||||
--
|
||||
2.9.3 (Apple Git-75)
|
||||
|
||||
|
@ -389,4 +389,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
List list = world.getEntities((Entity) null, new AxisAlignedBB(d0 - 0.5D, d1 - 0.5D, d2 - 0.5D, d0 + 0.5D, d1 + 0.5D, d2 + 0.5D), IEntitySelector.c);
|
||||
|
||||
if (!list.isEmpty()) {
|
||||
--
|
||||
--
|
||||
2.9.3 (Apple Git-75)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user