aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2021-11-21 11:46:05 +0100
committerGitHub <noreply@github.com>2021-11-21 11:46:05 +0100
commitd751f6cfa6cafe4002c86f669e15709b7255393a (patch)
treead87f9cb07da65dd5f109b879253675eef927889 /src
parent515e0789f9c162e87c2278d5ac4bc00300ea860e (diff)
parent05deea59949cf4758fef8d90e8fc9ebdb3ef9000 (diff)
downloadGT5-Unofficial-d751f6cfa6cafe4002c86f669e15709b7255393a.tar.gz
GT5-Unofficial-d751f6cfa6cafe4002c86f669e15709b7255393a.tar.bz2
GT5-Unofficial-d751f6cfa6cafe4002c86f669e15709b7255393a.zip
Merge pull request #749 from GTNewHorizons/cover-nbt
Fix array overflow related to covers
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java11
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java12
2 files changed, 16 insertions, 7 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
index 475bee8eb9..bff79743be 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
@@ -1254,17 +1254,22 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
@Override
public void setCoverDataAtSide(byte aSide, ISerializableObject aData) {
- mCoverData[aSide] = aData;
+ if (aSide >= 0 && aSide < 6 && getCoverBehaviorAtSideNew(aSide) != null && getCoverBehaviorAtSideNew(aSide).cast(aData) != null)
+ mCoverData[aSide] = aData;
}
@Override
public ISerializableObject getComplexCoverDataAtSide(byte aSide) {
- return mCoverData[aSide];
+ if (aSide >= 0 && aSide < 6 && getCoverBehaviorAtSideNew(aSide) != null)
+ return mCoverData[aSide];
+ return GregTech_API.sNoBehavior.createDataObject();
}
@Override
public GT_CoverBehaviorBase<?> getCoverBehaviorAtSideNew(byte aSide) {
- return mCoverBehaviors[aSide];
+ if (aSide >= 0 && aSide < 6)
+ return mCoverBehaviors[aSide];
+ return GregTech_API.sNoBehavior;
}
@Override
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
index a56c0020a3..9176d063ce 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
@@ -1864,20 +1864,24 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
return ((ISerializableObject.LegacyCoverData) mCoverData[aSide]).get();
return 0;
}
-
@Override
public void setCoverDataAtSide(byte aSide, ISerializableObject aData) {
- mCoverData[aSide] = aData;
+ if (aSide >= 0 && aSide < 6 && getCoverBehaviorAtSideNew(aSide) != null && getCoverBehaviorAtSideNew(aSide).cast(aData) != null)
+ mCoverData[aSide] = aData;
}
@Override
public ISerializableObject getComplexCoverDataAtSide(byte aSide) {
- return mCoverData[aSide];
+ if (aSide >= 0 && aSide < 6 && getCoverBehaviorAtSideNew(aSide) != null)
+ return mCoverData[aSide];
+ return GregTech_API.sNoBehavior.createDataObject();
}
@Override
public GT_CoverBehaviorBase<?> getCoverBehaviorAtSideNew(byte aSide) {
- return mCoverBehaviors[aSide];
+ if (aSide >= 0 && aSide < 6)
+ return mCoverBehaviors[aSide];
+ return GregTech_API.sNoBehavior;
}
public byte getLightValue() {