1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Разные зомби

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

Статус темы:
Закрыта.
  1. Автор темы
    musel70

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

    Баллы:
    88
    Подскажите, почему это не работает, где ошибка?
    Код:
    package Wizards;
    import java.util.Random;
     
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.LivingEntity;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.CreatureSpawnEvent;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class mainClass extends JavaPlugin implements Listener
    {
        private Random rnd;
        @EventHandler
        public void OnEnable()
        {
            rnd = new Random();
            getLogger().info("Wizards was enabled");
        }
        public void OnDisable()
     
        {
            getLogger().info("Wizards was disabled");
        }
        @EventHandler
        public void OnEntitySpawn(CreatureSpawnEvent e)
        {
            LivingEntity ent = e.getEntity();
            if (e.getEntityType() == EntityType.GHAST )
            {
                byte m = (byte) rnd.nextInt(3);
                    if (m==0)
                    {
                     
                        ent.setCustomName("Ghost");
                        ent.setCustomNameVisible(true);
                        ent.setMaxHealth(50);
                    }
                    if (m==1)
                    {
                        ent.setCustomName("Shadow");
                        ent.setCustomNameVisible(true);
                        ent.setMaxHealth(20);
                    }
                    if (m==2)
                    {
                        ent.setCustomName("Ghast");
                        ent.setCustomNameVisible(true);
                        ent.setMaxHealth(100);
                    }
            }
             
         
        }
        public void OnEntityDamage(EntityDamageByEntityEvent e)
        {
            LivingEntity ent = (LivingEntity) e.getEntity();
            if (ent.getCustomName() != null)
            {
                if (e.getDamage()<= ent.getHealth())
                {
                    ent.setHealth(ent.getHealth()-e.getDamage());
                }
                else
                {
                    ent.setHealth(0);
                }
            }
        }
    }
    Ой неправильно тему назвал (Гасты разные
     
  2. Ukedrethose

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

    Баллы:
    78
    Skype:
    rines_skype
    Имя в Minecraft:
    RinesThaix
    Скиньте скрин консоли, когда ошибка.
     
    musel70 нравится это.
  3. Автор темы
    musel70

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

    Баллы:
    88
    А прикол в том что там нет ошибки( просто не работает)
     
  4. Ukedrethose

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

    Баллы:
    78
    Skype:
    rines_skype
    Имя в Minecraft:
    RinesThaix
    Код:
    private Random rnd;
        @EventHandler
        public void OnEnable()
        {
            rnd = new Random();
            getLogger().info("Wizards was enabled");
        }
        public void OnDisable()
     
        {
            getLogger().info("Wizards was disabled");
        }
    замените на
    Код:
    private Random rnd;
        @Override
        public void OnEnable()
        {
            getServer().getPluginManager().registerEvents(this, this);
            rnd = new Random();
            getLogger().info("Wizards was enabled");
        }
        @Override
        public void OnDisable()
     
        {
            getLogger().info("Wizards was disabled");
        }

    Перед
    тоже нужно поставить @EventHandler
     
    musel70 нравится это.
  5. Автор темы
    musel70

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

    Баллы:
    88
    [​IMG]Исправил, ничего не изменилось
     
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Регистр кто соблюдать будет? Названия методов пишутся с маленькой буквы. Тоесть не OnEnable, а onEnable(Также и onDisable)
     
    musel70 нравится это.
  7. Автор темы
    musel70

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

    Баллы:
    88
    Все. Всем спасибо. Дело было в регистре
     
  8. Ukedrethose

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

    Баллы:
    78
    Skype:
    rines_skype
    Имя в Minecraft:
    RinesThaix
    Ну без тех правок он бы тоже не пошел)
     
    Likeobot, Сникерсни и musel70 нравится это.
  9. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Я тоже хотел написать про регистрацию событий, но ты уже ответил:)
    Я тоже иногда, нагородив всякой бяки, испоганю нормальный код, а такие мелочи в последний момент замечаю:D
     
    musel70 нравится это.
  10. Ukedrethose

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

    Баллы:
    78
    Skype:
    rines_skype
    Имя в Minecraft:
    RinesThaix
    Там не только регистрация событий, у onEnable() почему-то аннотация ивента стояла)
     
    Den_Abr и musel70 нравится это.
Статус темы:
Закрыта.

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