Java 带2个参数的静音命令(ArrayIndexOutOfBoundsException)
出于某种原因,我在第41行有一个ArrayIndexOutOfBoundsException。我已经尝试了至少一个小时来找出我的代码出了什么问题。我正在尝试创建一个静音命令,因此该命令应为:/mute[player][enable/disable] 非常感谢你的帮助Java 带2个参数的静音命令(ArrayIndexOutOfBoundsException),java,bukkit,Java,Bukkit,出于某种原因,我在第41行有一个ArrayIndexOutOfBoundsException。我已经尝试了至少一个小时来找出我的代码出了什么问题。我正在尝试创建一个静音命令,因此该命令应为:/mute[player][enable/disable] 非常感谢你的帮助 package me.parat26.cmds; import me.parat26.admingui.MessageManager; import me.parat26.admingui.SettingsManager; im
package me.parat26.cmds;
import me.parat26.admingui.MessageManager;
import me.parat26.admingui.SettingsManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Mute implements CommandExecutor
{
SettingsManager config = SettingsManager.getInstance();
MessageManager send = MessageManager.getInstance();
public static boolean chatDisabled = false;
@SuppressWarnings("deprecation")
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
if ( sender.hasPermission((String) config.getConfig().get("permissions.mute")) )
{
if (args.length == 0)
{
send.message(sender, "Error", "Please provide enough arguments.");
}
if (args.length == 1)
{
Player offender = Bukkit.getServer().getPlayer(args[0]);
String s = sender.getName();
if (offender == null)
{
send.message(sender, "Error", "Player " + ChatColor.YELLOW + args[0] + ChatColor.WHITE + " could not be found.");
return true;
}
// Line 41
if (args[0] != null && args[1] != null && offender != null && offender.isOnline())
{
if (args[1].equalsIgnoreCase("enable"))
{
send.message(sender, "Yes", "Enabled...");
}
else if (args[1].equalsIgnoreCase("disabled"))
{
send.message(sender, "Yes", "Disabled...");
}
}
else
{
send.message(sender, "Error", "Please provide enough arguments.");
return true;
}
}
}
return true;
}
}
你有
if (args.length == 1)
{
/* ... */
if (args[0] != null && args[1] != null &
// Problem is here ----^
如果args.length
为1
,则无法尝试访问args[1]
,因为数组没有。这就是为什么你会有例外
args.length==1
测试错误,或者在if
块中的任何位置都不需要使用args[1]
。@Thanos您确定传递的参数数量正确吗?请尝试将行if(args.length==1)更改为if(args.length==2)对不起,我添加了行41。谢谢,问题似乎已经解决了!(很抱歉让你数台词;)。。。。