Запускать команду только от имени одного игрока? Разработка плагина Minecraft

Я делаю команду для своего собственного плагина для сервера. По сути, мне нужен код для запуска команды только одним или несколькими игроками.

Например, что, если бы я хотел команду /idk, но ее мог использовать только игрок SOS. Если бы кто-то еще использовал его, произошла бы другая команда, и она отправила бы сообщение «Ваш не SOS»!

Допустим, он убил кого-то, кто пытался использовать команду, а затем отправил им сообщение «Ты не SOS».

Спасибо!

Это мой старт ниже!

  {
        if (args.length != 1)
        {
            return false;
        }

        final Player player = getPlayer(args[0]);

        if (player == null)
        {
            sender.sendMessage("This player can't be found!");
            return true;
        }

//Commands and other things down here

person MadC    schedule 17.12.2014    source источник
comment
Чтобы получить ответ, следует задать вопрос. Однако, если вам нужны подсказки о том, как это сделать (это не форум для таких вещей, но я все равно отвечу), вам следует взглянуть на мод Essentials, так как в нем есть sudo, чтобы заставить кого-то что-то сделать, и kill, чтобы убить игрока, как а также многие другие интересные команды, такие как kitty-cannon   -  person Peter Lawrey    schedule 18.12.2014


Ответы (1)


Вы можете проверить имя отправителя или саму команду

public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    if (cmd.getName().equalsIgnoreCase("idk")) {
        if (sender.getName().equalsIgnoreCase("SOS")) {
            sender.sendMessage("You are SOS");
        } else {
            sender.sendMessage("You are not SOS!");
        }
        return true;
    }
    return false;
}
person timbru31    schedule 18.12.2014
comment
Это было очень полезно, еще один вопрос, как бы я мог добавить несколько команд, используя это. Если я хочу /idk и /nope. - person MadC; 20.12.2014
comment
Наличие /idk и /nope для одного и того же блока if? if (cmd.getName().equalsIgnoreCase("idk") || cmd.getName().equalsIgnoreCase("nope")) { - person timbru31; 21.12.2014