From d69089a0ebe13d7123a35923f89205dbe5be8515 Mon Sep 17 00:00:00 2001 From: lars Date: Sun, 6 Oct 2024 12:32:20 +0200 Subject: [PATCH] cleaned up the code --- .../privateMessage/PrivateMessage.java | 83 ++++++------------- 1 file changed, 25 insertions(+), 58 deletions(-) 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 407019e..205b977 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 @@ -34,33 +34,23 @@ public class PrivateMessage extends Appliance { if(this.replyMapping.get(sender) == null || this.replyMapping.get(sender).isEmpty()) throw new ApplianceCommand.Error("Du führst aktuell keine Konversation."); - Component privatePrefix = Component.text("[Privat] ", NamedTextColor.LIGHT_PURPLE); - ChatMessages chatMessages = Main.instance().getAppliance(ChatMessages.class); Conversation youngestEntry = this.replyMapping.get(sender).stream() .max(Comparator.comparingLong(o -> o.lastSet)) .orElse(this.replyMapping.get(sender).getLast()); - String youngestTargetName; - if(Bukkit.getPlayer(youngestEntry.target()) == null) { - youngestTargetName = Bukkit.getOfflinePlayer(youngestEntry.target()).getName(); - } else { - youngestTargetName = Objects.requireNonNull(Bukkit.getPlayer(youngestEntry.target())).getName(); - } + if(message.isBlank()) { + Component currentTargetComponent = Component.text("niemandem."); + Player currentTargetPlayer = Bukkit.getPlayer(youngestEntry.target()); + if(currentTargetPlayer != null) { + currentTargetComponent = Main.instance().getAppliance(ChatMessages.class).getReportablePlayerName(currentTargetPlayer); + } - - if(message.isBlank() && youngestTargetName != null) { sender.sendMessage( privatePrefix .append(Component.text("Du schreibst aktuell mit ", NamedTextColor.GRAY)) - .append(chatMessages.getReportablePlayerName(sender)) - ); - return; - } else if(message.isBlank()) { - sender.sendMessage( - privatePrefix - .append(Component.text("Du schreibst aktuell mit niemandem.", NamedTextColor.GRAY)) + .append(currentTargetComponent) ); return; } @@ -74,30 +64,6 @@ public class PrivateMessage extends Appliance { return; } - List oldConversations = this.replyMapping.get(sender).stream() - .filter(conversation -> conversation.lastSet < System.currentTimeMillis() - (targetChangeTimeoutSeconds*1000)) - .toList(); - - Conversation youngestOldConversation = null; - if(!oldConversations.isEmpty()) { - youngestOldConversation = oldConversations.stream() - .max(Comparator.comparingLong(o -> o.lastSet)) - .orElse(oldConversations.getLast()); - this.replyMapping.get(sender).removeAll(oldConversations); - } - - List playerNames = this.replyMapping.get(sender).stream() - .map(conversation -> { - if(Bukkit.getPlayer(conversation.target()) != null) { - return Objects.requireNonNull(Bukkit.getPlayer(conversation.target())).getName(); - } else { - return Bukkit.getOfflinePlayer(conversation.target()).getName(); - } - }) - .distinct() - .toList(); - - sender.sendMessage(""); sender.sendMessage( Component.text() @@ -107,25 +73,26 @@ public class PrivateMessage extends Appliance { .append(Component.text(" Sekunden geändert. Wer soll deine Nachricht bekommen? ", NamedTextColor.RED)) ); + List oldConversations = this.replyMapping.get(sender).stream() + .filter(conversation -> conversation.lastSet < System.currentTimeMillis() - (targetChangeTimeoutSeconds*1000)) + .toList(); + + Conversation youngestOldConversation; + if(!oldConversations.isEmpty()) { + youngestOldConversation = oldConversations.stream() + .max(Comparator.comparingLong(o -> o.lastSet)) + .orElse(oldConversations.getLast()); + this.replyMapping.get(sender).removeAll(oldConversations); + this.replyMapping.get(sender).add(youngestOldConversation); + } + + List playerNames = this.replyMapping.get(sender).stream() + .map(conversation -> Bukkit.getOfflinePlayer(conversation.target()).getName()) + .distinct() + .toList(); + final Component[] finalComponent = {Component.text("")}; - String firstTargetName = null; - if(youngestOldConversation != null && Bukkit.getPlayer(youngestOldConversation.target()) == null) { - firstTargetName = Bukkit.getOfflinePlayer(youngestOldConversation.target()).getName(); - } else if(youngestOldConversation != null){ - firstTargetName = Objects.requireNonNull(Bukkit.getPlayer(youngestOldConversation.target())).getName(); - } - - if(firstTargetName != null && !playerNames.contains(firstTargetName)) { - finalComponent[0] = finalComponent[0].append( - Component.text("[") - .append(Component.text(firstTargetName, NamedTextColor.GOLD)) - .append(Component.text("]")) - .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("[") .append(Component.text(playerName, NamedTextColor.GOLD))