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

Помогите Сообщение о смерти от руки игрока(Постоянно NPE)

Discussion in 'Разработка плагинов для новичков' started by Rider3217, Apr 13, 2015.

Thread Status:
Not open for further replies.
  1. Автор темы
    Rider3217

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

    Trophy Points:
    98
    Имя в Minecraft:
    Planet0111
    Я хотел что бы когда тебя убил игрок писало сообщение что ты умер от того то игрока.
    Но когда убивает моб, консоль страдает.
    Делал проверки "убил ли игрок" не помогло.
    Пробовал делать через getEnityType().name();, тоже фигня(Это я делал просто что бы показало кто убил моб,игрок и тд).

    if((this.getConfig().getBoolean("deathmplus")== true) && (this.getConfig().getBoolean("deathm")== false)){
    String p = e.getEntity().getName();
    Player pl = e.getEntity();
    String kill = e.getEntity().getKiller().getName();
    String prefix = PermissionsEx.getUser(pl).getPrefix().replace("&", "§");
    if ((!pl.isOp()) && (pl.hasPermission("бла")) && (!p.equals("бла"))){
    e.setDeathMessage(this.deathp.replaceAll("%prefix%", prefix).replaceAll("%name%", pl.getName()).replaceAll("%killer%", kill));
    }else{
    e.setDeathMessage(null);
    }
     
  2. Хостинг MineCraft
    <
  3. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    e.getEntity().getType()[DOUBLEPOST=1428914618,1428914552][/DOUBLEPOST]
    OMG
    Code:
    if(getConfig().getBoolean("deathmplus") && !getConfig().getBoolean("deathm"))
    
    
     
    Last edited: Apr 13, 2015
  4. Автор темы
    Rider3217

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

    Trophy Points:
    98
    Имя в Minecraft:
    Planet0111
    Ну сорь, я с утра делал. Но задача то одна и та же.
     
  5. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Code:
        private Entity getKiller(EntityDeathEvent event) {
            EntityDamageEvent entityDamageEvent = event.getEntity()
                    .getLastDamageCause();
            if ((entityDamageEvent != null) && !entityDamageEvent.isCancelled()
                    && (entityDamageEvent instanceof EntityDamageByEntityEvent)) {
                Entity damager = ((EntityDamageByEntityEvent) entityDamageEvent)
                        .getDamager();
                if (damager instanceof Projectile) {
                    LivingEntity shooter = ((Projectile) damager).getShooter();
                    if (shooter != null)
                        return shooter;
                }
                return damager;
            }
            return null;
        }
    Метод для получения убийцы
     
  6. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    А p.getKiller() не работает?
     
  7. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Погляди принцип его работы
     
Thread Status:
Not open for further replies.

Share This Page