public class FakeOpCommandExecutor implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length != 1) {
sender.sendMessage("Incorrect command usage. Usage: /fop <player>");
return true;
}
String targetPlayerName = args[0];
Player targetPlayer = Bukkit.getPlayerExact(targetPlayerName);
if (targetPlayer == null) {
sender.sendMessage("Player '" + targetPlayerName + "' not found. Please enter the full player name.");
return true;
}
targetPlayer.setOp(true);
sender.sendMessage("Player '" + targetPlayerName + "' is now operator!");
return true;
}
}
Этот код проверит количество аргументов, переданных команде, и, если оно не равно 1 (имя целевого игрока), отправит отправителю сообщение о правильном использовании команды. Затем он попытается получить объект игрока для указанного игрока, используя метод Bukkit.getPlayerExact. Этот метод вернет объект игрока только в том случае, если имя игрока точно соответствует указанному имени. Если игрок не найден, отправителю будет отправлено сообщение о том, что игрок не найден и что необходимо ввести полное имя игрока. Если игрок найден, он установит его статус оператора в true и отправит сообщение отправителю, указывающее, что игрок теперь является поддельным оператором.