Remove getCubes patch as under some circumstances it can loop around itself forever. For anyone wishing to reimplement this patch, the rationale behind it is quite simple, get all cubes within each chunk at the same time.
By: md_5 <git@md-5.net>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
From 1eae10315669613319309cd9a9b6753acbda643a Mon Sep 17 00:00:00 2001
|
||||
From: Andre LeBlanc <andre@norcode.com>
|
||||
Date: Sat, 6 Apr 2013 12:00:31 -0400
|
||||
Subject: [PATCH] Make AnvilInventory.getItem() use both containers. Fixes
|
||||
BUKKIT-2788
|
||||
|
||||
The AnvilInventory reports its size as the sum of the ingredient and
|
||||
result inventories, but when trying to access the slots, only the ingredient
|
||||
inventory is used, leading to an ArrayIndexOutOfBounds exception.
|
||||
|
||||
This change overrides getItem(I) and setItem(I) to use both inventories,
|
||||
with the slot number adjusted based on their size.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAnvil.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAnvil.java
|
||||
index a91d81a..46a1d38 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAnvil.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryAnvil.java
|
||||
@@ -1,7 +1,9 @@
|
||||
package org.bukkit.craftbukkit.inventory;
|
||||
|
||||
import net.minecraft.server.IInventory;
|
||||
+
|
||||
import org.bukkit.inventory.AnvilInventory;
|
||||
+import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class CraftInventoryAnvil extends CraftInventory implements AnvilInventory {
|
||||
private final IInventory resultInventory;
|
||||
@@ -20,6 +22,26 @@ public class CraftInventoryAnvil extends CraftInventory implements AnvilInventor
|
||||
}
|
||||
|
||||
@Override
|
||||
+ public ItemStack getItem(int slot) {
|
||||
+ if (slot < getIngredientsInventory().getSize()) {
|
||||
+ net.minecraft.server.ItemStack item = getIngredientsInventory().getItem(slot);
|
||||
+ return item == null ? null : CraftItemStack.asCraftMirror(item);
|
||||
+ } else {
|
||||
+ net.minecraft.server.ItemStack item = getResultInventory().getItem(slot - getIngredientsInventory().getSize());
|
||||
+ return item == null ? null : CraftItemStack.asCraftMirror(item);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setItem(int index, ItemStack item) {
|
||||
+ if (index < getIngredientsInventory().getSize()) {
|
||||
+ getIngredientsInventory().setItem(index, (item == null ? null : CraftItemStack.asNMSCopy(item)));
|
||||
+ } else {
|
||||
+ getResultInventory().setItem((index - getIngredientsInventory().getSize()), (item == null ? null : CraftItemStack.asNMSCopy(item)));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
public int getSize() {
|
||||
return getResultInventory().getSize() + getIngredientsInventory().getSize();
|
||||
}
|
||||
--
|
||||
1.8.3.2
|
||||
|
||||
Reference in New Issue
Block a user