Помогите Забанить игрока палкой

JustCoder

Участник
Пользователь
Баллы
31
Имя в Minecraft
JustCoder
Как отследить, что игрок стукнул по игроку палкой, и кого ударили -- бан
 
Как отследить, что игрок стукнул по игроку палкой, и кого ударили -- бан
entityDamageByEntityEvent - чтобы отследить, кто ударил. Дальше чекаешь атакуещего и атакуемого на игрока, предмет в руке на палку, и делаешь с этим что хочешь.
 
Весьма забавная концепция отлупить человека палкой до бана -_-
 
Код:
    @EventHandler
    public void on(PlayerInteractEvent e) {
        ItemStack hamer = e.getPlayer().getInventory().getItemInMainHand();
        if (hamer.isSimilar(new ItemBuilder(Material.STICK).setLore("Молот").build())) {
            Arrow arrow = e.getPlayer().launchProjectile(Arrow.class);
            arrow.setVelocity(e.getPlayer().getLocation().getDirection().multiply(100));
            arrow.setMetadata("ban", new FixedMetadataValue(plugin, "ban"));
        }
    }

    @EventHandler
    public void on(EntityDamageByEntityEvent e) {
        if (e.getDamager().hasMetadata("ban") && e.getEntity().getType() == EntityType.PLAYER) {
            Projectile p = (Projectile) e.getDamager();
            Player shoter = (Player) p.getShooter();
            Player player = (Player) e.getEntity();
            Bukkit.broadcastMessage("§4"+shoter.getName() + " забанил " + player.getName());
            player.kickPlayer("§4"+shoter.getName()+" забанил вас");
            Bukkit.getBanList(Type.NAME).addBan(player.getName(), "§4Вы забаены модером " + shoter.getName(), null, null);
        }
    }
P.s ItemBuilder.java самопис.
 
Я просто афигел, уже такую дичь при думают.
 
Делаешь проверку атакующего и атакуемого игрока. Определяешь у кого из них в руках палка и делаешь свое грязное дело...
 
Подобная идея очень похожа на ту, что из машиним. Типо админ видит читера, тыкает на него палкой, гремит гром, и игрока нет на сервере.
 
Подобная идея очень похожа на ту, что из машиним. Типо админ видит читера, тыкает на него палкой, гремит гром, и игрока нет на сервере.
Окай. Добавь player.getWorld().strikeLightningEffect(player.getLocation());
 
Назад
Верх