Frage von JustinJL, 9

Minecraft Bukkit Programmieren - ChatClear Plugin Fehler. Hat jemand Ideen?

Hallo! Also ich arbeite zurzeit an einem SystemPlugin für einen Minecraft Server und komme beim ChatClear irgendwie nicht weiter. Ich will das bei den Teammitglieder der Chat nicht gecleart wird sondern nur die Nachrricht ausgegeben wird und das bei den Spielern der Chat gelcleart wird. Ich habe alles wir mit in den Sinn kam Probiert, kam aber nicht auf die Lösung. Ich erleuter kurz was Passiert wenn ich den Befehl ausführe: Wenn alle Spieler auf dem Server Teammitglieder gibt er die Message für Teammitglieder aus, so wie ich sie haben will. Ist nur ein Spieler ohne die Permission Online, wird der gesamt Chat gecleart. Bitte um Hilfe!

Hier der Code


package Commands;

import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player;

public class CMD_ChatClear implements CommandExecutor {

@Override
public boolean onCommand(CommandSender cs, Command cmd, String label, String[] args) {
    if(cs instanceof Player && cs.hasPermission("sys.chatclear")){
            for(Player players : Bukkit.getServer().getOnlinePlayers()) {
                  if(!players.hasPermission("sys.bypass")) {
                        for(int i= 0; i < 150; i++){Bukkit.broadcastMessage("");}
                        players.sendMessage("§c§lSystem » §7Der Chat wurde von " + cs.getName() + " geleert");
                  }else{
                        players.sendMessage("");
                        players.sendMessage("");
                        players.sendMessage("§c§lSystem » §7Der Chat wurde von " + cs.getName() + " geleert");
                        players.sendMessage("");
                        players.sendMessage("");
                  }
            }
                
            
        }else{
            cs.sendMessage("§c§lSystem » §7Für diesen Befehl hast du keine Berechtigungen");
        }
 return false;
}

}

Danke im Vorraus!

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von D4V1D1998, 8

Ersetze die Zeile

for(int i= 0; i < 150; i++){Bukkit.broadcastMessage("");}

durch folgendes:

for(int i= 0; i < 150; i++){
players.sendMessage("");
}
Kommentar von JustinJL ,

habe ich aber meine ich auch schon Probiert, trotzdem Danke!
Teste es einfach nochmal!

Kommentar von D4V1D1998 ,

Hat es funktioniert?

In der Theorie sendet "Bukkit.broadcastMessage("");" ja an alle Spieler des Servers eine Nachricht, d.h. auch an die Teammitglieder. Du gehst die Spieler ja einzelnd durch und sendest jedem die Nachrichten, damit dein Team keine leeren 150 Zeilen bekommt. Daher sollte sendMessage hier gehen.

Antwort
von JustinJL, 5

Danke!

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten