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

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

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

  1. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    алло.
    for (Player p : Bukkit.getOnlinePlayers()) {
    hm.put(p.getName());
    }
    Player p = event.getPlayer();
    hm.put(p.getName())
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Все равно ругается.

    Вот весь код таймера
    Код:
        @Override
        public void run() {
            for(Player p : Bukkit.getOnlinePlayers()) {
               
                ml.sickPlayers.put(p.getName());
               
                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.isEmpty())
                MessageManager.getManager().msg(p, MsgType.INFORMATION, "Нужно одеться потеплее, иначе я замерну.");
                if(r.nextInt(10) <= 5) {
                    ml.sickPlayers.put(p, true);
                }
            }
        }
     
  4. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    p.getName() в самом конце.
     
  5. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ааааа. Ну что это такое??
    зачем это?
    и
     
  6. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    if(ml.sickPlayers.isEmpty()) - проверка на отсутствие ключа, чтобы не спамил двумя сообщениями сразу.

    То, что ты мне сказал поставить. ml.sickplayers - путь до хешмепа.
     
  7. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    и в каком месте тут проверяется наличине в мапе p.getName()?
     
  8. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Так?

    Код:
                if(ml.sickPlayers.isEmpty()) {
                    MessageManager.getManager().msg(p, MsgType.INFORMATION, "Нужно одеться потеплее, иначе я замерну.");
                    p.getName();
                }
                if(r.nextInt(10) <= 5) {
                    ml.sickPlayers.put(p, true);
                    p.getName();
                }
     
  9. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    ты хоть понимаешь что делает isEmpty()?
     
  10. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Да, ведь это условие работает.

    Проверяет, пустой ли мэп
     
  11. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    И что ты будешь делать когда ты добавишь чтото в мапу?
     
  12. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Удалять добавленный ключ.

    remove(p)
     
  13. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    даже тогда когда у него нету брони одетой? И он на воздухе?
     
  14. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Нет, у меня для этого есть айтем, после юзания - ключ удаляется
     
  15. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    И как ты отправишь другому игроку сообщение если мапа НЕ пустая?
     
  16. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Вообщем. Объясняю схему. Игрок замерзает. Если он заболел - активируется таймер с простудой, а этот метод проверяет, если хеш пустой - он будет спамить это сообщение, когда игрок заболел, сообщение не спамится, спамится другое.

    Я кличко.
     
  17. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Алло. Представь ситуацию, зашёл игрок замерз, потом зашёл другой игрок и тоже замерз. И теперь объясни мне как ты отправишь второму игроку сообщение, что он замерз, если мапа не пустая?
     
  18. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Воу. Об этом я не подумал :D

    И как тогда?
     
  19. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    проверять есть ли игрок в мапе.
     
  20. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    constantKey? constantValue?
     
  21. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Да не констант, a contains.
    Имеет ли ключ, имеет ли значение.
     

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