replaced replyMapping.get(sender) with variable replyList
This commit is contained in:
parent
985b36ddc8
commit
8462e43e89
@ -29,20 +29,20 @@ public class PrivateMessage extends Appliance {
|
|||||||
public void reply(Player sender, String message) {
|
public void reply(Player sender, String message) {
|
||||||
this.replyMapping.computeIfAbsent(sender, player -> new ArrayList<>());
|
this.replyMapping.computeIfAbsent(sender, player -> new ArrayList<>());
|
||||||
|
|
||||||
List<Conversation> tooOldConversations = this.replyMapping.get(sender).stream()
|
List<Conversation> replyList = this.replyMapping.get(sender);
|
||||||
|
|
||||||
|
List<Conversation> tooOldConversations = replyList.stream()
|
||||||
.filter(conversation -> conversation.lastSet < System.currentTimeMillis() - (conversationTimeoutMinutes*60*1000))
|
.filter(conversation -> conversation.lastSet < System.currentTimeMillis() - (conversationTimeoutMinutes*60*1000))
|
||||||
.toList();
|
.toList();
|
||||||
this.replyMapping.get(sender).removeAll(tooOldConversations);
|
replyList.removeAll(tooOldConversations);
|
||||||
|
|
||||||
List<Conversation> replyMap = this.replyMapping.get(sender);
|
if(replyList.isEmpty()) throw new ApplianceCommand.Error("Du führst aktuell keine Konversation.");
|
||||||
|
|
||||||
if(replyMap.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);
|
||||||
|
|
||||||
Conversation youngestEntry = replyMap.stream()
|
Conversation youngestEntry = replyList.stream()
|
||||||
.max(Comparator.comparingLong(o -> o.lastSet))
|
.max(Comparator.comparingLong(o -> o.lastSet))
|
||||||
.orElse(replyMap.getLast());
|
.orElse(replyList.getLast());
|
||||||
|
|
||||||
if(message.isBlank()) {
|
if(message.isBlank()) {
|
||||||
Player currentTargetPlayer = Bukkit.getPlayer(youngestEntry.target());
|
Player currentTargetPlayer = Bukkit.getPlayer(youngestEntry.target());
|
||||||
@ -59,15 +59,15 @@ public class PrivateMessage extends Appliance {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Conversation> oldConversations = replyMap.stream()
|
List<Conversation> oldConversations = replyList.stream()
|
||||||
.filter(conversation -> conversation.lastSet < System.currentTimeMillis() - (targetChangeTimeoutSeconds*1000))
|
.filter(conversation -> conversation.lastSet < System.currentTimeMillis() - (targetChangeTimeoutSeconds*1000))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if(oldConversations.contains(youngestEntry) || replyMap.size() == 1) {
|
if(oldConversations.contains(youngestEntry) || replyList.size() == 1) {
|
||||||
Player target = Bukkit.getPlayer(youngestEntry.target());
|
Player target = Bukkit.getPlayer(youngestEntry.target());
|
||||||
if(target == null) throw new ApplianceCommand.Error("Der Spieler " + Bukkit.getOfflinePlayer(youngestEntry.target()).getName() + " ist nicht mehr verfügbar.");
|
if(target == null) throw new ApplianceCommand.Error("Der Spieler " + Bukkit.getOfflinePlayer(youngestEntry.target()).getName() + " ist nicht mehr verfügbar.");
|
||||||
|
|
||||||
this.replyMapping.get(sender).clear();
|
replyList.clear();
|
||||||
this.sendWhisper(sender, new ResolvedPmUserArguments(target, message));
|
this.sendWhisper(sender, new ResolvedPmUserArguments(target, message));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -88,12 +88,11 @@ public class PrivateMessage extends Appliance {
|
|||||||
Conversation youngestOldConversation = oldConversations.stream()
|
Conversation youngestOldConversation = oldConversations.stream()
|
||||||
.max(Comparator.comparingLong(o -> o.lastSet))
|
.max(Comparator.comparingLong(o -> o.lastSet))
|
||||||
.orElse(oldConversations.getLast());
|
.orElse(oldConversations.getLast());
|
||||||
this.replyMapping.get(sender).removeAll(oldConversations);
|
replyList.removeAll(oldConversations);
|
||||||
this.replyMapping.get(sender).add(youngestOldConversation);
|
replyList.add(youngestOldConversation);
|
||||||
replyMap = this.replyMapping.get(sender);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> playerNames = replyMap.stream()
|
List<String> playerNames = replyList.stream()
|
||||||
.map(conversation -> Bukkit.getOfflinePlayer(conversation.target()).getName())
|
.map(conversation -> Bukkit.getOfflinePlayer(conversation.target()).getName())
|
||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user