Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Не работает отмена урона

Статус
Закрыто для дальнейших ответов.

Очередной_адмЕн

Участник
Пользователь
Баллы
36
Вообщем вот написал плагин:
Java:
public class sp extends JavaPlugin implements Listener {
    GodComponent g;

    public void onEnable(){
        getServer().getPluginManager().registerEvents(this, this);
        CommandBook cmb = (CommandBook)Bukkit.getPluginManager().getPlugin("CommandBook");
        g = cmb.getComponentManager().getComponent(GodComponent.class);
    }
  
    @EventHandler
    public void onAttack(EntityDamageByEntityEvent e) {
        if(e.getDamager() instanceof Player & e.getEntity() instanceof Player) {
          Player p = (Player)e.getDamager();
          if(!p.isOp()){
            if(p.getGameMode() == GameMode.CREATIVE){
                e.setCancelled(true);
                p.setGameMode(GameMode.SURVIVAL);
            }    
            if(g.hasGodMode(p)) {
                e.setCancelled(true);
                g.disableGodMode(p);
            }
            if(p.isFlying()) {
                e.setCancelled(true);
                p.setFlying(false);
            }
        }
    
    }
   }
       
  
}

Отмена урона и переключение в выживание, если атакующий креатив работает, но вот отмена флая и год мода(год мод из CommandBook) не работает. Подскажите, что не так.
 
Последнее редактирование:
Вообщем вот написал плагин:
Код:
public class sp extends JavaPlugin implements Listener {
    GodComponent g;

    public void onEnable(){
        getServer().getPluginManager().registerEvents(this, this);
        CommandBook cmb = (CommandBook)Bukkit.getPluginManager().getPlugin("CommandBook");
        g = cmb.getComponentManager().getComponent(GodComponent.class);
    }
  
    @EventHandler
    public void onAttack(EntityDamageByEntityEvent e) {
        if(e.getDamager() instanceof Player & e.getEntity() instanceof Player) {
          Player p = (Player)e.getDamager();
          if(!p.isOp()){
            if(p.getGameMode() == GameMode.CREATIVE){
                e.setCancelled(true);
                p.setGameMode(GameMode.SURVIVAL);
            }    
            if(g.hasGodMode(p)) {
                e.setCancelled(true);
                g.disableGodMode(p);
            }
            if(p.isFlying()) {
                e.setCancelled(true);
                p.setFlying(false);
            }
        }
    
    }
   }
}

Отмена урона и переключение в выживание, если атакующий креатив работает, но вот отмена флая и год мода(год мод из CommandBook) не работает. Подскажите, что не так.
А ты попробуй использовать Fly из bukkit'a.
Должно работать.
Java:
if(player.isFlying())
player.setFlying(false);
 
Вообщем вот написал плагин:
Java:
public class sp extends JavaPlugin implements Listener {
    GodComponent g;

    public void onEnable(){
        getServer().getPluginManager().registerEvents(this, this);
        CommandBook cmb = (CommandBook)Bukkit.getPluginManager().getPlugin("CommandBook");
        g = cmb.getComponentManager().getComponent(GodComponent.class);
    }

    @EventHandler
    public void onAttack(EntityDamageByEntityEvent e) {
        if(e.getDamager() instanceof Player & e.getEntity() instanceof Player) {
          Player p = (Player)e.getDamager();
          if(!p.isOp()){
            if(p.getGameMode() == GameMode.CREATIVE){
                e.setCancelled(true);
                p.setGameMode(GameMode.SURVIVAL);
            }  
            if(g.hasGodMode(p)) {
                e.setCancelled(true);
                g.disableGodMode(p);
            }
            if(p.isFlying()) {
                e.setCancelled(true);
                p.setFlying(false);
            }
        }
  
    }
   }
     

}

Отмена урона и переключение в выживание, если атакующий креатив работает, но вот отмена флая и год мода(год мод из CommandBook) не работает. Подскажите, что не так.
Выключай год через метадату игрока.
Java:
Plugin commandBook = SkyWars.get().getServer().getPluginManager().getPlugin("CommandBook");
if (player.hasMetadata("god")) {
if (commandBook != null && commandBook instanceof com.sk89q.commandbook.CommandBook) {
player.removeMetadata("god", commandBook);
}
}
 
Выключай год через метадату игрока.
Java:
Plugin commandBook = SkyWars.get().getServer().getPluginManager().getPlugin("CommandBook");
if (player.hasMetadata("god")) {
if (commandBook != null && commandBook instanceof com.sk89q.commandbook.CommandBook) {
player.removeMetadata("god", commandBook);
}
}
Спасибо. Действительно, через метадату все заработало как надо. :good:
CommandBook api, GodComponent, CommandBook Component
оставил для поисковика, чтоб другие админы в случай чего не блуждали. Тему закрываю.
Лайк тыкну когда будет доступен.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх