finished logic for reply command

This commit is contained in:
Lars Neuhaus 2024-10-02 22:27:16 +02:00
parent f96356b620
commit 471cd8e610

View File

@ -8,6 +8,7 @@ import eu.mhsl.craftattack.spawn.appliances.privateMessage.commands.PrivateMessa
import eu.mhsl.craftattack.spawn.appliances.privateMessage.commands.PrivateReplyCommand; import eu.mhsl.craftattack.spawn.appliances.privateMessage.commands.PrivateReplyCommand;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -51,8 +52,10 @@ public class PrivateMessage extends Appliance {
return Bukkit.getOfflinePlayer(conversation.target()).getName(); return Bukkit.getOfflinePlayer(conversation.target()).getName();
} }
}) })
.distinct()
.toList(); .toList();
sender.sendMessage("");
sender.sendMessage( sender.sendMessage(
Component.text() Component.text()
.append(Component.text("Das Ziel für /r hat sich bei dir in den letzten ")) .append(Component.text("Das Ziel für /r hat sich bei dir in den letzten "))
@ -61,7 +64,7 @@ public class PrivateMessage extends Appliance {
); );
Component newTextComponent = Component.text(""); final Component[] finalComponent = {Component.text("")};
String firstTargetName; String firstTargetName;
if(Bukkit.getPlayer(youngestEntry.target()) == null) { if(Bukkit.getPlayer(youngestEntry.target()) == null) {
@ -70,24 +73,21 @@ public class PrivateMessage extends Appliance {
firstTargetName = Objects.requireNonNull(Bukkit.getPlayer(youngestEntry.target())).getName(); firstTargetName = Objects.requireNonNull(Bukkit.getPlayer(youngestEntry.target())).getName();
} }
if(firstTargetName != null) { if(firstTargetName != null && !playerNames.contains(firstTargetName)) {
Component nameComponent = Component.text(""); finalComponent[0] = finalComponent[0].append(Component.text(firstTargetName, NamedTextColor.GOLD)
nameComponent.append(Component.text(firstTargetName, NamedTextColor.LIGHT_PURPLE)); .clickEvent(ClickEvent.runCommand("/msg " + firstTargetName + " " + message))
.hoverEvent(HoverEvent.showText(Component.text("Klicke, um diesem Spieler zu schreiben.").color(NamedTextColor.GOLD))))
newTextComponent .append(Component.text(" "));
.append(nameComponent.clickEvent(ClickEvent.runCommand("/msg " + firstTargetName + " " + message)));
newTextComponent.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 -> { sender.sendMessage("");
Component nameComponent = Component.text(playerName, NamedTextColor.LIGHT_PURPLE); sender.sendMessage(finalComponent[0]);
newTextComponent sender.sendMessage("");
.append(nameComponent.clickEvent(ClickEvent.runCommand("/msg " + playerName + " " + message)));
newTextComponent.append(Component.text(" "));
});
sender.sendMessage(newTextComponent);
} }