• 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!

Problem mit den ChatComponent API

SchnellfeuerXD

Kuhfänger
Registriert
8 Februar 2020
Beiträge
56
Diamanten
300
Hallo ich will eine normale ChatComponent API message senden do im chat erscheint so eine rießen nachrit kann mir jemand helfen wie ich das weg bekomm?

Die Nachricht:

Code:
TextComponent{text=Hier Klicken!.
BaseComponent(color=, bold=null, italic=null, underliened=null,
strikethrough=nulll, obsusacted=null, insertion=null, extra=null,
clickEvent=ClickEvent(action=OPEN_URL, value=
https://youtube.de hoverEvent=HoverEvent(action=Show_Text,
value=[TextComponen{text=das ist ein url test, 
BaseComponent(color=, bold=null, italic=null, underliened=null,
strikethrough=nulll, obsusacted=null, insertion=null, extra=null,
hoverEvent=null)}]))}

Der Code:

Code:
net.md_5.bungee.api.chat.TextComponent message = new net.md_5.bungee.api.chat.TextComponent("Hier Klicken!");
                message.setClickEvent(new net.md_5.bungee.api.chat.ClickEvent(Action.OPEN_URL, "http://grafplaiz.de/forum/forumdisplay.php?fid=12"));
                message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Hier kommst du zu unseren regeln!").create()));
                message.setColor(net.md_5.bungee.api.ChatColor.WHITE);
                
                player.sendTitle(ChatColor.GREEN + "Regeln akzeptiert!", "", 1*20, 3*20, 0*20);
                player.getWorld().playSound(loc, Sound.BLOCK_BEACON_ACTIVATE, 8f, 3.7f);
                player.sendMessage("§8[§2RegelWerk§8] §f Du kannst dir Regeln auf unserer Website nachlesen!" + (message));

Die expliziete Zeile:

Code:
player.sendMessage("§8[§2RegelWerk§8] §f Du kannst dir Regeln auf unserer Website nachlesen!" + (message));

LG SchnellfeuerXD
 

SchnellfeuerXD

Kuhfänger
Registriert
8 Februar 2020
Beiträge
56
Diamanten
300
Du kannst nicht einen normalen String mit BaseComponents konkatenieren. Daraus wird sonst ein String. Für BaseComponents ist die Methode Player.Spigot#sendMessage da.

Danke aber dann schaffe ich es irgendwie nich den rest des textes in
Code:
player.spigot().sendMessage(message);

Wenn ich "" benutze dann bekomme ich eine fehler meldung.
 

JOO200

Braumeister
Registriert
18 Dezember 2016
Beiträge
442
Diamanten
228
Legacy bedeutet soviel wie "alt" (teilweise auch veraltet). Im Grunde genommen bietet die ChatComponent-API schon alles, was man für schicke Nachrichten braucht.

Ich empfehle speziell den ComponentBuilder, damit geht das erstellen auch komplexerer Nachrichten relativ einfach.

Java:
player.spigot().sendMessage(
    new ComponentBuilder("Dieser Text ist nicht anklickbar. ").color(ChatColor.RED)
    .append("Dieser aber schon. ")
        .event(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://google.com"))
        .color(ChatColor.GREEN)
    .append("Und hier noch etwas Text mit einem Hover Effekt")
        .event((ClickEvent)null) // Klickbaren Text entfernen
        .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Hovertext").color(ChatColor.GRAY).create()))
        .color(ChatColor.PURPLE).craete());
 

SchnellfeuerXD

Kuhfänger
Registriert
8 Februar 2020
Beiträge
56
Diamanten
300
Legacy bedeutet soviel wie "alt" (teilweise auch veraltet). Im Grunde genommen bietet die ChatComponent-API schon alles, was man für schicke Nachrichten braucht.

Ich empfehle speziell den ComponentBuilder, damit geht das erstellen auch komplexerer Nachrichten relativ einfach.

Java:
player.spigot().sendMessage(
    new ComponentBuilder("Dieser Text ist nicht anklickbar. ").color(ChatColor.RED)
    .append("Dieser aber schon. ")
        .event(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://google.com"))
        .color(ChatColor.GREEN)
    .append("Und hier noch etwas Text mit einem Hover Effekt")
        .event((ClickEvent)null) // Klickbaren Text entfernen
        .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Hovertext").color(ChatColor.GRAY).create()))
        .color(ChatColor.PURPLE).craete());

OK vielen Dank!
 

SchnellfeuerXD

Kuhfänger
Registriert
8 Februar 2020
Beiträge
56
Diamanten
300
Legacy bedeutet soviel wie "alt" (teilweise auch veraltet). Im Grunde genommen bietet die ChatComponent-API schon alles, was man für schicke Nachrichten braucht.

Ich empfehle speziell den ComponentBuilder, damit geht das erstellen auch komplexerer Nachrichten relativ einfach.

Java:
player.spigot().sendMessage(
    new ComponentBuilder("Dieser Text ist nicht anklickbar. ").color(ChatColor.RED)
    .append("Dieser aber schon. ")
        .event(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://google.com"))
        .color(ChatColor.GREEN)
    .append("Und hier noch etwas Text mit einem Hover Effekt")
        .event((ClickEvent)null) // Klickbaren Text entfernen
        .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Hovertext").color(ChatColor.GRAY).create()))
        .color(ChatColor.PURPLE).craete());

Und Legacy heißt laut Übersetzung "Erbe" draus kann ich mir schließen da man bein legacy_skull_item den Skin von einem anderern Spieler erben kann und naja den Rest kann man sich dann selbst erklären.
 

TrinityX

Redstoneengineer
Registriert
17 Mai 2020
Beiträge
47
Alter
23
Diamanten
337
Minecraft
NichtTrinity
Also wenn dein Plugin auch auf älteren Versionen von Minecraft funktionieren (backwards compatibility) soll, dann solltest du das Legacy Item verwenden bzw. auch in Sachen Methoden vorher prüfen ob diese erst mit der neueren API Version dazu kamen.
Falls dein Plugin aber nur für die neueren Versionen gedacht ist, dann solltest du von den veralteten Sachen Abstand halten, da diese irgendwann vollständig entfernt werden.
 
Oben