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

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

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

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

    JustCoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    JustCoder
    Как отследить, что игрок стукнул по игроку палкой, и кого ударили -- бан
     
  2. pro100koder

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

    Баллы:
    76
    entityDamageByEntityEvent - чтобы отследить, кто ударил. Дальше чекаешь атакуещего и атакуемого на игрока, предмет в руке на палку, и делаешь с этим что хочешь.
     
  3. DevAngel

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

    Баллы:
    66
    Имя в Minecraft:
    LifeAngel
    Весьма забавная концепция отлупить человека палкой до бана -_-
     
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
        @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 самопис.
     
  6. Roots

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

    Баллы:
    76
    Я просто афигел, уже такую дичь при думают.
     
  7. Cerebral_agony

    Cerebral_agony Ньюби

    Баллы:
    1
    Делаешь проверку атакующего и атакуемого игрока. Определяешь у кого из них в руках палка и делаешь свое грязное дело...
     
  8. Energy warrior

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

    Баллы:
    76
    Подобная идея очень похожа на ту, что из машиним. Типо админ видит читера, тыкает на него палкой, гремит гром, и игрока нет на сервере.
     
  9. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Окай. Добавь player.getWorld().strikeLightningEffect(player.getLocation());
     

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