Paste #39437: Kill by TNT

Date: 2017/01/29 14:05:09 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


@EventHandler
    public void onDeath(PlayerDeathEvent e) {
        Player player = e.getEntity();
        StatsProfile playerProfile = Shift.statsHandler.getStatsProfile(player.getUniqueId());
        String message = "";

        e.setKeepLevel(true);
        e.setKeepInventory(true);

        playerProfile.add(Statistic.DEATHS, 1);

        EntityDamageEvent ede = player.getLastDamageCause();
        if (ede instanceof EntityDamageByEntityEvent) {
            EntityDamageByEntityEvent e2 = (EntityDamageByEntityEvent) ede;
            Entity dmger = e2.getDamager();
            if (dmger.hasMetadata("thrower")) {
                Player thrower = Bukkit.getPlayer(dmger.getMetadata("thrower").get(0).asString());
                StatsProfile throwerProfile = Shift.statsHandler.getStatsProfile(thrower.getUniqueId());

                throwerProfile.add(Statistic.KILLS_WITH_OTHER, 1);
                throwerProfile.add(Statistic.KILLS, 1);
                throwerProfile.add(Statistic.GAME_KILLS, 1);

                message = SimpleUtils.color("&8[&c&lX&8] &6" + e.getEntity().getName()
                        + " was killed by a TNT thrown by " + thrower.getName());
                e.setDeathMessage(message);
                new BukkitRunnable() {

                    @Override
                    public void run() {
                        player.spigot().respawn();
                    }

                }.runTaskLater(Shift.plugin, 1);
                return;
            }
        }