2013-12-15 3 views
-5
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){ 
    Player player = (Player) sender; 
    if(commandLabel.equalsIgnoreCase("FlyTime") 
    || commandLabel.equalsIgnoreCase("ft")){ 
    if(args.length ==0){ 
     player.sendMessage(
     ChatColor.DARK_BLUE + "[FlyTime] " + ChatColor.GREEN 
     + player.getDisplayName() + ChatColor.DARK_RED + " " + number 
     + ChatColor.GREEN + " Secconds remain until " 
     + ChatColor.AQUA + "FlyTime " + ChatColor.RED + "Enjoy!"); 
    } 
    else if(args.length ==1){ 
     if(player.isOp()){ 
     number = args[0]; 
     } 
    } 
    } 
} 

Моя проблема заключается в попытке изменить аргумент значения целого, которое оно просто не хочет изменять.Целое число не работает bukkit

ответ

0

Прежде всего, вы должны проверить, если CommandSender является экземпляром Игрока (команда может быть отправлена ​​из консоли):

if (sender instanceof Player) { 

Вы получаете номер из аргументов правильно, но я не вижу, чтобы вы когда-либо использовали его. Попробуйте отправить игроку сообщение с номером после if(player.isOp()){

0

я предполагаю у вас есть

private int number; 

где-то в вашем коде.

public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){ 
    if(sender instanceof Player) //first add what August said; check if its a player. 
    { 
    Player player = (Player) sender; 
    if(cmd.getName().equalsIgnoreCase("FlyTime") || cmd.getName().equalsIgnoreCase("ft")){ //second its a common method to use command name instead of command label. 
    if(args.length ==0) 
    { 
     player.sendMessage(
     ChatColor.DARK_BLUE + "[FlyTime] " + ChatColor.GREEN 
     + player.getDisplayName() + ChatColor.DARK_RED + " " + number 
     + ChatColor.GREEN + " Secconds remain until " 
     + ChatColor.AQUA + "FlyTime " + ChatColor.RED + "Enjoy!"); 
    } 
    else if(args.length ==1) 
    { 
     if(player.isOp()) 
     { 
     System.out.println("PRE-NUMBER:" + number); //display the number 
     number = args[0]; 
     System.out.println("NUMBER: " + number); //do a check to see if the number has changed 
     } 
    } 
    } 
    } 
} 

Если это не исправить, значит, вы что-то испортили, кроме данного кода.

Смежные вопросы