gpt4 book ai didi

java - Minecraft 插件外部错误

转载 作者:行者123 更新时间:2023-11-30 08:35:35 27 4
gpt4 key购买 nike

尝试编写 Minecraft 插件代码时,当我在游戏中运行/fakeop 时出现外部错误。/fakeop (playername) 虽然有效

public class CortexTroll extends JavaPlugin {

@Override
public void onEnable() {}

@Override
public void onDisable() {}

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("fakeop")) {
Player player = (Player) sender;
Player target = Bukkit.getServer().getPlayer(args[0]);
if (args.length == 0) {
player.sendMessage("Specify a player to Op. /fakeop <target>");
return true;
}
player.sendMessage("Fake Opped " + args[0]);
Bukkit.broadcastMessage(ChatColor.GRAY + "[" + player.getName() + ": Opped " + args[0] + "]");
target.sendMessage(ChatColor.YELLOW + "You are now op!");
}
return true;
}
}

错误:

Illuminatiiiiii issued server command: /fakeop [21:33:10 ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'fakeop' in plugin CortexTroll v1.0 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at org.bukkit.craftbukkit.v1_10_R1.CraftServer.dispatchCommand(CraftServer.java:646) ~[spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at net.minecraft.server.v1_10_R1.PlayerConnection.handleCommand(PlayerConnection.java:1351) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1186) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at net.minecraft.server.v1_10_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at net.minecraft.server.v1_10_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at net.minecraft.server.v1_10_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_91] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_91] at net.minecraft.server.v1_10_R1.SystemUtils.a(SourceFile:45) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:733) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:672) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:571) [spigot-1.10.2.jar:git-Spigot-5391d73-00359a1] at java.lang.Thread.run(Unknown Source) [?:1.8.0_91] Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at us.thecortex.cortextroll.CortexTroll.onCommand(CortexTroll.java:29) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot-1.10.2.jar:git-Spigot-5391d73-00359a1]

最佳答案

因为不允许我评论 jet,这里是您可以尝试的方法:在检查 args.length 是否为 0 的 if 语句之后移动下面的行

public Class CortexTroll extends JavaPlugin{

@Override
public void onEnable() {}

@Override
public void onDisable() {}

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("fakeop")) {
Player player = (Player) sender;
if (args.length == 0) {
player.sendMessage("Specify a player to Op. /fakeop <target>");
return true;
}
Player target = Bukkit.getServer().getPlayer(args[0]); // Is now below the if-statement
player.sendMessage("Fake Opped " + args[0]);
Bukkit.broadcastMessage(ChatColor.GRAY + "[" + player.getName() + ": Opped " + args[0] + "]");
target.sendMessage(ChatColor.YELLOW + "You are now op!");
}
return true;
}
}

为什么要修复这个错误?

如果你执行 /fakeop 没有任何参数,args 的长度为 0。如果你尝试访问 args[0],你会得到一个 ArrayIndexOutOfBoundsException 因为它需要一个长度为 1 的数组。

编辑:感谢您指出它不是 NullPointer。

关于java - Minecraft 插件外部错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38090435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com