制作minecraft paper bukkit插件时可以使用库吗?

问题描述 投票:0回答:1

我添加了依赖项

<dependency>
    <groupId>com.sikulix</groupId>
    <artifactId>sikulixapi</artifactId>
    <version>2.0.5</version>
</dependency>

并使用了它

import org.sikuli.script.Screen;

@Override
public void onEnable() {
    Screen screen= new Screen();
}

并收到此错误:

[16:27:02 ERROR]: Error occurred while enabling tempplugin v1.0-SNAPSHOT (Is it up to date?)
java.lang.NoClassDefFoundError: org/sikuli/script/Screen
        at user.woongsan.tempplugin.tempplugin.onEnable(tempplugin.java:36) ~[tempplugin.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:189) ~[paper-1.20.1.jar:git-Paper-115]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104) ~[paper-1.20.1.jar:git-Paper-115]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugin(CraftServer.java:640) ~[paper-1.20.1.jar:git-Paper-115]
        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugins(CraftServer.java:551) ~[paper-1.20.1.jar:git-Paper-115]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.20.1.jar:git-Paper-115]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:435) ~[paper-1.20.1.jar:git-Paper-115]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.20.1.jar:git-Paper-115]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1101) ~[paper-1.20.1.jar:git-Paper-115]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:318) ~[paper-1.20.1.jar:git-Paper-115]
        at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.ClassNotFoundException: org.sikuli.script.Screen
        at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:183) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:150) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
        ... 13 more

我检查过它在新的 java 项目上运行良好。 我尝试了导入库、导入模块、添加依赖项,但没有任何效果 我只是想知道这可能与否..

我刚刚尝试导入另一个库(Jsoup),结果发生了

java.lang.NoClassDefFoundError
还有,如何在minecraft paper bukkit上添加库?

java minecraft
1个回答
0
投票

发生这种情况是因为当 bukkit 尝试加载您的类时,您使用的库类不存在。 -> 图书馆在bukkit眼中并不存在

您可以使用 Maven Shade 插件直接将依赖项添加到您的 jar 中(称为“阴影”):https://maven.apache.org/plugins/maven-shade-plugin/

或者对于 gradle:shadowjar 插件:https://github.com/johnrengelman/shadow

© www.soinside.com 2019 - 2024. All rights reserved.