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

Помогите Ошибка при addPotionEffect

Discussion in 'Разработка плагинов для новичков' started by nikvas2000, Nov 28, 2013.

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

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

    Trophy Points:
    63
    Имя в Minecraft:
    the_nacho
    Помогите,
    я не знаю почему эффект не накладывается на игрока.
    Eclipse ничего не подчеркивает.
    Code:
    @EventHandler
        public void click(PlayerInteractEvent e){
            if(e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR){
                Player p = e.getPlayer();
                if(p.getItemInHand().getType() == Material.GOLD_BLOCK){
                    ItemMeta goldblockmeta = p.getItemInHand().getItemMeta();
                    if(goldblockmeta.getDisplayName() == "Jump"){
                        p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 10, 3));
                    }
                    if (goldblockmeta.getDisplayName() == "Speed"){
                        p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 10, 3));
                    }
                }
                if (p.getItemInHand().getType() == Material.DIAMOND_BLOCK){
                    ItemMeta diamondblockmeta = p.getItemInHand().getItemMeta();
                    if(diamondblockmeta.getDisplayName() == "Jump"){
                        p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 10, 5));
                    }
                    if (diamondblockmeta.getDisplayName() == "Speed"){
                        p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 10, 5));
                    }
                }
            }
        }
     
  2. Хостинг MineCraft
    <
  3. unlimited

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

    Trophy Points:
    123
    Имя в Minecraft:
    infinity
    Вероятно не срабатывают if'ы, поставь после каждого ифа например p.sendMessage('***'); и посмотри какие срабатывают, а какие нет
     
  4. StealerSlain

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

    Trophy Points:
    88
    Имя в Minecraft:
    StealerSlain
    может юзнешь else if?
     
    Goldenix likes this.
  5. dark32

    dark32 А где твой ТЗ? Пользователь

    Trophy Points:
    123
    Имя в Minecraft:
    dark32
    Code:
    goldblockmeta.getDisplayName() == "Speed"
    Строки нельзя сравнивать на равенство. Строки нужно сравнивать на эквиваленцию.
    В первом случае сравнивается их ссылки, во втором - содержимое.

    Code:
    goldblockmeta.getDisplayName().equals("Speed")
    И, вообще, делайте сообщения для отладки, помогает.
     
    RVXman, nikvas2000 and Den_Abr like this.
  6. gamelax

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

    Trophy Points:
    103
    Имя в Minecraft:
    gamelax
    dark32, сравнение строк оператором == вернет true, когда обе переменные указывают на один объект в памяти.
     
    zuma2 and nikvas2000 like this.
  7. dark32

    dark32 А где твой ТЗ? Пользователь

    Trophy Points:
    123
    Имя в Minecraft:
    dark32
    Ну, а я что написал?
    Если ссылки на объект равны, то это один объект, но ещё есть пул коротких строк, но на него лучше не надеяться.
    Но всё равно сравнивать строки с помощью == к хорошему не приводит.
     
    nikvas2000 likes this.
  8. Автор темы
    nikvas2000

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

    Trophy Points:
    63
    Имя в Minecraft:
    the_nacho
    Спасибо всем за ответы.
     

Share This Page