From 4c85f6c319742d01aed134a0c3664a7bae44c9aa Mon Sep 17 00:00:00 2001 From: libraryaddict Date: Sat, 26 Jul 2014 07:27:31 +1200 Subject: [PATCH] Use async packet listener for sounds packets. Prevents async concurrent modification exception. May be replaced later. --- .../libraryaddict/disguise/utilities/PacketsManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/me/libraryaddict/disguise/utilities/PacketsManager.java b/src/me/libraryaddict/disguise/utilities/PacketsManager.java index d3c24db6..f4f31c9a 100644 --- a/src/me/libraryaddict/disguise/utilities/PacketsManager.java +++ b/src/me/libraryaddict/disguise/utilities/PacketsManager.java @@ -41,6 +41,7 @@ import org.bukkit.util.Vector; import com.comphenix.protocol.PacketType; import com.comphenix.protocol.ProtocolLibrary; +import com.comphenix.protocol.async.AsyncListenerHandler; import com.comphenix.protocol.events.ListenerPriority; import com.comphenix.protocol.events.PacketAdapter; import com.comphenix.protocol.events.PacketContainer; @@ -54,6 +55,7 @@ import com.comphenix.protocol.wrappers.WrappedGameProfile; import com.comphenix.protocol.wrappers.WrappedWatchableObject; public class PacketsManager { + private static AsyncListenerHandler asyncSoundsListener; /** * This is a fix for the stupidity that is * "I can't separate the sounds from the sounds the player heard, and the sounds of the entity tracker heard" @@ -1062,9 +1064,10 @@ public class PacketsManager { if (soundsListenerEnabled != enabled) { soundsListenerEnabled = enabled; if (soundsListenerEnabled) { - ProtocolLibrary.getProtocolManager().addPacketListener(soundsListener); + asyncSoundsListener = ProtocolLibrary.getProtocolManager().getAsynchronousManager() + .registerAsyncHandler(soundsListener); } else { - ProtocolLibrary.getProtocolManager().removePacketListener(soundsListener); + ProtocolLibrary.getProtocolManager().getAsynchronousManager().unregisterAsyncHandler(asyncSoundsListener); } } }