1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Когда getPlayerExact("ник") возвращает null?

Тема в разделе "Разработка плагинов для новичков", создана пользователем Bars, 25 июл 2014.

Статус темы:
Закрыта.
  1. Автор темы
    Bars

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

    Баллы:
    173
    Вот такая у меня конструкция:
    Код:
    long lp = Bukkit.getServer().getPlayerExact("Bars").getLastPlayed();
    Игрок существует, а происходит NullPointerException на этой самой строке.
    И такое не только с getLastPlayed(). Что такое?

    Версия 1.6.4
     
  2. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    if(player != null) { //doCode }
     
  3. Автор темы
    Bars

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

    Баллы:
    173
    Так он всегда null
     
  4. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Ваааат, так ты и ответил на свой вопрос!
     
  5. serega6531

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

    Баллы:
    173
    Skype:
    shkurovs
    Потому что такого игрока нет, очевидно же.
     
  6. Автор темы
    Bars

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

    Баллы:
    173
    В других плагинах работает - и этим всё сказано. Только они все на 1.5.2, а этот на 1.6.4.
    Но он есть :eek:
     
  7. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Я же тебе сказал - проверяй игрока на != null
     
  8. serega6531

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

    Баллы:
    173
    Skype:
    shkurovs
    Он же тебе сказал - он всегда null.
     
  9. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Дак пусть сделает его не нулл
     
  10. serega6531

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

    Баллы:
    173
    Skype:
    shkurovs
    Так для этого надо причину выяснить.
     
  11. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Он от нас что-то скрывает...
     
  12. JustBlender

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

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    You're a genius, sir.
     
  13. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Скайп, лалака
     
  14. Автор темы
    Bars

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

    Баллы:
    173
    Таки да, вот какое тут дело:
    Если например сделать команду и сделать при её выполнении вывод ника через getPlayerExact(), то он работает. Но у меня сделано так:
    Main.java:
    Код:
        @Override
        public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) {
            if (command.getName().equalsIgnoreCase("cmd")) {
                if ((args.length == 1) && (sender.hasPermission("my.perm"))) {
                    //bla-bla-bla
                    Bukkit.getScheduler().scheduleSyncDelayedTask(this, new CheckTask(this));
                    return true;
                }
            }
    
            return false;
        }
    
    CheckTask.java:
    Код:
    // Тут типа path и импорты
    
    public class CheckTask extends BukkitRunnable { // Даже пробовал implements Runnable
        public Main plugin;
    
        public CheckTask(Main p) {
            this.plugin = p;
        }
    
        @Override
        public void run() {
            //bla-bla-bla
            // Тут getPlayerExact() и не работает
        }
    }
    
     
  15. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Какого игрока ты берешь?
     
  16. Автор темы
    Bars

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

    Баллы:
    173
    Да так, в коде циклом пробегаюсь по спискам из другого плагина, где игроки хранятся как String
     
  17. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Может быть, тогда в том плагине и проблема?
     
  18. Автор темы
    Bars

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

    Баллы:
    173
    Нет. Проблема у меня, я же у себя провожу getPlayerExact, а тот плагин только предоставляет список (List<String>) игроков. Все остальные манипуляции я провожу у себя на стороне.

    Я проверял всё-всё, даже так и написал getPlayerExact("ЧистоСамНик"). В моём run() не работает только.
     
  19. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    А чем getPlayer не устроил?
     
  20. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Во первых это очевидно, во вторых жабадок тоже описывает этот момент
    Returns:
    Player object or null if not found
    То бишь возвращает null когда игрока нет на сервере.
     
Статус темы:
Закрыта.

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