java - 插件不能为空错误 - Spigot Coding
问题描述
重新加载插件时出现错误“插件不能为空”。实际上我试图为自己解决这个“错误”,但我认为这没有奏效......希望你能帮助我......
以下是一些相关的事情:
错误消息:
Could not load 'plugins/OwnChallenges-1.0.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.IllegalArgumentException: Plugin cannot be null
...
Caused by: java.lang.IllegalArgumentException: Plugin cannot be null
...
at com.fabo0814.ownchallenges.utils.Utils.delayIt(Utils.java:9) ~[?:?]
主类:
// ... Some stuff ...
public static Main main;
PluginManager pm = Bukkit.getPluginManager();
Position pos = new Position();
@Override
public void onEnable() {
main = this;
SQL.connect();
listeners();
commands();
tab();
new Config();
new RanksConfig();
doWorldStuff();
}
// ... Some Stuff ...
实用程序类:
// ... Some Stuff ...
public static void delayIt(Runnable run, int delay) {
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getPlugin(Main.class), run, delay);
}
// ... Some Stuff ...
感谢您的帮助:D
编辑:如果我在启动服务器后重新加载插件,它会以某种方式运行。
解决方案
而不是使用Main.getPlugin(Main.class)
尝试使用JavaPlugin.getPlugin(Main.class)
. 另外,为什么要创建Main
类的实例?Bukkit 插件中不需要单例(实际上它不是真正的单例,因为您不能将构造函数的访问权限设置为私有)。另外,尝试将插件的Main类命名为插件的名称,例如:您的插件名称为AchievementsX,然后将您的主类命名为AchievementsX,使用此命名您可以轻松地将插件实现到其他插件中。
推荐阅读
- react-native - 反应原生地图标记卡动画弹出
- types - Rust:预期类型,发现不透明类型
- javascript - iPad 向下滚动时退出全屏模式
- python - 将变量从 SQL 分配给 Python
- c - 链接静态 C 库时 Rust 缺少库
- powershell - 在 powershell mvn install 命令中
- fluent-bit - Fluentbit http 输出 - 每个请求发送一个日志
- jquery - Ajax GET Asp.net MVC 值不显示
- python - 为什么这段代码显示属性错误?
- jquery - 如何使用 jquery 从文本框中获取文件的扩展名