RT
在主类外面使用getConfig()报错
在主类外面使用getConfig()报错

在主类加上public static Plugin plugin;
在onEnable里加上
plugin = this;
然后其他类需要的时候,前面加上“主类名.plugin”就行了
在onEnable里加上
plugin = this;
然后其他类需要的时候,前面加上“主类名.plugin”就行了
结城希亚 发表于 2020-5-8 19:23
在主类加上public static Plugin plugin;
在onEnable里加上
谢谢大佬
我推荐另一种方法
- Plugin config = Bukkit.getPluginManager().getPlugin("插件名");
- File file1=new File(config.getDataFolder(),"config.yml");
- FileConfiguration config1=YamlConfiguration.loadConfiguration(file1);
可以直接扔到其他类里
直接用config1代替getConfig(),这样更方便,而且还支持其他文件
主类继承javaplugin
getConfig这个方法是JavaPlugin的方法
虽然你主类里没出现这个方法
但是因为JavaPlugin里面有了这个方法,你没覆写也可以调用父类的方法
从其他类获取主类的方法很多
比如主类里通过向其他类构造函数传参this
或者PluginManager#getPlugin
或者主类写一个getInstance方法返回this等
反正任何获取主类实例的方法
其思路绝不应当是通过JavaPluginClassLoader强行新建主类实例就对了
(顺便吐槽不遵守双亲委派啊啊啊)
getConfig这个方法是JavaPlugin的方法
虽然你主类里没出现这个方法
但是因为JavaPlugin里面有了这个方法,你没覆写也可以调用父类的方法
从其他类获取主类的方法很多
比如主类里通过向其他类构造函数传参this
或者PluginManager#getPlugin
或者主类写一个getInstance方法返回this等
反正任何获取主类实例的方法
其思路绝不应当是通过JavaPluginClassLoader强行新建主类实例就对了
(顺便吐槽不遵守双亲委派啊啊啊)
我的方法是在主类中
public static FileConfiguration config;
然后onEnable() 加载完插件后
config = getConfig();
这样用 主类.config 就能使用
public static FileConfiguration config;
然后onEnable() 加载完插件后
config = getConfig();
这样用 主类.config 就能使用
stevexu 发表于 2020-5-10 14:23
我的方法是在主类中
public static FileConfiguration config;
然后onEnable() 加载完插件后
这样的话 reloadConfig() 貌似就要自己写额外逻辑了,config变成了YamlConfiguation的copy,所以reload也没办法改变config里面的值
这个插件用这一直很舒服
这个插件用这一直很舒服