diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java index 1206dc71d1..b0c02f890a 100644 --- a/core/src/mindustry/ai/BlockIndexer.java +++ b/core/src/mindustry/ai/BlockIndexer.java @@ -225,7 +225,7 @@ public class BlockIndexer{ } } - if(drop != null && ores != null && ores[drop.id] != null&& ores[drop.id][qx][qy] != null && ores[drop.id][qx][qy].removeValue(pos)){ //floor + if(drop != null && ores != null && ores[drop.id] != null && ores[drop.id][qx][qy] != null && ores[drop.id][qx][qy].removeValue(pos)){ //floor int old = allOres.increment(drop, -1); if(old == 1) updatePresentOres(); } diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index 47d70253ac..6860e39261 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -618,15 +618,19 @@ public class CoreBlock extends StorageBlock{ if(state.rules.coreCapture){ if(!net.client()){ tile.setBlock(block, lastDamage); - } - //delay so clients don't destroy it afterwards - Core.app.post(() -> tile.setNet(block, lastDamage, 0)); - - //building does not exist on client yet - if(!net.client()){ //core is invincible for several seconds to prevent recapture ((CoreBuild)tile.build).iframes = captureInvicibility; + + if(net.server()){ + //delay so clients don't destroy it afterwards + Core.app.post(() -> { + //make sure the world hasn't reloaded since + if(world.tile(tile.x, tile.y) == tile){ + tile.setNet(block, lastDamage, 0); + } + }); + } } } }