15113532158
——如题——
插件写完之后装上服务器使用后报错

报错


代码





克鲁鲁殿下
本帖最后由 克鲁鲁殿下 于 2022-3-28 19:14 编辑

我给出的建议是
不要这样获取插件主类,很容易出错=-=

建议在主类写上:
private static ShinyJoinTitle ins;
public static ShinyJoinTitle getIns(){
    return ins;
}

然后获取plugin:
Plugin config = (Plugin)ShinyJoinTitle.getIns;


补充:你这是在主类获取自己
我建议你this.getConfig
因为你自己就是那个插件主类实例

164ebr
补,装个Minecraft开发模板插件(idea插件)

克鲁鲁殿下
164ebr 发表于 2022-3-28 19:11
补,装个Minecraft开发模板插件(idea插件)

虽然我觉得,这个和开发模板插件好像,没什么关系()

他这个是非法状态异常(我怀疑是插件还没初始化就获取插件实例的缘故(也不一定,只是可能性)

美味的曲奇
类的非静态内部变量会在试图实例化的时候初始化
也就是说第十六行的代码会在类未完全试图通过类来获取插件
但此时类未完全实例化,导致报错

可以在onEnable方法里来直接 getConfig()

克鲁鲁殿下
美味的曲奇 发表于 2022-3-28 19:46
类的非静态内部变量会在试图实例化的时候初始化
也就是说第十六行的代码会在类未完全试图通过类来获取插件
...

简单来讲:onEnable之前可以声明,但必须之后赋值()要不然就会出现问题=-=

164ebr
本帖最后由 164ebr 于 2022-3-29 00:39 编辑
克鲁鲁殿下 发表于 2022-3-28 19:17
虽然我觉得,这个和开发模板插件好像,没什么关系()

他这个是非法状态异常(我怀疑是插件还没初始化就 ...

他这么干不太像用了模板的样子所以我就说了,毕竟用了模板也不会这么继承(总结 咱用模板老老实实写就完事了

克鲁鲁殿下
164ebr 发表于 2022-3-29 00:36
他这么干不太像用了模板的样子所以我就说了,毕竟用了模板也不会这么继承(总结 咱用模板老老实实 ...

(事实上主类可以实现接口的说)=-=

如果你的插件的指令/监听器少的话,放主类比较简单=-=