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

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

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

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

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

    Баллы:
    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. Морпеч крч

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

    Баллы:
    66
    Имя в Minecraft:
    _Morpech_
  4. Автор темы
    lightalex

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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