src/main/java/de/viper/globalchat/GlobalChat.java aktualisiert

This commit is contained in:
2026-01-17 10:15:09 +00:00
parent 0f3a020591
commit 61dd21f317

View File

@@ -43,7 +43,7 @@ import java.util.regex.Pattern;
public class GlobalChat extends Plugin implements Listener { public class GlobalChat extends Plugin implements Listener {
private static final String CHANNEL_CONTROL = "global:control"; private static final String CHANNEL_CONTROL = "global:control";
private static final String CHANNEL_CHAT = "global:chat"; // Kanal für Chat-Relay private static final String CHANNEL_CHAT = "global:chat"; // Kanal für Chat-Relay (legacy)
private List<String> badWords = new ArrayList<>(); private List<String> badWords = new ArrayList<>();
private File logFolder; private File logFolder;
@@ -122,7 +122,7 @@ public class GlobalChat extends Plugin implements Listener {
@Override @Override
public void onEnable() { public void onEnable() {
// Plugin channels registrieren // Plugin channels registrieren (legacy, werden nicht mehr für Chat-Relay genutzt)
try { try {
getProxy().registerChannel(CHANNEL_CONTROL); getProxy().registerChannel(CHANNEL_CONTROL);
getProxy().registerChannel(CHANNEL_CHAT); getProxy().registerChannel(CHANNEL_CHAT);
@@ -138,7 +138,7 @@ public class GlobalChat extends Plugin implements Listener {
if (!configFile.exists()) { if (!configFile.exists()) {
getLogger().info("bungee.yml nicht gefunden. Erstelle Standard..."); getLogger().info("bungee.yml nicht gefunden. Erstelle Standard...");
try (InputStream in = getResourceAsStream("bungee.yml")) { try (InputStream in = getResourceAsStream("bungee.yml")) {
Files.copy(in, configFile.toPath()); if (in != null) Files.copy(in, configFile.toPath());
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -270,14 +270,10 @@ public class GlobalChat extends Plugin implements Listener {
// Global Broadcast Helper // Global Broadcast Helper
// =========================== // ===========================
private void broadcastGlobal(TextComponent component) { private void broadcastGlobal(TextComponent component) {
String jsonMessage = ComponentSerializer.toString(component); // KORREKTUR: Sende als System/Plugin-Nachricht an alle verbundenen Spieler.
for (ServerInfo server : getProxy().getServers().values()) { // Damit bleibt die Anzeige identisch, aber es werden keine unsignierten Player-Chat-Pakete erzeugt.
if (server.getPlayers().isEmpty()) continue; for (ProxiedPlayer p : getProxy().getPlayers()) {
try { p.sendMessage(component);
server.sendData(CHANNEL_CHAT, jsonMessage.getBytes(StandardCharsets.UTF_8));
} catch (Exception ex) {
getLogger().warning("Konnte Nachricht nicht an " + server.getName() + " senden.");
}
} }
} }
@@ -352,7 +348,7 @@ public class GlobalChat extends Plugin implements Listener {
String chatOut = out.toString(); String chatOut = out.toString();
// NEU: Nachricht erstellen und an alle Server senden (via Helper) // NEU: Nachricht erstellen und an alle Spieler senden (als Systemnachricht)
TextComponent chatComponent = new TextComponent(chatOut); TextComponent chatComponent = new TextComponent(chatOut);
broadcastGlobal(chatComponent); broadcastGlobal(chatComponent);