Hopefully fixed sending one plugin message per player online on the server the plugin message originated from

This commit is contained in:
Teriuihi 2022-09-18 02:22:11 +02:00
parent 54ee7dab93
commit b0d84cf5e4

View File

@ -129,6 +129,9 @@ public class EventListener {
return;
}
if (!isValid(channel.toLowerCase(), data))
return;
if (Config.DEBUG)
Logger.info("Plugin message channel: [%]", channel.toLowerCase());
@ -139,6 +142,23 @@ public class EventListener {
}
}
private final HashMap<String, Long> validMap = new HashMap<>();
private synchronized boolean isValid(String channel, String data) {
String key = channel + data;
long currentTime = new Date().getTime();
if (validMap.containsKey(key)) {
Long time = validMap.get(key);
if (time < (currentTime - 1000)) {
validMap.remove(key);
return true;
}
return false;
} else {
validMap.put(key, currentTime);
return true;
}
}
private void tryLock(ChannelIdentifier identifier, HashSet<Lock> lockSet, String data, ServerConnection serverConnection) {
ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF("try-lock-result");