diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index ae4a1c8f0d..7f88186d38 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -967,7 +967,7 @@ public class LExecutor{ //graphics on headless servers are useless. if(Vars.headless) return; - if(target.building() instanceof LogicDisplayBuild d && (d.team == exec.team || exec.privileged)){ + if(target.building() instanceof LogicDisplayBuild d && d.isValid() && (d.team == exec.team || exec.privileged)){ d.flushCommands(exec.graphicsBuffer); exec.graphicsBuffer.clear(); } @@ -1101,8 +1101,7 @@ public class LExecutor{ @Override public void run(LExecutor exec){ - if(target.building() instanceof MessageBuild d && (exec.privileged || (d.team == exec.team && !d.block.privileged))){ - + if(target.building() instanceof MessageBuild d && d.isValid() && (exec.privileged || (d.team == exec.team && !d.block.privileged))){ d.message.setLength(0); d.message.append(exec.textBuffer, 0, Math.min(exec.textBuffer.length(), maxTextBuffer)); diff --git a/core/src/mindustry/world/blocks/logic/CanvasBlock.java b/core/src/mindustry/world/blocks/logic/CanvasBlock.java index d706801fb5..566704d6e4 100644 --- a/core/src/mindustry/world/blocks/logic/CanvasBlock.java +++ b/core/src/mindustry/world/blocks/logic/CanvasBlock.java @@ -226,8 +226,9 @@ public class CanvasBlock extends Block{ } } + @Override public boolean readable(LExecutor exec){ - return exec.privileged || this.team == exec.team; + return isValid() && (exec.privileged || this.team == exec.team); } @Override @@ -237,7 +238,7 @@ public class CanvasBlock extends Block{ @Override public boolean writable(LExecutor exec){ - return exec.privileged || this.team == exec.team; + return readable(exec); } @Override diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index 7c2937abee..d0f1b12be5 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -534,7 +534,7 @@ public class LogicBlock extends Block{ @Override public boolean readable(LExecutor exec){ - return exec.privileged || (this.team == exec.team && !this.block.privileged); + return isValid() && (exec.privileged || (this.team == exec.team && !this.block.privileged)); } @Override @@ -552,7 +552,7 @@ public class LogicBlock extends Block{ @Override public boolean writable(LExecutor exec){ - return exec.privileged || (this.team == exec.team && !this.block.privileged); + return readable(exec); } @Override diff --git a/core/src/mindustry/world/blocks/logic/MemoryBlock.java b/core/src/mindustry/world/blocks/logic/MemoryBlock.java index fe74607680..84a9b208be 100644 --- a/core/src/mindustry/world/blocks/logic/MemoryBlock.java +++ b/core/src/mindustry/world/blocks/logic/MemoryBlock.java @@ -56,8 +56,9 @@ public class MemoryBlock extends Block{ return accessible(); } + @Override public boolean readable(LExecutor exec){ - return exec.privileged || (this.team == exec.team && !this.block.privileged); + return isValid() && (exec.privileged || (this.team == exec.team && !this.block.privileged)); } @Override @@ -69,7 +70,7 @@ public class MemoryBlock extends Block{ @Override public boolean writable(LExecutor exec){ - return exec.privileged || (this.team == exec.team && !this.block.privileged); + return readable(exec); } @Override diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/logic/MessageBlock.java index 1b497fa3f3..3ccdade0d5 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/logic/MessageBlock.java @@ -168,7 +168,7 @@ public class MessageBlock extends Block{ @Override public boolean readable(LExecutor exec){ - return true; + return isValid(); } @Override