diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/privateMessage/PrivateMessage.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/privateMessage/PrivateMessage.java index b732f87..f497fec 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/privateMessage/PrivateMessage.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/privateMessage/PrivateMessage.java @@ -8,6 +8,7 @@ import eu.mhsl.craftattack.spawn.appliances.privateMessage.commands.PrivateMessa import eu.mhsl.craftattack.spawn.appliances.privateMessage.commands.PrivateReplyCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; +import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -51,8 +52,10 @@ public class PrivateMessage extends Appliance { return Bukkit.getOfflinePlayer(conversation.target()).getName(); } }) + .distinct() .toList(); + sender.sendMessage(""); sender.sendMessage( Component.text() .append(Component.text("Das Ziel für /r hat sich bei dir in den letzten ")) @@ -60,8 +63,8 @@ public class PrivateMessage extends Appliance { .append(Component.text(" Sekunden geändert. Wer soll deine Nachricht bekommen? ")) ); - - Component newTextComponent = Component.text(""); + + final Component[] finalComponent = {Component.text("")}; String firstTargetName; if(Bukkit.getPlayer(youngestEntry.target()) == null) { @@ -70,24 +73,21 @@ public class PrivateMessage extends Appliance { firstTargetName = Objects.requireNonNull(Bukkit.getPlayer(youngestEntry.target())).getName(); } - if(firstTargetName != null) { - Component nameComponent = Component.text(""); - nameComponent.append(Component.text(firstTargetName, NamedTextColor.LIGHT_PURPLE)); - - newTextComponent - .append(nameComponent.clickEvent(ClickEvent.runCommand("/msg " + firstTargetName + " " + message))); - newTextComponent.append(Component.text(" ")); + if(firstTargetName != null && !playerNames.contains(firstTargetName)) { + finalComponent[0] = finalComponent[0].append(Component.text(firstTargetName, NamedTextColor.GOLD) + .clickEvent(ClickEvent.runCommand("/msg " + firstTargetName + " " + message)) + .hoverEvent(HoverEvent.showText(Component.text("Klicke, um diesem Spieler zu schreiben.").color(NamedTextColor.GOLD)))) + .append(Component.text(" ")); } + playerNames.forEach(playerName -> finalComponent[0] = finalComponent[0].append(Component.text(playerName, NamedTextColor.GOLD) + .clickEvent(ClickEvent.runCommand("/msg " + playerName + " " + message)) + .hoverEvent(HoverEvent.showText(Component.text("Klicke, um diesem Spieler zu schreiben.").color(NamedTextColor.GOLD)))) + .append(Component.text(" "))); - playerNames.forEach(playerName -> { - Component nameComponent = Component.text(playerName, NamedTextColor.LIGHT_PURPLE); - newTextComponent - .append(nameComponent.clickEvent(ClickEvent.runCommand("/msg " + playerName + " " + message))); - newTextComponent.append(Component.text(" ")); - }); - - sender.sendMessage(newTextComponent); + sender.sendMessage(""); + sender.sendMessage(finalComponent[0]); + sender.sendMessage(""); }