瀏覽代碼

I believe this resolves berserk allowing you to take drops into your equipment slots.

t00thpick1 8 年之前
父節點
當前提交
a2bcce9ab1
共有 1 個文件被更改,包括 11 次插入6 次删除
  1. 11 6
      src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java

+ 11 - 6
src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java

@@ -26,7 +26,8 @@ public class Unarmed {
         if (inventory.containsAtLeast(dropStack, 1)) {
             int nextSlot = 0;
 
-            for (ItemStack itemstack : inventory) {
+            ItemStack[] items = inventory.getStorageContents();
+            for (ItemStack itemstack : items) {
                 if (dropStack.isSimilar(itemstack)) {
                     int itemAmount = itemstack.getAmount();
                     int itemMax = itemstack.getMaxStackSize();
@@ -36,13 +37,15 @@ public class Unarmed {
                     if (dropAmount + itemAmount <= itemMax) {
                         drop.remove();
                         addStack.setAmount(dropAmount + itemAmount);
-                        inventory.setItem(nextSlot, addStack);
+                        items[nextSlot] = addStack;
+                        inventory.setStorageContents(items);
                         return true;
                     }
 
                     addStack.setAmount(itemMax);
                     dropAmount = dropAmount + itemAmount - itemMax;
-                    inventory.setItem(nextSlot, addStack);
+                    items[nextSlot] = addStack;
+                    inventory.setStorageContents(items);
                 }
 
                 if (dropAmount == 0) {
@@ -57,13 +60,15 @@ public class Unarmed {
         if (firstEmpty == inventory.getHeldItemSlot()) {
             int nextSlot = firstEmpty + 1;
 
-            for (Iterator<ItemStack> iterator = inventory.iterator(nextSlot); iterator.hasNext(); ) {
-                ItemStack itemstack = iterator.next();
+            ItemStack[] items = inventory.getStorageContents();
+            for (; nextSlot < items.length; nextSlot++) {
+                ItemStack itemstack = items[nextSlot];
 
                 if (itemstack == null) {
                     drop.remove();
                     dropStack.setAmount(dropAmount);
-                    inventory.setItem(nextSlot, dropStack);
+                    items[nextSlot] = dropStack;
+                    inventory.setStorageContents(items);
                     return true;
                 }