我最近在为我的服务器编写插件时遇到了问题。我遇到了一个错误,该错误在命令的每个形状中都没有改变,这就是错误:
[21:23:32 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'g' in plugin TheNewCore v0.135.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.5.jar:git-Paper-457]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.5.jar:git-Paper-457]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:807) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2021) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:1832) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1785) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:23) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1133) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1126) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1262) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:997) ~[patched_1.16.5.jar:git-Paper-457]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:174) ~[patched_1.16.5.jar:git-Paper-457]
at java.lang.Thread.run(Thread.java:832) [?:?]
Caused by: java.lang.IllegalArgumentException: Cannot create path without a section
at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[patched_1.16.5.jar:git-Paper-457]
at org.bukkit.configuration.MemorySection.createPath(MemorySection.java:922) ~[patched_1.16.5.jar:git-Paper-457]
at org.bukkit.configuration.MemorySection.createPath(MemorySection.java:905) ~[patched_1.16.5.jar:git-Paper-457]
at me.Walitam.TheNewCore.TheNewCore.onCommand(TheNewCore.java:55) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.5.jar:git-Paper-457]
... 19 more
我不知道如何解决它。这是命令的代码:
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (label.equalsIgnoreCase("g")) {
if (sender instanceof Player) {
if (args.length == 0) {
// INSTANCIATION OF THE PLAYER
Player player = (Player) sender;
// SHOWING THE MENU TO THE PLAYER
player.sendMessage(ChatColor.DARK_GREEN + "" + ChatColor.BOLD + "" + ChatColor.ITALIC + "L'aide des Guildes de TheNewCore, bienvenue !");
player.sendMessage(ChatColor.GRAY + "" + ChatColor.BOLD + "------------------------------");
player.sendMessage(ChatColor.GREEN + "/g " + ChatColor.WHITE + ":" + ChatColor.GREEN + " montre ce menu d'aide.");
player.sendMessage(ChatColor.GRAY + "" + ChatColor.BOLD + "------------------------------");
player.sendMessage(ChatColor.GREEN + "/g create <gname> <gpword> " + ChatColor.WHITE + ":" + ChatColor.GREEN + " crée une guilde avec le nom et le mot de passe entrés.");
player.sendMessage(ChatColor.GRAY + "" + ChatColor.BOLD + "------------------------------");
player.sendMessage(ChatColor.GREEN + "/g delete <gname> <gpword> " + ChatColor.WHITE + ":" + ChatColor.GREEN + " supprime une guilde avec le nom et le mot de passe entrés.");
player.sendMessage(ChatColor.GRAY + "" + ChatColor.BOLD + "------------------------------");
player.sendMessage(ChatColor.GREEN + "/g add <pname> " + ChatColor.WHITE + ":" + ChatColor.GREEN + " ajoute un joueur avec le nom entré dans votre guilde.");
player.sendMessage(ChatColor.GRAY + "" + ChatColor.BOLD + "------------------------------");
player.sendMessage(ChatColor.GREEN + "/g remove <pname> " + ChatColor.WHITE + ":" + ChatColor.GREEN + " retire un joueur du nom entré de votre guilde.");
}
if (args[0].equalsIgnoreCase("create")) {
Player player = (Player) sender;
if (args.length <= 2) {
player.sendMessage(ChatColor.RED + "Il manque des arguments :/");
} else {
String creatorplayername = player.getName();
String guildname = args[1];
String guildpassword = args[2];
getConfig().createPath(getConfig().getConfigurationSection("guilds"), guildname);
ConfigurationSection guildid = getConfig().getConfigurationSection("guilds." + guildname);
getConfig().createPath(guildid, "creator");
getConfig().set("creator", creatorplayername);
getConfig().createPath(guildid, "password");
ConfigurationSection passwordsection = getConfig().getConfigurationSection("guilds." + guildpassword);
getConfig().set("guilds.password", guildpassword);
}
if (args[0].equalsIgnoreCase("delete")) {
sender.sendMessage(ChatColor.RED + "You just executed the " + ChatColor.WHITE + "/g delete" + ChatColor.RED + " command !");
}
if (args[0].equalsIgnoreCase("add")) {
sender.sendMessage(ChatColor.RED + "You just executed the " + ChatColor.WHITE + "/g add" + ChatColor.RED + " command !");
}
if (args[0].equalsIgnoreCase("remove")) {
sender.sendMessage(ChatColor.RED + "You just executed the " + ChatColor.WHITE + "/g remove" + ChatColor.RED + " command !");
}
} else {
// IF YOU NO PLAYER
sender.sendMessage("[TheNewCore] Vous n'êtes pas un joueur, vous n'avez donc pas accès aux guildes ;)");
}
return true;
}
}
return true;
}
答案 0 :(得分:0)
您不需要使用这些方法来创建路径或类似方法。如果要将数据保存在 YML 文件中,格式如下:
guilds:
my_guild_name:
creator: "Im_Fran"
password: "MyPassword123"
使用以下代码
getConfig().set("guilds.my_guild_name.creator", "Im_Fran"); // This will store the creator
getConfig().set("guilds.my_guild_name.password", "MyPassword123"); // This will store the password