aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2022-09-16 17:56:24 +0800
committerGitHub <noreply@github.com>2022-09-16 11:56:24 +0200
commit598dbb1c3d78345721556da65ea62973f23abc13 (patch)
tree06cefca093478a53b68350b6f7466887ee8d783f
parent462f63064558da98f08e45b3fe3e7e77baa4b0c1 (diff)
downloadGT5-Unofficial-598dbb1c3d78345721556da65ea62973f23abc13.tar.gz
GT5-Unofficial-598dbb1c3d78345721556da65ea62973f23abc13.tar.bz2
GT5-Unofficial-598dbb1c3d78345721556da65ea62973f23abc13.zip
duct tape fix for too many updates on an overloaded server preventing structure check (#1384)
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java6
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java10
3 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index c541492ee1..7dccbe03a4 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -308,7 +308,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
if (aBaseMetaTileEntity.isServerSide()) {
if (mEfficiency < 0) mEfficiency = 0;
if (mUpdated) {
- mUpdate = 50;
+ // duct tape fix for too many updates on an overloaded server, causing the structure check to not run
+ if (mUpdate <= 0) mUpdate = 50;
mUpdated = false;
}
if (--mUpdate == 0 || --mStartUpCheck == 0) {
diff --git a/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java b/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java
index 143548cfaa..f6bc532469 100644
--- a/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java
+++ b/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java
@@ -57,8 +57,10 @@ import net.minecraftforge.common.util.ForgeDirection;
public abstract class GT_MetaTileEntity_LongDistancePipelineBase extends GT_MetaTileEntity_BasicHull_NonElectric {
public static int minimalDistancePoints = 64;
- protected GT_MetaTileEntity_LongDistancePipelineBase mTarget = null, mSender = null;
- protected ChunkCoordinates mTargetPos = null;
+ protected GT_MetaTileEntity_LongDistancePipelineBase mTarget = null;
+ // these two are updated by machine block update thread, so must be volatile
+ protected volatile GT_MetaTileEntity_LongDistancePipelineBase mSender = null;
+ protected volatile ChunkCoordinates mTargetPos = null;
protected GT_MetaTileEntity_LongDistancePipelineBase mTooCloseTarget = null, mTooCloseSender = null;
public GT_MetaTileEntity_LongDistancePipelineBase(
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java
index e53bf880ba..12ef824ee1 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java
@@ -29,7 +29,8 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
public static final int INPUT_SLOTS = 3, OUTPUT_SLOTS = 3;
public int mMaxProgresstime = 0;
- public volatile int mUpdate = 5;
+ private volatile boolean mUpdated;
+ public int mUpdate = 5;
public int mProgresstime = 0;
public boolean mMachine = false;
private boolean mChimneyBlocked = false;
@@ -211,7 +212,7 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
@Override
public void onMachineBlockUpdate() {
- this.mUpdate = 5;
+ mUpdated = true;
}
@Override
@@ -231,6 +232,11 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
.run();
}
if (aBaseMetaTileEntity.isServerSide()) {
+ if (mUpdated) {
+ // duct tape fix for too many updates on an overloaded server, causing the structure check to not run
+ if (mUpdate < 0) mUpdate = 5;
+ mUpdated = false;
+ }
if (this.mUpdate-- == 0) {
this.mMachine = checkMachine();
}