|
17 | 17 |
|
18 | 18 | package com.comphenix.protocol.async;
|
19 | 19 |
|
20 |
| -import java.util.List; |
21 |
| -import java.util.Set; |
22 |
| -import java.util.concurrent.ConcurrentHashMap; |
23 |
| -import java.util.concurrent.atomic.AtomicInteger; |
24 |
| - |
25 |
| -import org.bukkit.entity.Player; |
26 |
| -import org.bukkit.plugin.Plugin; |
27 |
| - |
28 | 20 | import com.comphenix.protocol.AsynchronousManager;
|
29 | 21 | import com.comphenix.protocol.PacketStream;
|
30 | 22 | import com.comphenix.protocol.PacketType;
|
|
37 | 29 | import com.comphenix.protocol.injector.collection.OutboundPacketListenerSet;
|
38 | 30 | import com.comphenix.protocol.scheduler.ProtocolScheduler;
|
39 | 31 | import com.google.common.base.Objects;
|
| 32 | +import com.google.common.collect.ImmutableList; |
40 | 33 | import com.google.common.collect.ImmutableSet;
|
41 | 34 | import com.google.common.collect.Iterables;
|
| 35 | +import org.bukkit.entity.Player; |
| 36 | +import org.bukkit.plugin.Plugin; |
| 37 | + |
| 38 | +import java.util.List; |
| 39 | +import java.util.Set; |
| 40 | +import java.util.concurrent.ConcurrentHashMap; |
| 41 | +import java.util.concurrent.atomic.AtomicInteger; |
42 | 42 |
|
43 | 43 | /**
|
44 | 44 | * Represents a filter manager for asynchronous packets.
|
@@ -284,9 +284,9 @@ public void unregisterAsyncHandlers(Plugin plugin) {
|
284 | 284 | }
|
285 | 285 |
|
286 | 286 | private void unregisterAsyncHandlers(PacketProcessingQueue processingQueue, Plugin plugin) {
|
287 |
| - |
| 287 | + |
288 | 288 | // Iterate through every packet listener
|
289 |
| - for (AsyncListenerHandler listener : processingQueue.values()) { |
| 289 | + for (AsyncListenerHandler listener : ImmutableList.copyOf(processingQueue.values())) { |
290 | 290 | // Remove the listener
|
291 | 291 | if (Objects.equal(listener.getPlugin(), plugin)) {
|
292 | 292 | unregisterAsyncHandler(listener);
|
|
0 commit comments