Spigot Plugin, Spieler im Chat markieren?
Hi, Ich habe eine Frage zum Plugin programmieren mit der Spigot Bibliothek. Undzwar würde ich gerne wissen wie ich es machen kann, dass wenn ich einen Spielernamen (z.B.Minecrafter2001) in den Chat schreibe, dass der Name dann beim jeweiligen Spieler markiert/farbig im Chat steht. Ich habe bereits ein wenig rumprobiert mit msg.contains(spielername);, e.setCancelled(true);, und einigen weiteren Dingen, jedoch stoße ich immer wieder auf Fehler wie z.B. dass nach dem markierten die Nachricht nicht wie davor ist (Farbcodes etc.) und vieles weiteres. Deshalb wäre es nett, wenn jemand vllt. kurz beschreiben könnte wie und mit welchen Methoden, Schleifen etc. ich das am Besten machen. Danke schonmal für die Hilfe. Spigot-Version: 1.9.2, IDE: Eclipse Mars.2
2 Antworten
chatEvent.setChatMessage(chatEvent.getChatMessage().replace(name,"§4"+name));
name: Spielername
§4: Colorcode
chatEvent: Instanz von AsyncPlayerChatEvent
Wenn die Nachricht tatsächlich nur beim jeweiligen Spieler farbig sein soll, schaust du mal bei der Spigothilfe vorbei (die solltest du eigentlich kennen: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/player/AsyncPlayerChatEvent.html ) und wirst die Methode getRecipients() vorfinden, die alle Empfänger zurückgibt. Da schmeißt du den markierten Spieler einfach raus und schickst ihm eine gesonderte Nachricht. Beachte, dass das so nur funktioniert, wenn in einer Nachricht auch nur ein Spieler markiert wird (es ist aber nicht zu schwer, das auch für mehrere Spieler auf einmal zu schreiben).
Hast du es schon geschafft es zu Programmieren ? Würde mich freuen wenn du es uns zur Verfügung stellen würdest das würde uns sehr weiter helfen !
Skype: elekco1