每次通过配置文件连接的联接时,都会出现错误。
主类:
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--------------------------------------"));
Core.getPlugin(null)
存在问题。方法getPlugin()
来自父类JavaPlugin,您的Core.java扩展了该类,并且您不能将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!"));
并且在Core类中,您将其更改为:
Bukkit.getServer().getPluginManager().registerEvents(new Events(this), this);