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

Помогите Задержка между кодами

Тема в разделе "Разработка плагинов для новичков", создана пользователем Folzy, 6 фев 2021.

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

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Решил создать плагин, я в этом деле новичок.
    Так вот я хочу реализовать вот что:
    Когда ломаешь угольную руду, за место нее ставится Бедрок, и через некоторое время ставится снова угольная руда.
    Так вот как мне настроить задержку между этими кодами: 1 файл.JPG
     
  2. Абсик

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

    Баллы:
    76
    Имя в Minecraft:
    Abcik
    Код:
            Bukkit.getScheduler().runTaskLater(plugin, () -> {
                //CODE
            },20);
    
    Где 20 - кол-во мс которое таймер будет ждать перед тем, как выполнить //CODE
     
  3. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Спасибо а вопрос я правильно написал код с тем что при ломании Угольной руды,спавнится бедрок?
     
  4. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Какая то ошибка: Ошибка1.JPG
     
  5. Абсик

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

    Баллы:
    76
    Имя в Minecraft:
    Abcik
    plugin инициализируй.

    В классе Main добавь: "public static Main inst;"
    В классе Main в onEnable добавь: "inst = this;"
    И потом в классе Block в таймере вместо plugin используй "Main.inst"
     
  6. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Прости что глупые вопросы задаю просто плохо понимаю)
    Вот так?

    Ошибка 2.JPG

    Если да то куда вставлять - inst = this; ?
    в onEnable куда?
    Вставлять между фигурными скобками?
     

    Вложения:

  7. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    А все все я понял спасибо тебе
     
  8. Абсик

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

    Баллы:
    76
    Имя в Minecraft:
    Abcik
    Рано ты начал плагины пилить, для начала советую ознакомится с джавой, её структурой и ООП.
     
  9. FailsHD

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

    Баллы:
    61
    Имя в Minecraft:
    Unknown
    Много кто так начинает, хай продолжает писать, мб научится уму и что нибудь хорошее напишет
     
  10. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Можешь еще помочь?
    Смотри у меня идея такова что при ломании угольной руды, за место нее ставился Бедрок.
    Но у меня почему то этот код не срабатывает.
    Не могу понять в чем дело
    Не понял.JPG
     
  11. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Ну дело в том что, для меня теоретический материал всегда не понятен мне нужна практика чтоб понять, что я сейчас и делаю.
     
  12. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    20 тиков = 1 секунда. И так, как ты в главном классе это делаешь - вместо inst можешь использовать this.
    PHP:
    @EventHandler
    public void onBreak(BlockBreakEvent e) {
        
    Block b e.getBlock();
        if (
    b.getType() == Material.COAL_ORE) {
            
    b.setType(Material.BEDROCK);
            
    Bukkit.getScheduler().runTaskLater(plugin, () -> b.setType(Material.COAL_ORE), 20L);
        }
    }
     
  13. _MRDen3000YT_

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

    Баллы:
    76
    Какому г*вну ты его учишь. Банально di - и все готово.
     
  14. Абсик

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

    Баллы:
    76
    Имя в Minecraft:
    Abcik
    Рискну предположить что это потому, что ты не зарегистрировал слушатель событий
     
  15. Абсик

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

    Баллы:
    76
    Имя в Minecraft:
    Abcik
    Так научи, как нужно, и, меня заодно.
     
  16. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Слушай ты меня избавил от "геморроя" весь интернет облазил.
    Фух спасибо
    Да и к тому же я уже нашел человека который мне написал плагин)
     
  17. 4APP1

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

    Баллы:
    76
    Имя в Minecraft:
    HappyWaffle
    private Main plugin;
    public Listener(Main plugin) {
    this.plugin = plugin;
    }


    Думаю так будет получше
     
  18. _MRDen3000YT_

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

    Баллы:
    76
    Ибо сначала учать джаву, а потом пишут плагины.

    Так же, как написал человек выше - просто конструктором.
     
  19. Абсик

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

    Баллы:
    76
    Имя в Minecraft:
    Abcik
    Чем это лучше?
     
  20. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Так проще проектировать грамотную структуру приложения, меньше шанс наделать ошибок. Да даже банально тесты при использовании статики не написать.

    Конкретно в бакките статические объекты зачастую приводят к утечкам памяти при использовании PlugMan'а или /reload (что бы кто не говорил, что это вредно - это всё равно используют).

    Ну и в целом не очень хорошая привычка создавать статические объекты (фактически синглтоны). Эта практика программирования противоречит принципам ООП.
    Создавать статические утилиты - идея ещё сносная (ради утилит, например), но вот статические объекты - только в крайнем случае
     
    Последнее редактирование: 7 фев 2021
Статус темы:
Закрыта.

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