Hey,
ich hab mir mal dein Plugin angeschaut und möchte dir ein paar Tipps geben...
Dein Code ...
if(x.hasPermission("cfc.name.grey")){
// x ist der Player
e.setCancelled(true);Bukkit.broadcastMessage((String)("\u00a77 "+ x.getName()+"\u00a7b -> \u00a7e"+ e.getMessage()+" "));}
}
... ist relativ unsauber. Aber wenn das dein erstes Plugin ist möchte ich dir helfen:
1. benutze nicht für jede Farbe eine Abfrage, sondern mache ein
switch/case statement if/else statement. Somit hast du keine Probleme mehr das alles mehrmals gesendet wird wenn man alle Rechte hat.
2. Benutze die richtigen Events. In diesem Falle wäre das AsyncPlayerChatEvent. Dieses hat nämlich auch die Funktion setFormat(). (Also das was du brauchst.)
Hier mal ein Beispielcode(ohne Switch/Case) damit du verstehst was ich mit dem Event meine:
@EventHandler
public void onChat(AsyncPlayerChatEvent e) {
Player p = e.getPlayer();
if (p.isOp()) {
e.setFormat(ChatColor.GRAY + "[" + ChatColor.RED + "Owner" + ChatColor.GRAY + "] " + "%s"
+ ChatColor.DARK_GRAY + " >> " + ChatColor.RESET + "%s");
} else {
e.setFormat(ChatColor.GRAY + "[" + ChatColor.BLUE + "Member" + ChatColor.GRAY + "] " + "%s"
+ ChatColor.DARK_GRAY + " >> " + ChatColor.RESET + "%s");
}
// Falls du Sound haben willst:
// Nicht wundern, ich mache mit dem p nichts, benutze das Event hier nur als Trigger
for(Player player : Bukkit.getOnlinePlayers()){
player.playSound(player.getLocation(), Sound.FIREWORK_BLAST, 10, 1);
}
}
3. wie du villeicht gesehen hast gibt es die Klasse ChatColor. Damit kannst du \u00a77 vermeiden und dein Code ist lesbarer.
Danke fürs lesen
jens1o
Schön das du mal deine ersten Ergebnisse offen stellst, so kann man dir helfen.
Edit:
Switch -> if/else