每次通过配置文件连接时,我都会收到错误。
主类:
public Core plugin;
@Override
public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(new Events(), this);
new DiscordCommand(this);
new TeamspeakCommand(this);
new cHubCommand(this);
new PingCommand(this);
new HelpCommand(this);
new WebsiteCommand(this);
new BuyCommand(this);
new MenuCommand(this);
getConfig().options().copyDefaults(true);
saveConfig();
}
事件类:
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
event.setJoinMessage(null);
event.getPlayer().sendMessage(Core.getPlugin(null).getConfig().getString("joinmessage_1.", "§fWelcome to the official §acHub§f network!"));
event.getPlayer().sendMessage(Core.getPlugin(null).getConfig().getString("joinmessage_1.", "§fWelcome to the official §acHub§f network!"));
event.getPlayer().sendMessage(Core.getPlugin(null).getConfig().getString("joinmessage_2.", "§fIf you need any assistance, type §a/help"));
event.getPlayer().sendMessage(Core.getPlugin(null).getConfig().getString("joinmessage_line_2.", "§7§m--------------------------------------"));
控制台错误: https://pastebin.com/CDwK3UFj
问题出在 Core.getPlugin(null)
上。方法 getPlugin()
来自您的 Core.java 扩展的父类 JavaPlugin,并且您不能将 null 作为参数传递。
如果你想引用你的插件对象(Core.java),你可以将其更改为Core.getPlugin(Core.class)
,但更专业的是在构造函数中传递对该类的引用。
因此,您的 Events.class 的开头将如下所示:
Core plugin;
public Events(Core plugin){
this.plugin = plugin;
}
然后你可以简单地做:
event.getPlayer().sendMessage(plugin.getConfig().getString("joinmessage_1.", "§fWelcome to the official §acHub§f network!"));
在核心类中,您将其更改为:
Bukkit.getServer().getPluginManager().registerEvents(new Events(this), this);
我是一名优秀的程序员,十分优秀!