Войти или зарегистрироваться

Помогите Как вызвать определенный EventHandler

  • Автор темы Автор темы alex315
  • Дата начала Дата начала

alex315

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
alex314
Всем доброго времени суток! Вся суть вопроса в названии темы.
Нужно сделать так, чтобы при вводе команды /gift из игрока вылетал салют. Заранее спасибо за помощь! P.s в EventHandler сделан взрыв салюта при установке блоков (эксперементировал) Суть не в этом)
Вот сам код:
Код:
      public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
            if(cmd.getName().equalsIgnoreCase("gift")){
                sender.sendMessage(ChatColor.RED + "Test");
                //Код
                return true;
                }
            return false;
        }
  
  

    @EventHandler
    public void onBlockPlace(final BlockPlaceEvent e)
      {
    Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable()
        { 
    public void run()
    {
      Firework f = (Firework)e.getPlayer().getWorld().spawn(e.getPlayer().getLocation(), Firework.class);
    
      FireworkMeta meta = utils.getRandomFire(f.getFireworkMeta());
    
      f.setFireworkMeta(meta);
          }  
  });
}
    }
 
Сделай каст из sender в player и сунь код из ивента, он не нужен вообще.
Код:
if(sender instanceof Player) {
Player player = (Player) sender;
Firework f = (Firework) player.getWorld().spawn(player.getLocation(), Firework.class);
FireworkMeta meta = utils.getRandomFire(f.getFireworkMeta());
}
Кстати если тебе надо шедулер, то у тебя задержки и не прописаны
 
Сделай каст из sender в player и сунь код из ивента, он не нужен вообще.
Код:
if(sender instanceof Player) {
Player player = (Player) sender;
Firework f = (Firework) player.getWorld().spawn(player.getLocation(), Firework.class);
FireworkMeta meta = utils.getRandomFire(f.getFireworkMeta());
}
Кстати если тебе надо шедулер, то у тебя задержки и не прописаны
Ошибки у меня:с Можешь изменить мой кусок кода на правильный? Буду очень благодарен!
 
Ошибки у меня:с Можешь изменить мой кусок кода на правильный? Буду очень благодарен!
Код:
 public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
            if(cmd.getName().equalsIgnoreCase("gift")){
                sender.sendMessage(ChatColor.RED + "Test");
                if(sender instanceof Player) {
                Player player = (Player) sender;
                Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                  public void run()
                  {
                   Firework f = (Firework) player.getWorld().spawn(player.getLocation(), Firework.class);
                   FireworkMeta meta = utils.getRandomFire(f.getFireworkMeta());
                   f.setFireworkMeta(meta);
                  } 
                }, 60L);
                return true;
                }
                }
            return false;
        }
60L это задержка, 1 секунда = 20L
 
Код:
 public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
            if(cmd.getName().equalsIgnoreCase("gift")){
                sender.sendMessage(ChatColor.RED + "Test");
                if(sender instanceof Player) {
                Player player = (Player) sender;
                Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                  public void run()
                  {
                   Firework f = (Firework) player.getWorld().spawn(player.getLocation(), Firework.class);
                   FireworkMeta meta = utils.getRandomFire(f.getFireworkMeta());
                   f.setFireworkMeta(meta);
                  }
                }, 60L);
                return true;
                }
                }
            return false;
        }
60L это задержка, 1 секунда = 20L
Код:
      public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
          if(cmd.getName().equalsIgnoreCase("gift")){
              sender.sendMessage(ChatColor.RED + "Test");
              if(sender instanceof Player) {
              final Player player = (Player) sender;
              Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run()
                {
                 Firework f = ((Firework) player).getWorld().spawn(((Entity) player).getLocation(), Firework.class);
                 FireworkMeta meta = utils.getRandomFire(f.getFireworkMeta());
                 f.setFireworkMeta(meta);
                }
              }, 60L);
              return true;
              }
              }
          return false;
      }
Ваш код вставил, выделило пару ошибок, исправил с учетом подсказок, но салюта при вводе команды нет:с Только сообщение Test выводит и все, консоль чиста
 
Назад
Верх