1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Merkelris, 28 авг 2017.

Статус темы:
Закрыта.
  1. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    К примеру хочу сделать смену режимов(гм),накалякал оно работает но.
    1. У меня игрок сендер вот:
    PHP:
    Player p = (Playersender;
    Но я хочу чтоб и консоль могла изменять режим игрокам как и сами игроки
    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 = (Playersender;
            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);
            }
     
  2. Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Так будет проще.
    Код:
    Player target = null;
    if(args.length == 2){
    target = Bukkit.getPlayer(args[1]);
    }else{
    target = (Player)sender;
    }
     
  3. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    ок как-нибудь помещу.А вот консоль что с ней ?
     
  4. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    вот тут
    PHP:
    Player p = (Playersender;
            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);
            }
     
  5. Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Код:
    if(args.length != 2 && !(sender instanceof Player)){
    return true;
    }
    Что-то тип этого.
     
  6. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    Чёт я напортачил...
    PHP:
    Player p = (Playersender;
            if(
    args.length != && !(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 = (Playersender;
                
    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;
        }

    }
     
  7. Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Делай все с нуля и используй мои подсказки.
    P.S. Сейчас там черти что.
     
  8. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    Ну это понятно что это го*но я думаю как твои подсказки использовать в самом начале так?
    PHP:
    if(args.length != && !(sender instanceof Player)){
                return 
    true;
                }
            
    Player p = (Playersender;
    и смена гм
    потом(мне так привычнее)
    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);
            }

    ?
     
  9. Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Не
     
  10. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
  11. Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Думай, думай...
     
  12. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    Ладно с консолью я ещё подружусь.Или нет..
    Код:
    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) {
    ну вот
    если цель это отправитель,то мне нужно послать его и не дать гм хм..
    но как
     
  13. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    А теперь по русски
     
  14. Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Код:
    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;
       }
    Говнокод, но будет работать.
     
  15. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    PHP:
            Player target null;
            if (
    args.length == 2) {
                
    target Bukkit.getPlayer(args[1]);
            } else {
                
    target = (Playersender;
            }
            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);
            }
    Не тоже самое?И да чёт не робит
     
  16. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    хотя подожди
     
  17. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    Теперь вообще не то
     
  18. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    Убрал
    } else {
    target = (Player) sender;
    теперь нормально (консоль не того) и ошибка типо /gm 1 правильно но надо /gm 1 ник
     
  19. Автор темы
    Merkelris

    Merkelris Новичок Пользователь

    Баллы:
    21
    короче что аргументов не хватает но команд выполняется
     
  20. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
            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;
     
Статус темы:
Закрыта.

Поделиться этой страницей