From b69eb3cb1a619cb3460967f67401dbdccb492cf3 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 22 Apr 2026 13:41:41 -0400 Subject: [PATCH] Cap message block contents at 250 chars/1000 bytes (#11963) --- core/src/mindustry/logic/LExecutor.java | 2 +- core/src/mindustry/world/blocks/logic/MessageBlock.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 1920a59123..e4a09874c8 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1169,7 +1169,7 @@ public class LExecutor{ 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)); + d.message.append(exec.textBuffer, 0, Math.min(exec.textBuffer.length(), ((MessageBlock)d.block).maxTextLength)); } exec.textBuffer.setLength(0); diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/logic/MessageBlock.java index 201dff6cf6..5488750d2f 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/logic/MessageBlock.java @@ -15,6 +15,7 @@ import arc.util.pooling.*; import mindustry.core.*; import mindustry.gen.*; import mindustry.logic.*; +import mindustry.mod.*; import mindustry.ui.*; import mindustry.ui.dialogs.*; import mindustry.world.*; @@ -23,8 +24,10 @@ import mindustry.world.meta.*; import static mindustry.Vars.*; public class MessageBlock extends Block{ - //don't change this too much unless you want to run into issues with packet sizes - public int maxTextLength = 300; + private static final int maxByteLength = 999; + //maximum UTF-8 length per char is 4, so 4*250 = 1000 bytes, the max byte array size + @NoPatch + public int maxTextLength = 250; public int maxNewlines = 24; public MessageBlock(String name){