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

Помогите Не работают ивенты

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

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

    Walker666_ Ньюби

    Баллы:
    1
    Имя в Minecraft:
    _The_Walker_
    Пишу плагин по гайду, и когда очередь доходит ивентов, написал тестовый ивент компилирую плагин,
    и вижу что при ломании блока ничего не пишет и не выдает опыт, вот код:
    Код:
    package ru.dev0.walkercore;
    
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    
    import net.md_5.bungee.api.ChatColor;
    
    public class Handler implements Listener  {
    
        @EventHandler
        public void onPlayerJoin(BlockBreakEvent e) {
            Player p = e.getPlayer();
            if(e.getBlock().getType() == Material.ENDER_STONE) {
            p.sendMessage(ChatColor.RED + "Вы сломали нексус!");
            p.giveExp(100);   
            }
        }
    }
    
    Если вам нужен код Main класса отправлю.
     
  2. Хостинг MineCraft
    <
  3. FrostDelta123

    FrostDelta123 Активный участник

    Баллы:
    61
    Сам ивент срабатывает? Проверь, выводя сообщение при ломании любого блока. Если нет - проверяй регистрацию ивентов в main и аннотации @Override
     
  4. LetsDank

    LetsDank Активный участник

    Баллы:
    61
    Имя в Minecraft:
    LetsDank
    Он же сказал, что не работает.
    Ты, наверное, забыл зарегистрировать ивент в плагине.
    Попробуй так, только вставь в основной класс!
    Код:
    @Override
    public void onEnable() {
      Bukkit.getPluginManager().registerEvent(new Listener() {
       @EventHandler
       public void onPlayerJoin(BlockBreakEvent e) {
           Player p = e.getPlayer();
           if(e.getBlock().getType() == Material.ENDER_STONE) {
           p.sendMessage(ChatColor.RED + "Вы сломали нексус!");
           p.giveExp(100);
           }
       }
     }, this);
    }
     
  5. Lemar98

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

    Баллы:
    63
    Имя в Minecraft:
    Lemar98
    Скорее всего, ты не зарегал ивент в главном классе
     
    alexandrage нравится это.

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