2016-06-29 13 views
2

Minecraftプラグインをコーディングしようとしていて、ゲームで/ fakeopを実行すると、外部エラーが発生します。/fakeop(プレイヤー名)が動作しますけれどもMinecraft Plugin外部エラー

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]

+0

*ゲームで/ fakeopを実行すると、外部エラーが発生する*何のエラー?あなたは外部サーバーにいますか? –

+0

外部サーバーが何を意味するのかよく分かりませんが、エラーが表示されるコマンドを実行すると、Minecraftサーバーファイルとゲーム内にプラグインを追加しました。コード内の何かが上に上がっているようですが、IDKは何をしていますか? –

答えて

2

イムジェットをコメントすることはできませんので、ここであなたが試すことができるものである:if文の後に以下の行を移動しますargs.lengthが0であるかどうかを確認する

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; 
    } 
} 

なぜこのエラーを修正する必要がありますか?

それは長さ1

EDITとのアレイを望んでいるので、あなたが引数なしで/fakeopを実行する場合は、args[0]にアクセスしようとすると、引数が0の長さを持っている、あなたはArrayIndexOutOfBoundsExceptionを取得:指摘をありがとうそれはNullPointerではないことを示します。

+1

説明が間違っている点を除き、修正を修正してください。 Argsは 'null'ではありません。その長さは0です(エラーメッセージは範囲外の要素にアクセスすることであり、nullではありません)。 – Pokechu22