Вопрос Перехват команд и выполнение своего кода

Alex-Novosiber

Пользователь
Сообщения
39
Всем привет. Мне необходимо отследить ввод команды игроком
( в данном случае момент привата региона) и добавить в конфиг данные :
PlayerName: regionClaimTime
Пробую этот код - не работает. Расставил вывод в консоль. В консоли вообще тишина.
Вопрос: как перехватить команду и добавить свой код для выполнения ?
Java:
@EventHandler

public void onPlayerCommand(PlayerCommandPreprocessEvent event) {

Player player = event.getPlayer();

String[] cmd = event.getMessage().split(" ");

if (cmd.length >= 2) {

if (cmd[0].replaceAll("/", "").equalsIgnoreCase("rg")) {

if (cmd[1].equalsIgnoreCase("claim") {

String playerName = player.toString();

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy");

LocalDate localDate = LocalDate.now();

System.out.println("+++ localDate " + localDate);

String rgClaimDate = (dtf.format(localDate));

System.out.println("+++ rgClaimDate " + rgClaimDate);

this.configFile = this.getConfig();

configFile.addDefault(playerName, cmd[1]);

configFile.addDefault(playerName, rgClaimDate);

// this.save(playerName, rgClaimDate);

saveConfig();

System.out.println("+++ config saved ");

}

}

}

}

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

if (cmd.getName().equalsIgnoreCase("rg")) {

System.out.println(" +++ RG command");

if (args[0].equalsIgnoreCase("claim") && args.length == 2) {

System.out.println(" +++ RG CLAIM command");

System.out.println("+++ RG claim command " + sender + " , " + args[1]);

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy");

LocalDate localDate = LocalDate.now();

System.out.println("+++ localDate " + localDate);

String rgClaimDate = (dtf.format(localDate));

System.out.println("+++ rgClaimDate " + rgClaimDate);

this.save(sender, args[1]);

this.save(sender, rgClaimDate);

saveConfig();

System.out.println("+++ config saved ");

}

}
 
Последнее редактирование:
Bukkit.getPluginManager().registerListeners(this, new Класс);
Если всё пишешь в одном классе, то в обоих случаях this.

offtop Phantomchik перенеси в правильный раздел тему
Спасибо, перепишу код
Авто объединение сообщений:

IntellijIdea ругается,
Вам необходимо зарегистрироваться для просмотра изображений-вложений


в getPluginManager нет registerListeners
 
Последнее редактирование:
Назад
Сверху Снизу