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

Помогите OnPlayerRespawn и OnWorldChange не работают.

Тема в разделе "Разработка плагинов для новичков", создана пользователем oleg57zls, 17 дек 2015.

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

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    OnPlayerRespawn и OnWorldChange не работают на ядре KCauldron, на Bukkit все в порядке. Экстра сердца не хотят показыватся, я думаю что именно эти методы не работают. Кто нибудь сталкивался с таким?
    Часть кода:
    Код:
    @EventHandler (priority = EventPriority.MONITOR)
    public void onWorldChange(PlayerChangedWorldEvent e) {
        Player player = e.getPlayer();
        scaleHealth(player);
    }
    
    @EventHandler (priority = EventPriority.MONITOR)
    public void onPlayerRespawn(PlayerRespawnEvent e) {
        Player player = e.getPlayer();
        scaleHealth(player);
    }
    
    
    
    
    @EventHandler (priority = EventPriority.MONITOR)
    private void scaleHealth(Player player) {
    
        ArrayList<String> hpList = new ArrayList<>(plugin.getConfig().getStringList("hp"));
        if (!hpList.get(0).equals("none")) {
          for (String hp : hpList) {
    
            int levelCompare = Integer.parseInt(hp.split(" ")[0] )- 1;
            int hpAmount = Integer.parseInt(hp.split(" ")[1]);
            int lvl = player.getLevel();
            int maxHP;
            int getHpUp = hpAmount-20;
    
            if (lvl == levelCompare && lvl > 0) {
                 maxHP = hpAmount;
                 player.setMaxHealth(maxHP);
    
                 // Пишем в чат, когда добавляются дополнительные сердца
                 if (plugin.getConfig().getBoolean("messages.msghpup") != false) {
                 player.sendMessage(ChatColor.GREEN + plugin.getConfig().getString("messages.prefix") + ChatColor.WHITE + plugin.getConfig().getString("messages.hpup") + getHpUp + "!");
                 }
                 return;
            }
            }
    
            // Пишем в чат, когда получаем максимальное количество сердец       
            if (player.getLevel() > 0) {
    
                if (plugin.getConfig().getBoolean("messages.msgmaxhp") != false) {
                player.sendMessage(ChatColor.GREEN + plugin.getConfig().getString("messages.prefix") + ChatColor.WHITE + plugin.getConfig().getString("messages.maxhp"));
                }
                }
        }
    }
     
  2. Хостинг MineCraft
    <
  3. Shockwave

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

    Баллы:
    103
    Игнорируются сами ивенты или именно метод setMaxHealth()?[DOUBLEPOST=1450373428,1450372895][/DOUBLEPOST]Поискал и нашел какой то патч, сюдя по коментам он исправляет эту
    проблему
    // CraftBukkit start - Send scaled max health
    + if (this.myEntity instanceof EntityPlayerMP)
    + {
    + ((EntityPlayerMP) this.myEntity).getBukkitEntity().injectScaledMaxHealth(set, false);
    + }
    +
    + // CraftBukkit end

     
    Последнее редактирование: 17 дек 2015
  4. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Я честно говоря не знаю точно, на Баккит все работает. На ККаулдрон нет. Сам код работает, но сердца не показываются визуально после смерти или смене мира. Если перезайти, то покажет.
    Что это за код? Его в плагин встроить?
     
  5. Shockwave

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

    Баллы:
    103
    Как я понял это проблема в самом KCauldron и они ее зафиксили вроде, но как установить этот патч я без понятия.
     
  6. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Ставил последнюю версию ядра, то-же не работало. Я создал на их багтрекере тему, мб ответят.
    А так, думаю какие то костыли для реализации есть. Или просто использование этих методов другое, но документации я не нашел по данному ядру.
     

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