Skip to content

Commit 663ab9c

Browse files
committed
Only keep messages for 3 seconds so old unmatcjed messages doesn't mess things up
1 parent 686d2d2 commit 663ab9c

File tree

3 files changed

+17
-12
lines changed

3 files changed

+17
-12
lines changed

src/com/loohp/interactivechat/Listeners/Events.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,10 @@ public void checkChat(AsyncPlayerChatEvent event) {
113113

114114
event.setMessage(MessageUtils.preprocessMessage(message, InteractiveChat.placeholderList, InteractiveChat.aliasesMapping));
115115

116-
InteractiveChat.messages.put(ChatColorUtils.stripColor(ChatColorUtils.translateAlternateColorCodes('&', event.getMessage())), event.getPlayer().getUniqueId());
116+
String mapKey = ChatColorUtils.stripColor(ChatColorUtils.translateAlternateColorCodes('&', event.getMessage()));
117+
InteractiveChat.messages.put(mapKey, event.getPlayer().getUniqueId());
118+
Bukkit.getScheduler().runTaskLater(InteractiveChat.plugin, () -> InteractiveChat.messages.remove(mapKey), 60);
119+
117120
if (InteractiveChat.bungeecordMode) {
118121
try {
119122
BungeeMessageSender.addMessage(ChatColorUtils.stripColor(ChatColorUtils.translateAlternateColorCodes('&', event.getMessage())), event.getPlayer().getUniqueId());
@@ -165,7 +168,10 @@ public void checkChatforChatManagerOrTranslateChatColor(AsyncPlayerChatEvent eve
165168
message = MessageUtils.preprocessMessage(message, InteractiveChat.placeholderList, InteractiveChat.aliasesMapping);
166169
event.setMessage(message);
167170

168-
InteractiveChat.messages.put(ChatColorUtils.stripColor(ChatColorUtils.translateAlternateColorCodes('&', event.getMessage())), player.getUniqueId());
171+
String mapKey = ChatColorUtils.stripColor(ChatColorUtils.translateAlternateColorCodes('&', event.getMessage()));
172+
InteractiveChat.messages.put(mapKey, player.getUniqueId());
173+
Bukkit.getScheduler().runTaskLater(InteractiveChat.plugin, () -> InteractiveChat.messages.remove(mapKey), 60);
174+
169175
if (InteractiveChat.bungeecordMode) {
170176
try {
171177
BungeeMessageSender.addMessage(ChatColorUtils.stripColor(ChatColorUtils.translateAlternateColorCodes('&', event.getMessage())), event.getPlayer().getUniqueId());

src/com/loohp/interactivechat/Modules/SenderFinder.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.loohp.interactivechat.Modules;
22

33
import java.util.HashMap;
4-
import java.util.Map;
54
import java.util.Map.Entry;
65
import java.util.Optional;
76
import java.util.UUID;
@@ -18,8 +17,6 @@
1817

1918
public class SenderFinder {
2019

21-
private static Map<String, UUID> messages = InteractiveChat.messages;
22-
2320
public static Optional<PlayerWrapper> getSender(BaseComponent basecomponent, String messageKey) {
2421
PlayerWrapper keyPlayer = InteractiveChat.keyPlayer.get(messageKey);
2522
if (keyPlayer != null) {
@@ -28,11 +25,12 @@ public static Optional<PlayerWrapper> getSender(BaseComponent basecomponent, Str
2825

2926
String chat = basecomponent.toPlainText();
3027

31-
for (Entry<String, UUID> entry : messages.entrySet()) {
28+
for (Entry<String, UUID> entry : InteractiveChat.messages.entrySet()) {
3229
String msg = entry.getKey();
3330
if (chat.contains(msg)) {
34-
Player player = Bukkit.getPlayer(entry.getValue());
35-
Bukkit.getScheduler().runTaskLaterAsynchronously(InteractiveChat.plugin, () -> messages.remove(entry.getKey()), 5);
31+
UUID uuid = entry.getValue();
32+
Player player = Bukkit.getPlayer(uuid);
33+
Bukkit.getScheduler().runTaskLaterAsynchronously(InteractiveChat.plugin, () -> InteractiveChat.messages.values(), 5);
3634
if (player != null) {
3735
return Optional.of(new PlayerWrapper(player));
3836
}
@@ -45,7 +43,7 @@ public static Optional<PlayerWrapper> getSender(BaseComponent basecomponent, Str
4543

4644
String mostsimular = null;
4745
double currentsim = 0.5;
48-
for (Entry<String, UUID> entry : messages.entrySet()) {
46+
for (Entry<String, UUID> entry : InteractiveChat.messages.entrySet()) {
4947
String msg = entry.getKey();
5048
double sim = CustomStringUtils.similarity(chat, msg);
5149
if (sim > currentsim) {
@@ -55,9 +53,9 @@ public static Optional<PlayerWrapper> getSender(BaseComponent basecomponent, Str
5553
}
5654

5755
if (mostsimular != null) {
58-
UUID uuid = messages.get(mostsimular);
56+
UUID uuid = InteractiveChat.messages.get(mostsimular);
5957
String finalmostsimular = mostsimular;
60-
Bukkit.getScheduler().runTaskLaterAsynchronously(InteractiveChat.plugin, () -> messages.remove(finalmostsimular), 5);
58+
Bukkit.getScheduler().runTaskLaterAsynchronously(InteractiveChat.plugin, () -> InteractiveChat.messages.remove(finalmostsimular), 5);
6159
Player player = Bukkit.getPlayer(uuid);
6260
if (player != null) {
6361
return Optional.of(new PlayerWrapper(player));

src/com/loohp/interactivechat/PluginMessaging/BungeeMessageListener.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public void onPluginMessageReceived(String channel, Player pluginMessagingPlayer
129129
player.getEquipment().setChestplate(equipment[1]);
130130
player.getEquipment().setLeggings(equipment[2]);
131131
player.getEquipment().setBoots(equipment[3]);
132-
if (size < 6) {
132+
if (InteractiveChat.version.isOld()) {
133133
player.getEquipment().setItemInHand(equipment[4]);
134134
} else {
135135
player.getEquipment().setItemInMainHand(equipment[4]);
@@ -170,6 +170,7 @@ public void onPluginMessageReceived(String channel, Player pluginMessagingPlayer
170170
break;
171171
}
172172
InteractiveChat.messages.put(message, uuid3);
173+
Bukkit.getScheduler().runTaskLater(InteractiveChat.plugin, () -> InteractiveChat.messages.remove(message), 60);
173174
break;
174175
case 0x07:
175176
UUID uuid4 = DataTypeIO.readUUID(input);

0 commit comments

Comments
 (0)