GeyserMC / Floodgate

Hybrid mode plugin to allow for connections from Geyser to join online mode servers.
https://geysermc.org
MIT License
564 stars 168 forks source link

Loader constraint violation when using getLinkedPlayer() API method #178

Closed AnttiMK closed 2 weeks ago

AnttiMK commented 3 years ago

When using the Floodgate API, if Geyser and Floodgate are both installed on the proxy, the following exception is thrown whenever getLinkedPlayer() is called:

[19:33:24 WARN]: Error dispatching event PostLoginEvent(player=.Kopo942) to listener com.djrapitops.extension.FloodgateBungeeListener@4b8a0d03
java.lang.LinkageError: loader constraint violation: when resolving interface method 'org.geysermc.floodgate.util.LinkedPlayer org.geysermc.floodgate.api.player.FloodgatePlayer.getLinkedPlayer()' the class loader net.md_5.bungee.api.plugin.PluginClassloader @74db12c2 of the current class, com/djrapitops/extension/FloodgateBungeeListener, and the class loader net.md_5.bungee.api.plugin.PluginClassloader @1286528d for the method's defining class, org/geysermc/floodgate/api/player/FloodgatePlayer, have different Class objects for the type org/geysermc/floodgate/util/LinkedPlayer used in the signature (com.djrapitops.extension.FloodgateBungeeListener is in unnamed module of loader net.md_5.bungee.api.plugin.PluginClassloader @74db12c2, parent loader 'app'; org.geysermc.floodgate.api.player.FloodgatePlayer is in unnamed module of loader net.md_5.bungee.api.plugin.PluginClassloader @1286528d, parent loader 'app')
        at com.djrapitops.extension.FloodgateBungeeListener.onLogin(FloodgateBungeeListener.java:62) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
        at net.md_5.bungee.event.EventHandlerMethod.invoke(EventHandlerMethod.java:19) ~[waterfall-1.17-443.jar:git:Waterfall-Bootstrap:1.17-R0.1-SNAPSHOT:34188b3:443]
        at net.md_5.bungee.event.EventBus.post(EventBus.java:48) ~[waterfall-1.17-443.jar:git:Waterfall-Bootstrap:1.17-R0.1-SNAPSHOT:34188b3:443]
        at net.md_5.bungee.api.plugin.PluginManager.callEvent(PluginManager.java:466) ~[waterfall-1.17-443.jar:git:Waterfall-Bootstrap:1.17-R0.1-SNAPSHOT:34188b3:443]
        at net.md_5.bungee.connection.InitialHandler$6$1.run(InitialHandler.java:549) ~[waterfall-1.17-443.jar:git:Waterfall-Bootstrap:1.17-R0.1-SNAPSHOT:34188b3:443]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[waterfall-1.17-443.jar:git:Waterfall-Bootstrap:1.17-R0.1-SNAPSHOT:34188b3:443]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[waterfall-1.17-443.jar:git:Waterfall-Bootstrap:1.17-R0.1-SNAPSHOT:34188b3:443]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:497) ~[waterfall-1.17-443.jar:git:Waterfall-Bootstrap:1.17-R0.1-SNAPSHOT:34188b3:443]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[waterfall-1.17-443.jar:git:Waterfall-Bootstrap:1.17-R0.1-SNAPSHOT:34188b3:443]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[waterfall-1.17-443.jar:git:Waterfall-Bootstrap:1.17-R0.1-SNAPSHOT:34188b3:443]
        at java.lang.Thread.run(Thread.java:831) [?:?]

As discussed on Discord, this seems to be a known issue. Probably not limited to the LinkedPlayer class, but instead to all classes in the org.geysermc.floodgate.util package.

Chew commented 3 years ago

This should have been fixed with https://github.com/GeyserMC/Geyser/commit/b2619fa7c79e58fea9e05c68a5bd7a9ecc2b5f46, are you not up to date?

Camotoy commented 3 years ago

That commit did not fix that error message. It was ignored as I believe the error belongs in Floodgate. Conversation was had about the issue in #development earlier today.

vijaypondini commented 3 years ago

Is a scheduled fix for this coming soon? Getting tired of seeing the endless console spam at my proxy lol

Tim203 commented 2 years ago

Sorry for the late response. We do plan on fixing this issue in the coming months, but it'll take some time because it's not an easy issue to solve

albertolarahernandez commented 2 years ago

I have the same problem if you need something to testing i can help.

funniray commented 2 years ago

Are there any updates on this?

Camotoy commented 2 years ago

Unfortunately, no. If there are, we will inform here.

ajh123 commented 2 years ago

Problem is still here :(

Simonsator commented 2 years ago

The problem still exists with the most recent version

Tim203 commented 6 months ago

This should be fixed in the upcoming Floodgate 3.0 update. I'll keep this open until we're there.

Tim203 commented 2 weeks ago

I'm going to close this issue to mark progress to Floodgate 3.0. Starting in 3.0 Floodgate will be able to run inside Geyser, meaning that a separate Floodgate plugin is no longer needed for any setup that required both Geyser and Floodgate on the same server. Which also means that this issue will be fixed.