cleaned up the code
This commit is contained in:
		| @@ -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<Conversation> 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<String> 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<Conversation> 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<String> 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)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user