Wie kann man abfragen ob ein String eine ChatColor ist(Minecraft)?
Hallo, ich möchte in einer Config eine ChatColor abspeichern, welche per command dort hinein gesetzt wird aber wie weiß ich ob der String, welcher der CommandSender eingegeben hat.
Hat da jemand eine Idee?
Danke.
1 Antwort
Wie man der Dokumentation von Spigot entnehmen kann, ist ChatColor ein enum. Unter anderem hat es also die Methode valueOf(String name).
Heißt, du kannst einfach sowas machen wie:
String colorName = "blue";
ChatColor color = ChatColor.valueOf(colorName.toUpperCase());
Den String colorName kannst du dann irgendwo zwischenspeichern. (Habe den String extra klein geschrieben, um toUpperCase() mit rein zu bringen. Damit hast du etwas mehr Sicherheit als wenn du einfach immer im Kopf behalten müsstest, dass du überall Farben groß schreiben musst.)
Beachte, dass "komplexere" Farben, also Farben mit Unterstrich im Namen, auch im String einen haben müssen. Hast du also einen Input eines Users mit drin, der zum beispiel "dark blue" eingegeben hat, musst du nicht nur toUpperCase() machen, sondern auch replaceAll(" ", "_") o.A.