cleaned up the code
This commit is contained in:
parent
497c5ad749
commit
d69089a0eb
@ -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.");
|
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);
|
Component privatePrefix = Component.text("[Privat] ", NamedTextColor.LIGHT_PURPLE);
|
||||||
ChatMessages chatMessages = Main.instance().getAppliance(ChatMessages.class);
|
|
||||||
|
|
||||||
Conversation youngestEntry = this.replyMapping.get(sender).stream()
|
Conversation youngestEntry = this.replyMapping.get(sender).stream()
|
||||||
.max(Comparator.comparingLong(o -> o.lastSet))
|
.max(Comparator.comparingLong(o -> o.lastSet))
|
||||||
.orElse(this.replyMapping.get(sender).getLast());
|
.orElse(this.replyMapping.get(sender).getLast());
|
||||||
|
|
||||||
String youngestTargetName;
|
if(message.isBlank()) {
|
||||||
if(Bukkit.getPlayer(youngestEntry.target()) == null) {
|
Component currentTargetComponent = Component.text("niemandem.");
|
||||||
youngestTargetName = Bukkit.getOfflinePlayer(youngestEntry.target()).getName();
|
Player currentTargetPlayer = Bukkit.getPlayer(youngestEntry.target());
|
||||||
} else {
|
if(currentTargetPlayer != null) {
|
||||||
youngestTargetName = Objects.requireNonNull(Bukkit.getPlayer(youngestEntry.target())).getName();
|
currentTargetComponent = Main.instance().getAppliance(ChatMessages.class).getReportablePlayerName(currentTargetPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(message.isBlank() && youngestTargetName != null) {
|
|
||||||
sender.sendMessage(
|
sender.sendMessage(
|
||||||
privatePrefix
|
privatePrefix
|
||||||
.append(Component.text("Du schreibst aktuell mit ", NamedTextColor.GRAY))
|
.append(Component.text("Du schreibst aktuell mit ", NamedTextColor.GRAY))
|
||||||
.append(chatMessages.getReportablePlayerName(sender))
|
.append(currentTargetComponent)
|
||||||
);
|
|
||||||
return;
|
|
||||||
} else if(message.isBlank()) {
|
|
||||||
sender.sendMessage(
|
|
||||||
privatePrefix
|
|
||||||
.append(Component.text("Du schreibst aktuell mit niemandem.", NamedTextColor.GRAY))
|
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -74,30 +64,6 @@ public class PrivateMessage extends Appliance {
|
|||||||
return;
|
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("");
|
||||||
sender.sendMessage(
|
sender.sendMessage(
|
||||||
Component.text()
|
Component.text()
|
||||||
@ -107,25 +73,26 @@ public class PrivateMessage extends Appliance {
|
|||||||
.append(Component.text(" Sekunden geändert. Wer soll deine Nachricht bekommen? ", NamedTextColor.RED))
|
.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("")};
|
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(
|
playerNames.forEach(playerName -> finalComponent[0] = finalComponent[0].append(
|
||||||
Component.text("[")
|
Component.text("[")
|
||||||
.append(Component.text(playerName, NamedTextColor.GOLD))
|
.append(Component.text(playerName, NamedTextColor.GOLD))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user