Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带2个参数的静音命令(ArrayIndexOutOfBoundsException)_Java_Bukkit - Fatal编程技术网

Java 带2个参数的静音命令(ArrayIndexOutOfBoundsException)

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

出于某种原因,我在第41行有一个ArrayIndexOutOfBoundsException。我已经尝试了至少一个小时来找出我的代码出了什么问题。我正在尝试创建一个静音命令,因此该命令应为:/mute[player][enable/disable]

非常感谢你的帮助

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。谢谢,问题似乎已经解决了!(很抱歉让你数台词;)。。。。