From 3590e65c481a5f457ca2f426b8b1863306ba87e9 Mon Sep 17 00:00:00 2001 From: Carl Richard Theodor Schneider Date: Sat, 15 Jan 2022 01:12:13 +0100 Subject: [PATCH] feat: Add Linebreaks for long matrix messages --- .../bukkit/matrixbridge/MatrixPlugin.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/at/overflow/bukkit/matrixbridge/MatrixPlugin.java b/src/main/java/at/overflow/bukkit/matrixbridge/MatrixPlugin.java index 5506276..4497f00 100644 --- a/src/main/java/at/overflow/bukkit/matrixbridge/MatrixPlugin.java +++ b/src/main/java/at/overflow/bukkit/matrixbridge/MatrixPlugin.java @@ -1,5 +1,7 @@ package at.overflow.bukkit.matrixbridge; +import static java.lang.Math.min; + import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -74,11 +76,19 @@ public class MatrixPlugin extends JavaPlugin implements Listener, Endpoint { @Override public void send(String from, String message) { - if (message.length() > MAX_LENGTH) { - message = message.substring(0, MAX_LENGTH) + " [...]"; - } + if(message.length() < MAX_LENGTH) { + getServer().broadcastMessage(ChatColor.GREEN + "<" + from + ">" +ChatColor.WHITE + " " + message); + } else { + int pos = 0; + getServer().broadcastMessage(ChatColor.GREEN + "<" + from + ">"); + while(pos < message.length()) + { + int segLen = min(message.length() - pos, MAX_LENGTH); + getServer().broadcastMessage(ChatColor.WHITE + " " + message.substring(pos, pos + segLen)); - getServer().broadcastMessage(ChatColor.GREEN + "<" + from + ">" + ChatColor.WHITE + " " + message); + pos += segLen; + } + } } @Override