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

Помогите Ключи HashMap пропадают после перезагрузки сервера

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Отпечатка, тогда первое наверно.
    Вот так?
    Код:
                if(!ml.sickPlayers.containsKey(p)) {
                    MessageManager.getManager().msg(p, MsgType.INFORMATION, "Нужно одеться потеплее, иначе я замерну.");
                    p.getName();
                }

    А еще есть ошибка на put
    Просит в цикле сменить Player на String
    ml.sickPlayers.put(p, true);
     
  2. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooo
    Я тебе выше писал что нужно заносить в мапу.
     
  3. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    p.getName?
    Если так: ml.sickPlayers.put(p.getName(), true) - ошибка исчезает!
    Вот итоговый таймер. Все так?
    Код:
        @Override
        public void run() {
            for(Player p : Bukkit.getOnlinePlayers()) {
               
                if(!p.getWorld().hasStorm()) {
                    continue;
                }
            
                if(p.getInventory().getChestplate() != null) {
                    continue;
                }
               
                Location loc = p.getLocation();
               
                if(loc.getWorld().getHighestBlockYAt(loc) > loc.getBlockY()) {
                    continue;
                }
               
                if(!ml.sickPlayers.containsKey(p)) {
                    MessageManager.getManager().msg(p, MsgType.INFORMATION, "Нужно одеться потеплее, иначе я замерну.");
                }
                if(r.nextInt(10) <= 5) {
                    ml.sickPlayers.put(p.getName(), true);
                    p.getName();
                }
            }
        }
    }
     
  4. Larin

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

    Баллы:
    103
  5. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Ну, тут все про хеши, но что я упустил?
     
  6. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Он такой тупой, что когда Player поменяли на String, то он не догнал что нужно ник игрока брать. Что ещё ты от него ожидал?
    Пару месяцев обучения джавке.
     
  7. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    А я чего брал? UUID? Я брал ник игрока!
     
  8. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
     
  9. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    ml.sickPlayers.put(p.getName());

    Поправил в условии, но он ругается, что нужно все равно добавить true или false
     
  10. Larin

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

    Баллы:
    103
    Не обучаемый!
    Читай java docs!
    https://docs.oracle.com/javase/8/docs/api/java/util/Map.html
    HashMap - хранит в себе пары ключ-значение на основе хеша! Нельзя добавить в HashMap ключ без значения.
     
  11. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Я это знаю! Но блин, если я сделал так - вы говорите, что не так и наоборот.

    ml.sickPlayers.put(p.getName(), true);

    В хеше указано значение Boolean - а значит true или false
    Но даже так болезнь не появляется.
    Но почему не работает, если я верно же вроде бы указал! Он просил Boolean - я ему выставил значение, но таймер не включается
     
  12. _MediaNik_

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

    Баллы:
    76
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Что ты несешь? Какой list.contains(player)? list.get(player)
    Программист, хах.
     
  13. Larin

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

    Баллы:
    103
    Когда решил показать, какой ты умный, но обосрался.
     
  14. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Начинается. Сезон срача открывать?
     
  15. _MediaNik_

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

    Баллы:
    76
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Либо тебе никогда не быть программистом, либо используй ArrayList.Вот, если не знаешь, что такое ArrayList
     
  16. Larin

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

    Баллы:
    103
     
  17. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Я на лист не перейду. И, кажется я плюсану ларина.
     
  18. _MediaNik_

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

    Баллы:
    76
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Я предлагаю годную схему, попробовал бы сначала, а потом уже говорил.
     
  19. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Я не люблю использовать лист.

    Мне просто осталось пофиксить проблему, когда болезнь не выдается, хотя список в файлы создался.
     
  20. Larin

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

    Баллы:
    103
    Знал бы, кому это говоришь.
     

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