aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/automation
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/automation')
-rw-r--r--src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java6
-rw-r--r--src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java4
2 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java
index 3830cd3497..9da0eace39 100644
--- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java
+++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java
@@ -125,9 +125,11 @@ public class GT_MetaTileEntity_ChestBuffer extends GT_MetaTileEntity_Buffer {
protected void fillStacksIntoFirstSlots() {
sortStacks();
// Merge small stacks together
- for (int i = 0; i < this.mInventory.length-1;) {
+ // The last slot of mInventory is invalid, so we need to avoid iterating over it.
+ // Thus all max indices are reduced by 1 here.
+ for (int i = 0; i < this.mInventory.length - 2;) {
//GT_FML_LOGGER.info( (this.mInventory[i] == null) ? "Slot empty " + i : "Slot " + i + " holds " + this.mInventory[i].getDisplayName());
- for (int j = i + 1; j < this.mInventory.length; j++) {
+ for (int j = i + 1; j < this.mInventory.length - 1; j++) {
if ((this.mInventory[j] != null) && ((GT_Utility.areStacksEqual(this.mInventory[i], this.mInventory[j])))) {
GT_Utility.moveStackFromSlotAToSlotB(getBaseMetaTileEntity(), getBaseMetaTileEntity(), j, i, (byte) 64, (byte) 1, (byte) 64, (byte) 1);
//GT_FML_LOGGER.info( "Moving slot " + j + " into slot " + i );
diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java
index d3b124b79f..3cf5adff99 100644
--- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java
+++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java
@@ -51,7 +51,9 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer
@Override
protected void fillStacksIntoFirstSlots() {
- for (int i = 0; i < this.mInventory.length - 1; i++) {
+ // The last slot of mInventory is invalid, so we need to avoid iterating over it.
+ // Thus all max indices are reduced by 1 here.
+ for (int i = 0; i < this.mInventory.length - 2; i++) {
for (int j = i + 1; j < this.mInventory.length - 1; j++) {
if ((this.mInventory[j] != null)
&& ((this.mInventory[i] == null) || (GT_Utility.areStacksEqual(this.mInventory[i], this.mInventory[j])))) {