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


结城希亚
在主类加上public static Plugin plugin;

在onEnable里加上
plugin = this;

然后其他类需要的时候,前面加上“主类名.plugin”就行了

Gerry5126
结城希亚 发表于 2020-5-8 19:23
在主类加上public static Plugin plugin;

在onEnable里加上

谢谢大佬

结城希亚

我推荐另一种方法
  1.      Plugin config = Bukkit.getPluginManager().getPlugin("插件名");
  2.             File file1=new File(config.getDataFolder(),"config.yml");
  3.             FileConfiguration config1=YamlConfiguration.loadConfiguration(file1);
复制代码



可以直接扔到其他类里

直接用config1代替getConfig(),这样更方便,而且还支持其他文件


William_Shi
主类继承javaplugin
getConfig这个方法是JavaPlugin的方法
虽然你主类里没出现这个方法
但是因为JavaPlugin里面有了这个方法,你没覆写也可以调用父类的方法


从其他类获取主类的方法很多
比如主类里通过向其他类构造函数传参this
或者PluginManager#getPlugin
或者主类写一个getInstance方法返回this等


反正任何获取主类实例的方法
其思路绝不应当是通过JavaPluginClassLoader强行新建主类实例就对了
(顺便吐槽不遵守双亲委派啊啊啊)

stevexu
我的方法是在主类中
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里面的值

MC_longxi
这个插件用这一直很舒服

MC_longxi
这个插件用这一直很舒服

第一页 上一页 下一页 最后一页