diff --git a/src/main/java/de/viper/globalchat/GlobalChat.java b/src/main/java/de/viper/globalchat/GlobalChat.java index 03aab5b..183b144 100644 --- a/src/main/java/de/viper/globalchat/GlobalChat.java +++ b/src/main/java/de/viper/globalchat/GlobalChat.java @@ -43,7 +43,7 @@ import java.util.regex.Pattern; public class GlobalChat extends Plugin implements Listener { 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 badWords = new ArrayList<>(); private File logFolder; @@ -122,7 +122,7 @@ public class GlobalChat extends Plugin implements Listener { @Override public void onEnable() { - // Plugin channels registrieren + // Plugin channels registrieren (legacy, werden nicht mehr für Chat-Relay genutzt) try { getProxy().registerChannel(CHANNEL_CONTROL); getProxy().registerChannel(CHANNEL_CHAT); @@ -138,7 +138,7 @@ public class GlobalChat extends Plugin implements Listener { if (!configFile.exists()) { getLogger().info("bungee.yml nicht gefunden. Erstelle Standard..."); try (InputStream in = getResourceAsStream("bungee.yml")) { - Files.copy(in, configFile.toPath()); + if (in != null) Files.copy(in, configFile.toPath()); } catch (IOException e) { e.printStackTrace(); } @@ -270,14 +270,10 @@ public class GlobalChat extends Plugin implements Listener { // Global Broadcast Helper // =========================== private void broadcastGlobal(TextComponent component) { - String jsonMessage = ComponentSerializer.toString(component); - for (ServerInfo server : getProxy().getServers().values()) { - if (server.getPlayers().isEmpty()) continue; - try { - server.sendData(CHANNEL_CHAT, jsonMessage.getBytes(StandardCharsets.UTF_8)); - } catch (Exception ex) { - getLogger().warning("Konnte Nachricht nicht an " + server.getName() + " senden."); - } + // KORREKTUR: Sende als System/Plugin-Nachricht an alle verbundenen Spieler. + // Damit bleibt die Anzeige identisch, aber es werden keine unsignierten Player-Chat-Pakete erzeugt. + for (ProxiedPlayer p : getProxy().getPlayers()) { + p.sendMessage(component); } } @@ -352,7 +348,7 @@ public class GlobalChat extends Plugin implements Listener { 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); broadcastGlobal(chatComponent); @@ -882,4 +878,4 @@ public class GlobalChat extends Plugin implements Listener { catch (Exception e) { return null; } return null; } -} \ No newline at end of file +}