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

Помогите Не видно частиц

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

  1. xDark

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

    Баллы:
    96
    ... да так.. ничего...
     
  2. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Ты не совсем понимаешь язык, на котором пишешь.

    this - ссылается на класс, в котором написан. В конструкторе BukkitRunnable первым аргументом выступает переменная главного класса.

    К сути - если тебе нужно использовать этот "раннабл" в другом классе, то ты должен либо создать конструктор в классе EventHandlers, где параметром будет выступать главный класс, либо создать инстанс главного класса.

    Конструктор:
    Код, представленный ниже используется в классе, в котором нужна переменная главного класса.
    В вашем случае - EventHandlers.
    Также, в главном классе, IDE подскажет вам, что при инициализации класса EventHandlers нужно указать аргумент. Аргументом там и будет являться this (тоесть главный класс).
    Код:
    private final Main plugin;
    
    public EventHandlers(Main plugin)
    {
        this.plugin = plugin;
    }
    
    Инстанс:
    Код, представленный ниже, пишется в главном классе плагина.
    Код:
    public static Main plugin;
    
    public static Main getPlugin()
    {
        return plugin;
    }
    
    Использование инстанса:
    Код:
    new BukkitRunnable()
    {
        @Override
        public void run()
        {
            //your govnocode here
        }
    }.runTaskLater(Main.getPlugin(), 20L);
    
    Использование конструктора:
    Код:
    new BukkitRunnable()
    {
        @Override
        public void run()
        {
            //your govnocode here
        }
    }.runTaskLater(plugin, 20L);
    
     
    Последнее редактирование: 3 сен 2016
  3. xDark

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

    Баллы:
    96
    он не поймёт этого, сложна...
     
    Последнее редактирование: 3 сен 2016
  4. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Если бы мне так в своё время объясняли, я бы, наверно, уже космические аппараты программировал. Прям жму руку за качественные объяснения.

    Ну а вообще, конечно, ТС, в интернете полно документации по Java. Мог бы и почитать на досуге - пригодится. Разобрался хоть, проблемы решил?

    И да, прошу прощения за практически бессмысленное поднятие темы.
     
  5. alexandrage

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

    Баллы:
    173
    Уже давно так не пишу, ибо не особо люблю классы с долларами. Создаю отдельный класс шедулера.
    new Scheduler(new Object[]{obj}).runTaskTimer(this, 20, 20);
     
    Последнее редактирование: 6 сен 2016
  6. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    А собственно, какая разница?
     
  7. alexandrage

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

    Баллы:
    173
    Для жабы никакой, а для меня визуально, красиво и упорядочено.
     
  8. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Не совсем чтобы красиво, но упорядочено, да.
     

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