Fix TinyProtocol spurious ConcurrentModificationExceptions

This commit is contained in:
Lixfel
2024-08-13 19:37:37 +02:00
parent 805b571de6
commit 8bdb2bad14

View File

@@ -36,6 +36,7 @@ import org.bukkit.event.server.PluginDisableEvent;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import java.util.*; import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import java.util.logging.Level; import java.util.logging.Level;
@@ -102,7 +103,7 @@ public class TinyProtocol implements Listener {
} }
public void addFilter(Class<?> packetType, BiFunction<Player, Object, Object> filter) { public void addFilter(Class<?> packetType, BiFunction<Player, Object, Object> filter) {
packetFilters.computeIfAbsent(packetType, c -> Collections.synchronizedList(new ArrayList<>(1))).add(filter); packetFilters.computeIfAbsent(packetType, c -> new CopyOnWriteArrayList<>()).add(filter);
} }
public void removeFilter(Class<?> packetType, BiFunction<Player, Object, Object> filter) { public void removeFilter(Class<?> packetType, BiFunction<Player, Object, Object> filter) {