aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2022-09-05 02:48:52 +0800
committerGitHub <noreply@github.com>2022-09-04 20:48:52 +0200
commitf97a1861751aa9431a7c36eb4ea061f902e9f255 (patch)
tree2cf1ca1ecacafb81b1372c6f296d7f1caa397d19 /src/main/java/gregtech/common
parent2e298434f5d3900ace20c6fb0141be448f126eeb (diff)
downloadGT5-Unofficial-f97a1861751aa9431a7c36eb4ea061f902e9f255.tar.gz
GT5-Unofficial-f97a1861751aa9431a7c36eb4ea061f902e9f255.tar.bz2
GT5-Unofficial-f97a1861751aa9431a7c36eb4ea061f902e9f255.zip
fix potential index out of bound in assline (#1344)
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
index d40b569550..41ebd254dc 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
@@ -239,12 +239,25 @@ public class GT_MetaTileEntity_AssemblyLine
// If we run into missing buses/hatches or bad inputs, we go to the next data stick.
// This check only happens if we have a valid up to date data stick.
+ // first validate we have enough input busses and input hatches for this recipe
+ if (mInputBusses.size() < tRecipe.mInputs.length || mInputHatches.size() < tRecipe.mFluidInputs.length) {
+ if (GT_Values.D1) {
+ GT_FML_LOGGER.info(
+ "Not enough sources: Need ({}, {}), has ({}, {})",
+ mInputBusses.size(),
+ tRecipe.mInputs.length,
+ mInputHatches.size(),
+ tRecipe.mFluidInputs.length);
+ }
+ continue;
+ }
+
// Check Inputs allign
int aItemCount = tRecipe.mInputs.length;
tStack = new int[aItemCount];
for (int i = 0; i < aItemCount; i++) {
GT_MetaTileEntity_Hatch_InputBus tInputBus = mInputBusses.get(i);
- if (tInputBus == null) {
+ if (!isValidMetaTileEntity(tInputBus)) {
continue nextDataStick;
}
ItemStack tSlotStack = tInputBus.getStackInSlot(0);
@@ -262,7 +275,7 @@ public class GT_MetaTileEntity_AssemblyLine
tFluids = new int[aFluidCount];
tFluidSlot = new int[aFluidCount];
for (int i = 0; i < aFluidCount; i++) {
- if (mInputHatches.get(i) == null) {
+ if (!isValidMetaTileEntity(mInputHatches.get(i))) {
continue nextDataStick;
} else {
if (mInputHatches.get(i) instanceof GT_MetaTileEntity_Hatch_MultiInput) {