Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Вызов команды

Discussion in 'Разработка плагинов для новичков' started by lightalex, Oct 31, 2014.

  1. Автор темы
    lightalex

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

    Trophy Points:
    16
    Имя в Minecraft:
    now_max
    Всем привет!
    Пытаюсь сделать команду-сокращение
    То есть вместо ввода gamemode вводим просто gm

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (command.getName().equalsIgnoreCase("gm")) {
    // тут нужно сделать вызов gamemode
    return true;
    }
    else {
    return false;
    }
    }

    Я проверял, это конструкция работает
    Проблема только в том что я не знаю как вызвать команду -_-
    Подскажите, люди добрые)
     
  2. Хостинг MineCraft
    <
  3. Морпеч крч

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

    Trophy Points:
    66
    Имя в Minecraft:
    _Morpech_
  4. Автор темы
    lightalex

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

    Trophy Points:
    16
    Имя в Minecraft:
    now_max
    А есть возможность исполнить команду?
    А то в будущем надо будет использовать, хочу узнать как это сделать для общего развития
     
  5. kirr9999

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

    Trophy Points:
    103
    Посмотри в коде плагина ReActions.
     
  6. Автор темы
    lightalex

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

    Trophy Points:
    16
    Имя в Minecraft:
    now_max
    Прошу прощение за глупые вопросы, но как это сделать?
    Там же весь код в файлах .class, которые представлены в виде шестнадцатиричного кода
     
  7. Морпеч крч

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

    Trophy Points:
    66
    Имя в Minecraft:
    _Morpech_
    Bukkit.getPlayer(sender).setGameMode(GameMode.CREATIVE);
    event.getPlayer().setGameMode(GameMode.CREATIVE);
    В моем случае, ивент называется e ( ивент PlaceBlock)
    e.getPlayer().setGameMode(GameMode.CREATIVE);
     
  8. Автор темы
    lightalex

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

    Trophy Points:
    16
    Имя в Minecraft:
    now_max
    Не, ты не понял
    Я имею ввиду исполнения любой команды
    Например я создам команду /test
    Можно ли из кода как-то ее вызвать?
    Ну к примеру какой-нибудь completeCommand("test")
     
  9. kirr9999

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

    Trophy Points:
    103
    Link. А если исходного кода нет в открытом доступе, то существуют декомпиляторы, например, jd-gui.
     
    Last edited: Oct 31, 2014
  10. NaPsTeR

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

    Trophy Points:
    88
    Имя в Minecraft:
    kesha0129
    Вообще, для такого можно юзать алиасы, которые уже есть в ядре. Вот код, который будет выполнять команду от имени игрока.
    Code:
             
    if(args[0].equalsIgnoreCase("Test")){
      if(p.getGameMode() == GameMode.SURVIVAL){
        Bukkit.getServer().dispatchCommand(p, "gamemode 1");
      }else{
        Bukkit.getServer().dispatchCommand(p, "gamemode 0");
      }
    }
     
    Last edited: Oct 31, 2014
  11. kvqplay

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

    Trophy Points:
    66
    Имя в Minecraft:
    kvq_play
    Или же
    p.chat("/gamemode 1")
     
  12. Автор темы
    lightalex

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

    Trophy Points:
    16
    Имя в Minecraft:
    now_max
    А можно просто от имени консоли выполнить команду?
    А то вдруг у игрока не будет прав на использование команды
     
  13. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Да, тогда отправителем должен быть Bukkit.getConsoleSender()
     
  14. Hilgert

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

    Trophy Points:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Code:
    Bukkit.dispatchCommand(sender, "Команда");
    //или
    ((Player)sender).performCommand("Команда");
    //sender - CommandSender
     

Share This Page