Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

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;
}
}

Я проверял, это конструкция работает
Проблема только в том что я не знаю как вызвать команду -_-
Подскажите, люди добрые)
 
Посмотри в коде плагина ReActions.
Прошу прощение за глупые вопросы, но как это сделать?
Там же весь код в файлах .class, которые представлены в виде шестнадцатиричного кода
 
А есть возможность исполнить команду?
А то в будущем надо будет использовать, хочу узнать как это сделать для общего развития
Bukkit.getPlayer(sender).setGameMode(GameMode.CREATIVE);
event.getPlayer().setGameMode(GameMode.CREATIVE);
В моем случае, ивент называется e ( ивент PlaceBlock)
e.getPlayer().setGameMode(GameMode.CREATIVE);
 
Bukkit.getPlayer(sender).setGameMode(GameMode.CREATIVE);
event.getPlayer().setGameMode(GameMode.CREATIVE);
В моем случае, ивент называется e ( ивент PlaceBlock)
e.getPlayer().setGameMode(GameMode.CREATIVE);

Не, ты не понял
Я имею ввиду исполнения любой команды
Например я создам команду /test
Можно ли из кода как-то ее вызвать?
Ну к примеру какой-нибудь completeCommand("test")
 
Прошу прощение за глупые вопросы, но как это сделать?
Там же весь код в файлах .class, которые представлены в виде шестнадцатиричного кода
Link. А если исходного кода нет в открытом доступе, то существуют декомпиляторы, например, jd-gui.
 
Последнее редактирование:
Не, ты не понял
Я имею ввиду исполнения любой команды
Например я создам команду /test
Можно ли из кода как-то ее вызвать?
Ну к примеру какой-нибудь completeCommand("test")
Вообще, для такого можно юзать алиасы, которые уже есть в ядре. Вот код, который будет выполнять команду от имени игрока.
Код:
if(args[0].equalsIgnoreCase("Test")){
  if(p.getGameMode() == GameMode.SURVIVAL){
    Bukkit.getServer().dispatchCommand(p, "gamemode 1");
  }else{
    Bukkit.getServer().dispatchCommand(p, "gamemode 0");
  }
}
 
Последнее редактирование:
Вообще, для такого можно юзать алиасы, которые уже есть в ядре. Вот код, который будет выполнять команду от имени игрока.
Код:
if(args[0].equalsIgnoreCase("Test")){
  if(p.getGameMode() == GameMode.SURVIVAL){
    Bukkit.getServer().dispatchCommand(p, "gamemode 1");
  }else{
    Bukkit.getServer().dispatchCommand(p, "gamemode 0");
  }
}
Или же
p.chat("/gamemode 1")
 
А можно просто от имени консоли выполнить команду?
А то вдруг у игрока не будет прав на использование команды
Да, тогда отправителем должен быть Bukkit.getConsoleSender()
 
JavaScript:
Bukkit.dispatchCommand(sender, "Команда");
//или
((Player)sender).performCommand("Команда");
//sender - CommandSender
 

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

Назад
Верх