InteractiveChat icon indicating copy to clipboard operation
InteractiveChat copied to clipboard

Asynchronous event triggered synchronously

Open leir4iks opened this issue 3 months ago • 3 comments

Hello! I've discovered an issue with your plugin when running on Folia. The PlayerQuitEvent on Folia is executed synchronously on the main server thread. However, your custom ICPlayerQuitEvent is required to be handled asynchronously. This causes the following error:

java.lang.IllegalStateException: ICPlayerQuitEvent may only be triggered asynchronously.
        at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:40) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[folia-api-1.21.8-R0.1-SNAPSHOT.jar:?]
        at InteractiveChat-4.3.2.0 (1).jar/com.loohp.interactivechat.objectholders.ICPlayerFactory$1.onLeave(ICPlayerFactory.java:100) ~[InteractiveChat-4.3.2.0 (1).jar:?]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[folia-api-1.21.8-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:71) ~[folia-api-1.21.8-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[folia-api-1.21.8-R0.1-SNAPSHOT.jar:?]
        at net.minecraft.server.players.PlayerList.remove(PlayerList.java:605) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at net.minecraft.server.players.PlayerList.remove(PlayerList.java:592) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.removePlayerFromWorld(ServerGamePacketListenerImpl.java:2245) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:2221) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at net.minecraft.network.Connection.handleDisconnection(Connection.java:924) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at io.papermc.paper.threadedregions.RegionizedWorldData.tickConnections(RegionizedWorldData.java:509) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1850) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1668) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:407) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:418) ~[folia-1.21.8.jar:1.21.8-5-7a1c5c7]
        at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:546) ~[concurrentutil-0.0.3.jar:?]
        at java.base/java.lang.Thread.run(Thread.java:1570) ~[?:?]

leir4iks avatar Oct 01 '25 15:10 leir4iks