Войти или зарегистрироваться

Помогите Помогите разобраться в коде:)

Это назвается 1.7 билды ведра ещё не стабильны. У меня есть билд в котором при создании новых чанков(не начальная генерация мира) сервер падает.
Ну может в моем случае это как-то можно обойти?
 
Это назвается 1.7 билды ведра ещё не стабильны. У меня есть билд в котором при создании новых чанков(не начальная генерация мира) сервер падает.
Ох как я тебя понимаю... Игроки все жалуются, теперь либо перейти на Spigot окончательно, либо ждать.
 
Всем привет!
Есть обработчик события:
Код:
    @EventHandler
    public void onUse(EntityDamageByEntityEvent event)
    {
        if (event.getEntityType() == EntityType.PLAYER)
        {
            Player p = (Player) event.getEntity();
            if(p.isBlocking())
            {
                ItemStack i = p.getItemInHand();
                if(i.getType() == Material.WOOD_SWORD || i.getType() == Material.DIAMOND_SWORD || i.getType() == Material.STONE_SWORD || i.getType() == Material.IRON_SWORD)
                {                                             
                    List<String> str = new ArrayList<String>();
                    str.add("Shield");
                    event.setDamage(0.0);  //это срабатывает                  
                    if (i.getItemMeta().hasLore() && i.getItemMeta().getLore().equals(str))
                    {
                        event.setDamage(0.0); // а вот это почему-то не срабатывает
                        getLogger().info("Shield"); // и это срабатывает                                                                                      
                        i.setDurability((short) (i.getDurability() + 5));                     
                        p.setItemInHand(i);                     
                        if ((int) p.getItemInHand().getDurability() <= (int) 0)
                        {
                            i.setType(Material.AIR);                     
                        }
                        p.setItemInHand(i);         
                    } 
                }
                                             
            }
        }
    }
Проблема в том, что if как бы true и часть if'a выполняется а часть нет.

Заранее благодарю.

P.S. Коменты в коде
разве в equals("Тут") можно писать массивы? о_О
 
А на spigot'e работают bukkit плагины?
Херею с таких вопросов. Ладно спрашивают про плагины на разных версиях minecraft, там редко, но может не работать на более новых. Но чтобы 2 одинаковых ядра с одним API(кстати, у spigotAPI больше возможностей, чем у bukkitAPI) не работали - бред.
 
Херею с таких вопросов. Ладно спрашивают про плагины на разных версиях minecraft, там редко, но может не работать на более новых. Но чтобы 2 одинаковых ядра с одним API(кстати, у spigotAPI больше возможностей, чем у bukkitAPI) не работали - бред.
Полазил я в этом spigot'e и так и не понял чем он отличается от bukkit'a?
 
В принципе ничем. На практике - оптимизацией.
Понятно, а не знаете случайно когда будет нормальная сборка bukkit'a? Хотя, сейчас проверю на spigot'e этот баг вдруг все заработает.
 
Код:
List<String> str = new ArrayList<String>();
                    str.add("Shield");
                    event.setDamage(0.0);  //это срабатывает               
                    if (i.getItemMeta().hasLore() && i.getItemMeta().getLore().equals(str))
                    {

Это сравнение... Оно страшно.


Так будет логичнее:
Код:
        if (i.getItemMeta().hasLore())
           {
            List<String> lore = i.getItemMeta().getLore();
            if(lore.size() > 0)
              if(null != lore.get(0)) //Условие Йоды :3
                if(lore.get(0).equalsIgnoreCase("shield") {
                    //Вашкод
                    }
           }

И да, setDamage(0.0) понизит урон до 0, но анимация, кнокбек, покраснение, etc, все равно будут
 
Назад
Верх