Чтение аргументов как целого числа для Bounty в плагине Bukkit

Это только начало работы над плагином, и его будет больше. Это то, что я хочу иметь: для /bounty <name> <amount> я хочу иметь возможность читать то, что читается о сумме, чтобы создать переменную, подобную int a = args[1], но я не знаю, как это сделать.

Я пробовал, и это дало мне несколько ошибок. Я также хочу, чтобы это могло быть только число в команде. Я использую версию bukkit: craftbukkit-1.7.10-R0.1-20140804.183445-7

Вот мой код:

public class Main extends JavaPlugin {

    public void onEnable() {
        Bukkit.getServer().getLogger().info("[Bounty] Enabled");
        Bukkit.getServer().getLogger().info("[Bounty] Developed by ITaco_v2");
    }

    public void onDisable() {
        Bukkit.getServer().getLogger().info("[Bounty] Disabled");
    }

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

        if ( !(sender instanceof Player)) {
            sender.sendMessage(ChatColor.RED + "[" + ChatColor.GREEN + "Bounty" + ChatColor.RED + "] " + ChatColor.GOLD + "In game use only!");
            return true;
        }

        if (cmd.getName().equalsIgnoreCase("bounty")) {
            if (sender.hasPermission("bounty.setbounty"));

            if (args.length == 0) {
                sender.sendMessage(ChatColor.RED + "Please specify a Player and a bounty amount.");
                sender.sendMessage(ChatColor.GREEN + "Like this: /bounty <playername> <amount>");
                return true;

            }

            Player target = Bukkit.getServer().getPlayer(args[0]);

            if (target == null) {
                sender.sendMessage(ChatColor.RED + "Could not find player!");
                return true;
            }

            if (target != null) {
                sender.sendMessage(ChatColor.RED + "Please specify a bounty amount.");
                sender.sendMessage(ChatColor.GREEN + "Like this: /bounty " + args[0] + " <amount>");
                return true;

            }

        }
        return false;
    }

}

person ThatJavaGuy    schedule 07.08.2014    source источник
comment
Случайный указатель: можно ли сохранить ссылку на Bukkit.getServer().getLogger()? Может значительно упростить процесс регистрации. :)   -  person asteri    schedule 08.08.2014
comment
Кроме того, не подавляйте предупреждения об устаревании. API-интерфейсы устарели по какой-то причине. И нет смысла делать Player переменную final. Он теряет область видимости, как только метод возвращается и становится доступным для сборки мусора, поэтому вы просто заставляете JVM выделять пространство в permgen без причины.   -  person asteri    schedule 08.08.2014
comment
its given me some errors Пожалуйста, включите их в свой пост, и какую версию Bukkit вы используете?   -  person MrLore    schedule 08.08.2014
comment
@MrLore Этот код не дал мне никаких ошибок   -  person ThatJavaGuy    schedule 08.08.2014
comment
Вам не нужен оператор if в строке 26.   -  person spongebob    schedule 08.08.2014


Ответы (1)


Вы можете разобрать целое число из строки, используя _ 1_.

int bounty = Integer.parseInt(args[1]);
person spongebob    schedule 08.08.2014
comment
Обратите внимание, что это выбросит NumberFormatException. - person Unihedron; 09.08.2014