Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Проблема с использованием методов в команде.

Тема в разделе "Разработка плагинов для новичков", создана пользователем Slavkaa, 26 май 2017.

  1. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Я занимаюсь все тем же, обосранным всеми, плагином, под названием PvPStats. Вот, значит, я решил делать стату в отдельных файлах. Все вроде бы шло хорошо, почти все работало, но когда дело дошло до команды, я застопорился.
    Мой код, с помощью которого я получаю стату из файла.
    Код:
        public int getKills(String name) {
            return playersconf.getInt("kills");
        }
        public int getDeaths(String name) {
            return playersconf.getInt("deaths");
        }
        public int getRating(String name) {
            return playersconf.getInt("rating");
        }
    
    Действие при входе. Выложил, т.к. там работает метод getKills.
    Код:
        @EventHandler
        public void join(PlayerJoinEvent e) {
            CreateFile(e.getPlayer().getName().toLowerCase());
            int kills = getKills(e.getPlayer().getName().toLowerCase());
            e.getPlayer().sendMessage("Ваши убийства: " + String.valueOf(kills));
        }
    
    Ну и сама команда. Всего несколько строчек, т.к. косяк появился сразу, при первом тесте.
    Код:
        @Override
        public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
            String name = s.getName().toLowerCase();
                s.sendMessage("Убийства:" + String.valueOf(this.getKills(name)));
            return true;
        }
    
    Формат сохранения данных в файле:
    Код:
    kills: 1
    deaths: 0
    rating: 0
    
     
  2. Хостинг MineCraft
    <
  3. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    А в чем проблем то
     
  4. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Точно, проблему то я и не объяснил. При вводе команды выбивает ошибка "An internal..."
     
  5. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Если там бывает null, то делай так this.getKills(name, "0") Пруфит.
     
  6. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Как там может быть null? Я же написал формат сохранения. Там везде по-умолчанию "0", пустыми они быть не могут.
     
  7. DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Стектрейс в студию
     
  8. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Просто у кого то конфиг нулл
     
  9. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Кстати вопрос - как рейтинг считаешь?
     
  10. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    В первых трёх методах добавь дефолтное значение:
    Код:
    getInt("_anystring_", 0);
    Доверие - штука лишняя.
     
  11. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    А если сделать так?
    Код:
    int kills = getKills(name) == null ? 0 : getKills(name)
    
     
  12. gamerforEA

    gamerforEA Старожил Пользователь

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Это не будет работать, так как примитивы не могут быть null.
     
  13. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Щас буду пробовать все. Отпишусь позже.[DOUBLEPOST=1495877210,1495876317][/DOUBLEPOST]В принципе, сам то метод работает. Почему-то команда не может нормально его вызвать.
    Там я оставил кусок кода из PlayerJoinEvent. Так там при заходе, выводится сообщение "Ваши убийства: getKills(e.getPlayer...)". Все корректно, без ошибок.

    Способ от @makssof не работает. Все та же ошибка.
     

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