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

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

А еще есть ошибка на put
Просит в цикле сменить Player на String
ml.sickPlayers.put(p, true);
 
p.getName?
Если так: ml.sickPlayers.put(p.getName(), true) - ошибка исчезает!
Вот итоговый таймер. Все так?
JavaScript:
    @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();
            }
        }
    }
}
 
Ну, тут все про хеши, но что я упустил?
 
Какие же говноеды. Пару лет назад просто ссылку на JD кинули бы и всё.
https://docs.oracle.com/javase/8/docs/api/java/util/Map.html
Он такой тупой, что когда Player поменяли на String, то он не догнал что нужно ник игрока брать. Что ещё ты от него ожидал?
Ну, тут все про хеши, но что я упустил?
Пару месяцев обучения джавке.
 
А я чего брал? UUID? Я брал ник игрока!
 
ml.sickPlayers.put(p.getName());

Поправил в условии, но он ругается, что нужно все равно добавить true или false
 
ml.sickPlayers.put(p.getName());

Поправил в условии, но он ругается, что нужно все равно добавить true или false
Не обучаемый!
Читай java docs!
https://docs.oracle.com/javase/8/docs/api/java/util/Map.html
HashMap - хранит в себе пары ключ-значение на основе хеша! Нельзя добавить в HashMap ключ без значения.
 
Я это знаю! Но блин, если я сделал так - вы говорите, что не так и наоборот.

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

В хеше указано значение Boolean - а значит true или false
Но даже так болезнь не появляется.
Но почему не работает, если я верно же вроде бы указал! Он просил Boolean - я ему выставил значение, но таймер не включается
 
из хешмапы быстрее будет достать map.get(player). чем из листа list.contains(player), но сохранять эту мапу как мапу действительно тупо.

Автор, ты же сказал, что сохранял ArrayList? возьми из мапы только тех, у кого стоит true, и запиши в этот лист и сохрани. При загрузке загрузи этот лист и всех из листа запихни в мапу.
Что ты несешь? Какой list.contains(player)? list.get(player)
Программист, хах.
 
Начинается. Сезон срача открывать?
 
Я это знаю! Но блин, если я сделал так - вы говорите, что не так и наоборот.

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

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

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