Phoenix616 / Snap

Experimental tool to run BungeeCord plugins on Velocity
https://hangar.papermc.io/Phoenix616/Snap
GNU Lesser General Public License v3.0
118 stars 10 forks source link

Can't load 3.x versions of BungeeSafeGuard #30

Closed Glucy-2 closed 2 years ago

Glucy-2 commented 2 years ago

Used Version

build#25

Config

{
    # configurate-hocon
    # The stats/metrics ID of this proxy, ideally the same as in the velocity.toml
    "stats-id" : "8ae1a326-70e1-4034-ae4f-9ba138157405",
    # configurate-hocon
    # Whether to throw exceptions when accessing methods that aren't supported
    # Setting this to false makes them return sensible values but they might not be correct
    "throw-unsupported-exception" : true
}

Environment description

OS: debain 10 Microsoft build OpenJDK 17.0.1+12-LTS

Full Log

[20:40:40] [main/INFO]: Booting up Velocity 3.1.1...
[20:40:40] [main/INFO]: Loading localizations...
[20:40:40] [main/INFO]: Connections will use epoll channels, libdeflate (Linux x86_64) compression, OpenSSL 1.1.x (Linux x86_64) ciphers
[20:40:40] [main/WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!
[20:40:40] [main/INFO]: Loading plugins...
[20:40:40] [main/INFO]: Loaded plugin snap 1.0-SNAPSHOT (build 25) by Phoenix616
[20:40:40] [main/INFO]: Loaded 1 plugins
[20:40:40] [Velocity Async Event Executor - #0/INFO]: Loaded snap.conf
[20:40:40] [Velocity Async Event Executor - #0/WARN]: Could not initialize LibraryLoader (missing dependencies?)
[20:40:40] [Velocity Async Event Executor - #0/WARN]: Error loading plugin BungeeSafeguard
java.lang.reflect.InvocationTargetException: null
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
    at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
    at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
    at net.md_5.bungee.api.plugin.PluginManager.enablePlugin(PluginManager.java:395) ~[?:?]
    at net.md_5.bungee.api.plugin.PluginManager.loadPlugins(PluginManager.java:300) ~[?:?]
    at de.themoep.snap.SnapBungeeAdapter.loadPlugins(SnapBungeeAdapter.java:120) ~[?:?]
    at de.themoep.snap.Snap.onProxyInitialization(Snap.java:63) ~[?:?]
    at de.themoep.snap.Lmbda$1.execute(Unknown Source) ~[?:?]
    at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:47) ~[velocity-3.1.1-98.jar:3.1.1]
    at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:598) ~[velocity-3.1.1-98.jar:3.1.1]
    at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479) ~[velocity-3.1.1-98.jar:3.1.1]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
    at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.NoClassDefFoundError: kotlin/coroutines/Continuation
    at cyou.untitled.bungeesafeguard.BungeeSafeguardImpl.<init>(BungeeSafeguardImpl.kt:21) ~[?:?]
    ... 16 more
Caused by: java.lang.ClassNotFoundException: kotlin.coroutines.Continuation
    at net.md_5.bungee.api.plugin.PluginClassloader.loadClass0(PluginClassloader.java:100) ~[?:?]
    at net.md_5.bungee.api.plugin.PluginClassloader.loadClass(PluginClassloader.java:78) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at cyou.untitled.bungeesafeguard.BungeeSafeguardImpl.<init>(BungeeSafeguardImpl.kt:21) ~[?:?]
    ... 16 more
[20:40:40] [Velocity Async Event Executor - #0/INFO]: Loaded 0 plugins!
[20:40:40] [Netty epoll Boss #0/INFO]: Listening on /[0:0:0:0:0:0:0:0%0]:1536
[20:40:40] [Netty epoll Worker #0/INFO]: Listening for GS4 query on /[0:0:0:0:0:0:0:0%0]:1536
[20:40:40] [main/INFO]: Done (0.76s)!
[20:40:43] [Thread-2/INFO]: Shutting down the proxy...
[20:40:43] [Thread-2/INFO]: Closing endpoint /0.0.0.0:1536

What other programs/plugins are you running?

No

What is happening?

Snap can't load 3.x versions of BungeeSafeGuard and the commands of the plugin don't work. But Snap can load version 2.6 of BungeeSafeGuard. Steps to reproduce:

  1. Install Velocity 3.1.1
  2. Install Snap #25
  3. Install BungeesafeGuard 3.0 or 3.1
  4. Start the server
  5. See the error

What did you expect to happen?

Snap can load 3.x versions of BungeeSafeGuard

Phoenix616 commented 2 years ago

Seems to be using Bungee's libraries system to load kotlin as a dependency. Gonna have to look into why that doesn't work right now, it should use the same logic as Bungee to load plugins there...