• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Chat-API RGB

CubBossa

Schafhirte
Registriert
17 Juli 2015
Beiträge
125
Diamanten
369
Minecraft
CubBossa
Hallöchen :D
seit der 1.16 gibt es ja RGB support. Einer unserer Ränge hat den Prefix "&#123456Beispielrang &f". Er wird überall super angezeigt, außer in meiner eigenen Programmierung.
Ich mache einfach
Java:
p.sendMessage(new TextComponent("Ich bin eine Beispielmessage " + p.getDisplayName()));
Nach aller Theorie müsste er ja jetzt einen bunten Prefix haben, bei allen herkömmlichen Prefixen mit &1-f codes funktioniert es ja super. Nur wird der Hexacode eben einfach weiß angezeigt. Ich weiß, dass man im Code normal mit Chat.of("#123456") + "Text" einfärbt. Aber wie könnte ich das hier praktizieren, das ist ja nicht so leicht auf eine custom message anwendbar. Gibt es da einfach ne Methode, die Messages richtig einfärbt, wie translateAlternateColorcodes() nur für Hexa?
Danke schonmal für jede Hilfe! <3
Grüße, CubBossa
 

CubBossa

Schafhirte
Registriert
17 Juli 2015
Beiträge
125
Diamanten
369
Minecraft
CubBossa
aber das können die placeholder und tablist plugins und so nicht verwenden. Das ist bisschen das problem, die zwei formate die btlp und luckperms, als ich das letzte mal geschaut habe, unterstützt haben sind und &#000000. Aber die formatiert mein code nicht irgendwie
 

Avankziar

Schafhirte
Registriert
12 Februar 2018
Beiträge
135
Alter
33
Diamanten
324
Minecraft
Avankziar
Wenn du unbedingt Hex-Color brauchst, kann ich dir meine Implementation zeigen.
=> https://github.com/Avankziar/BHPTW/.../avankziar/spigot/btm/assistance/ChatApi.java

Dann einfach bei dir das aufrufen:
Code:
p.sendMessage(ChatApi.tl("&#AAFFAAIch bin eine Beispielmessage " + p.getDisplayName()));
oder
p.sendMessage(ChatApi.tctl("&#AAFFAAIch bin eine Beispielmessage " + p.getDisplayName()));
Wenn es im Bungeebereich ist.
Für Click und HoverEvents kannst du die auch nutzten, so nebenbei^^
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Solang du nicht wert auf Spigot legst):

Paper wird in den nächsten Wochen Adventure implementieren (PR hier & hier). Damit gibt es dann unter anderem RGB und es ist möglich, TextComponents für alle Anzeigen zu nutzen (Bossbar, Tablist, Scoreboard etc.). Zusammen mit dem zugehörigen MiniMessage ist es dann wirklich ganz einfach möglich, RGB-Support und sämtliche andere Components (Translation, Hover etc.) zu nutzen.

Aktuell ist der PR noch offen, aber ich gehe davon aus das der bald gemerged wird. Dann kannst du die (furchtbare) Formatierung der Bungee-Chat-API sparen und musst nicht auf externe Libraries zurückgreifen. Und der farbige Text wird dann auch überall angezeigt - Tablist, Scoreboard, Chatnachrichten, etc.
Ansonsten kannst du auch einfach MiniMessage alleine als Library nutzen.
 

CubBossa

Schafhirte
Registriert
17 Juli 2015
Beiträge
125
Diamanten
369
Minecraft
CubBossa
Ich hab nochmal bisschen nachgeforscht und bemerkt (sorry, hätte ich gleich drauf kommen sollen), dass es ein reines Bungeecord Problem ist bei mir. Mit googlen komme ich irgendwie überhaupt nicht voran, bekomme nur Plugins vorgeschlagen, die jetzt RGB support haben. Aber wenn ich in Bungeecord Klassen ChatColor.of(new Color(1,2,3)) zb verwende, färbt er dann in der Minecraft Vanillafarbe mit dem farbcode, der in der letzten HexaCode Stelle steht.
Also new Color(192, 83, 0) => #c05300 => letzter Char 0 => Farbe: schwarz.
Statt nem Farbverlauf erhalte ich also das angehängte Bild. Ist Waterfall gar nicht im Stande zu RGB und ich muss über Message Channel an Paper senden?D: Oder übersehe ich irgendwas?
Liebe Grüße

Zum Anhang: Ich habe einmal die vom Algorithmus erzeugten HexaCodes im Chat mit &#c05300| usw eingegeben (Verwende multichat), um zu zeigen, dass es kein Problem an den Hexacodes ist. Dann habe ich meinen Testcommand ausgeführt und statt schönem Farbverlauf kommt eben dieser merkwürdige Verlauf aus Vanilla Farben, weil er nur die letzte Stelle des HexaCodes interpretiert
Java:
        for(short i = 1; i <= 64; i++) {
            tc.addExtra(ChatColor.of(levelManager.getColor(i)) + "|");
        }
 

Anhänge

  • 2020-12-15_09.07.57.png
    2020-12-15_09.07.57.png
    8,5 KB · Aufrufe: 283

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
ich geh mal stark davon aus, dass du diese Farben nicht direkt mit einem String verketten kannst/solltest. Sowohl Adventure als auch die BungeeCord Chat API bieten die Möglichkeit, einen TextComponent (o.ä. Begriff) zu erstellen und dem eine Farbe zuzuweisen.
 

EinDev

Minecrafter
Registriert
22 März 2016
Beiträge
23
Diamanten
112
Hast du mal z.B. ChatColor.of("#c05300") versucht? Damit sollte es eigentlich funktionieren (laut dem neuesten Quellcode von BungeeCord)
ich geh mal stark davon aus, dass du diese Farben nicht direkt mit einem String verketten kannst/solltest.
Würde ich nicht sagen, die Color codes werden intern übersetzt in z.B. "§x§c§0§5§3§0§0", also genauso wie die regulären Color Codes. Du bekommst genau so ein ChatColor-Objekt zurück wie mit z.B. ChatColor.BLUE
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
die Color codes werden intern übersetzt in z.B. "§x§c§0§5§3§0§0", also genauso wie die regulären Color Codes.
"intern" bedeutet in diesem Fall Spigot, weil das von Mojang so nicht vorhergesehen ist. Letztendlich wird alles in Components geparst und als JSON-Objekt an den Spieler gesendet, dabei ist der Hack von Spigot nur ein Zwischenschritt, der - wie du siehst - eher schlecht als recht funktioniert.
 
Oben