Помогите Консоль,игрок

Статус
Закрыто для дальнейших ответов.

Merkelris

Новичок
Пользователь
Баллы
21
К примеру хочу сделать смену режимов(гм),накалякал оно работает но.
1. У меня игрок сендер вот:
PHP:
Player p = (Player) sender;
Но я хочу чтоб и консоль могла изменять режим игрокам как и сами игроки
2. И второе когда я уже другому игроку даю к примеру креатив он выдается и мне.
смена режима у игроков
/gm 1 VasyaPupkin
говно код:
PHP:
Player target = Bukkit.getPlayer(args[1]);
        if (!sender.hasPermission("plugin.gamemode.change")) {
            sender.sendMessage(not_permission);
            return true;
        }   
        if (target == null) {
            sender.sendMessage(target.getName() + not_target);
            return true;
        }
        if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
            target.setGameMode(GameMode.SURVIVAL);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
            target.setGameMode(GameMode.CREATIVE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
            target.setGameMode(GameMode.ADVENTURE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
            target.setGameMode(GameMode.SPECTATOR);
            target.sendMessage(game_ppf);
        }
просто смена режима
/gm 1
опять говно код:
PHP:
Player p = (Player) sender;
        if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
            p.setGameMode(GameMode.SURVIVAL);
            p.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
            p.setGameMode(GameMode.CREATIVE);
            p.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
            p.setGameMode(GameMode.ADVENTURE);
            p.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
            p.setGameMode(GameMode.SPECTATOR);
            p.sendMessage(game_ppf);
        }
 
Так будет проще.
Код:
Player target = null;
if(args.length == 2){
target = Bukkit.getPlayer(args[1]);
}else{
target = (Player)sender;
}
 
вот тут
PHP:
Player p = (Player) sender;
        if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
            p.setGameMode(GameMode.SURVIVAL);
            p.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
            p.setGameMode(GameMode.CREATIVE);
            p.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
            p.setGameMode(GameMode.ADVENTURE);
            p.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
            p.setGameMode(GameMode.SPECTATOR);
            p.sendMessage(game_ppf);
        }
 
Код:
if(args.length != 2 && !(sender instanceof Player)){
return true;
}
Что-то тип этого.
 
Чёт я напортачил...
PHP:
Player p = (Player) sender;
        if(args.length != 2 && !(sender instanceof Player)){
            return true;
        }
        if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
            p.setGameMode(GameMode.SURVIVAL);
            sender.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
            p.setGameMode(GameMode.CREATIVE);
            p.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
            p.setGameMode(GameMode.ADVENTURE);
            p.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
            p.setGameMode(GameMode.SPECTATOR);
            p.sendMessage(game_ppf);
        }
        //TARGET
        Player target = null;
        if (args.length == 2) {
            target = Bukkit.getPlayer(args[1]);
        } else {
            target = (Player) sender;
            sender.sendMessage(ChatColor.RED + "Так незя)");
            return true;
        }
        if (!sender.hasPermission("plugin.gamemode.change")) {
            sender.sendMessage(not_permission);
            return true;
        }   
        if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
            target.setGameMode(GameMode.SURVIVAL);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
            target.setGameMode(GameMode.CREATIVE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
            target.setGameMode(GameMode.ADVENTURE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
            target.setGameMode(GameMode.SPECTATOR);
            target.sendMessage(game_ppf);
        }
        return true;
    }

}
 
Делай все с нуля и используй мои подсказки.
P.S. Сейчас там черти что.
 
Делай все с нуля и используй мои подсказки.
P.S. Сейчас там черти что.
Ну это понятно что это го*но я думаю как твои подсказки использовать в самом начале так?
PHP:
if(args.length != 2 && !(sender instanceof Player)){
            return true;
            }
        Player p = (Player) sender;
и смена гм
потом(мне так привычнее)
PHP:
Player target = Bukkit.getPlayer(args[1]);
        if (!sender.hasPermission("plugin.gamemode.change")) {
            sender.sendMessage(not_permission);
            return true;
        }   
        if (target == null) {
            sender.sendMessage(target.getName() + not_target);
            return true;
        }
        if (target == sender) {
             sender.sendMessage(ChatColor.RED + "Так незя)");
return true;
        }
        if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
            target.setGameMode(GameMode.SURVIVAL);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
            target.setGameMode(GameMode.CREATIVE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
            target.setGameMode(GameMode.ADVENTURE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
            target.setGameMode(GameMode.SPECTATOR);
            target.sendMessage(game_ppf);
        }
?
 
Ну это понятно что это го*но я думаю как твои подсказки использовать в самом начале так?
PHP:
if(args.length != 2 && !(sender instanceof Player)){
            return true;
            }
        Player p = (Player) sender;
и смена гм
потом(мне так привычнее)
PHP:
Player target = Bukkit.getPlayer(args[1]);
        if (!sender.hasPermission("plugin.gamemode.change")) {
            sender.sendMessage(not_permission);
            return true;
        }  
        if (target == null) {
            sender.sendMessage(target.getName() + not_target);
            return true;
        }
        if (target == sender) {
             sender.sendMessage(ChatColor.RED + "Так незя)");
return true;
        }
        if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
            target.setGameMode(GameMode.SURVIVAL);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
            target.setGameMode(GameMode.CREATIVE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
            target.setGameMode(GameMode.ADVENTURE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
            target.setGameMode(GameMode.SPECTATOR);
            target.sendMessage(game_ppf);
        }
?
Не
 
Ладно с консолью я ещё подружусь.Или нет..
Код:
Player target = Bukkit.getPlayer(args[1]);
        if (!sender.hasPermission("plugin.gamemode.change")) {
            sender.sendMessage(not_permission);
            return true;
        }   
        if (target == null) {
            sender.sendMessage(target.getName() + not_target);
            return true;
        }
        if (target == sender) {
             sender.sendMessage(ChatColor.RED + "Так незя)");
             return true;
        }
        if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
            target.setGameMode(GameMode.SURVIVAL);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
            target.setGameMode(GameMode.CREATIVE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
            target.setGameMode(GameMode.ADVENTURE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
            target.setGameMode(GameMode.SPECTATOR);
            target.sendMessage(game_ppf);
        }
Нужно сделать чтоб режим не обновлялся
if (target == sender) {
ну вот
если цель это отправитель,то мне нужно послать его и не дать гм хм..
но как
 
Код:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
      if(!sender.hasPermission("pluginname.pex")) {
          return true;
      }
      if(args.length < 1) {
          return true;
      }
      if(args.length != 2 && !(sender instanceof Player)){
          return true;
      }
      Player target = null;
      if(args.length == 2){
          target = Bukkit.getPlayer(args[1]);
      }else{
          target = (Player)sender;
      }
      if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
          p.setGameMode(GameMode.SURVIVAL);
          p.sendMessage(game_ppf);
      }
      else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
          p.setGameMode(GameMode.CREATIVE);
          p.sendMessage(game_ppf);
      }
      else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
          p.setGameMode(GameMode.ADVENTURE);
          p.sendMessage(game_ppf);
      }
      else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
          p.setGameMode(GameMode.SPECTATOR);
          p.sendMessage(game_ppf);
      }
      return true;
   }
Говнокод, но будет работать.
 
Код:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
      if(!sender.hasPermission("pluginname.pex")) {
          return true;
      }
      if(args.length < 1) {
          return true;
      }
      if(args.length != 2 && !(sender instanceof Player)){
          return true;
      }
      Player target = null;
      if(args.length == 2){
          target = Bukkit.getPlayer(args[1]);
      }else{
          target = (Player)sender;
      }
      if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
          p.setGameMode(GameMode.SURVIVAL);
          p.sendMessage(game_ppf);
      }
      else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
          p.setGameMode(GameMode.CREATIVE);
          p.sendMessage(game_ppf);
      }
      else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
          p.setGameMode(GameMode.ADVENTURE);
          p.sendMessage(game_ppf);
      }
      else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
          p.setGameMode(GameMode.SPECTATOR);
          p.sendMessage(game_ppf);
      }
      return true;
   }
Говнокод, но будет работать.
PHP:
        Player target = null;
        if (args.length == 2) {
            target = Bukkit.getPlayer(args[1]);
        } else {
            target = (Player) sender;
        }
        if (!sender.hasPermission("plugin.gamemode.change")) {
            sender.sendMessage(not_permission);
            return true;
        }   
        if (args[0].equalsIgnoreCase("0") || args[0].equalsIgnoreCase("s")) {
            target.setGameMode(GameMode.SURVIVAL);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("c")) {
            target.setGameMode(GameMode.CREATIVE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("2") || args[0].equalsIgnoreCase("a")) {
            target.setGameMode(GameMode.ADVENTURE);
            target.sendMessage(game_ppf);
        }
        else if (args[0].equalsIgnoreCase("3") || args[0].equalsIgnoreCase("sp")) {
            target.setGameMode(GameMode.SPECTATOR);
            target.sendMessage(game_ppf);
        }
Не тоже самое?И да чёт не робит
 
Убрал
} else {
target = (Player) sender;
теперь нормально (консоль не того) и ошибка типо /gm 1 правильно но надо /gm 1 ник
 
Код:
        if(sender instanceof Player && args.length == 1 && args[0].matches("^[0-3]{1}$")) {
            ((Player) sender).setGameMode(GameMode.getByValue(Integer.parseInt(args[0])));
            return true;
        }
        if(args.length == 2 && args[0].matches("^[0-3]{1}$")) {
            Player other = Bukkit.getPlayer(args[1]);
            if(other!=null) {
                other.setGameMode(GameMode.getByValue(Integer.parseInt(args[0])));
                return true;
            }
        }
        return false;
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх