@EventHandler(priority = EventPriority.HIGHEST) public void onPlayerDie(PlayerDeathEvent pde) { final Player player = pde.getEntity(); Game game = Main.getInstance().getGameManager().getGameOfPlayer(player); if (game == null) { return; } if (game.getState() == GameState.RUNNING) { pde.setDroppedExp(0); pde.setDeathMessage(null); if (!Main.getInstance().getBooleanConfig("player-drops", false)) { pde.getDrops().clear(); } try { if (!Main.getInstance().isSpigot()) { Class<?> clazz = null; try { clazz = Class.forName( "io.github.yannici.bedwars.Com." + Main.getInstance().getCurrentVersion() + ".PerformRespawnRunnable"); } catch (ClassNotFoundException ex) { clazz = Class.forName("io.github.yannici.bedwars.Com.Fallback.PerformRespawnRunnable"); } BukkitRunnable respawnRunnable = (BukkitRunnable) clazz.getDeclaredConstructor(Player.class).newInstance(player); respawnRunnable.runTaskLater(Main.getInstance(), 20L); } else { new BukkitRunnable() { @Override public void run() { player.spigot().respawn(); } }.runTaskLater(Main.getInstance(), 20L); } } catch (Exception e) { e.printStackTrace(); } try { pde.getClass().getMethod("setKeepInventory", new Class<?>[] {boolean.class}); pde.setKeepInventory(false); } catch (Exception ex) { player.getInventory().clear(); } Player killer = player.getKiller(); if (killer == null) { killer = game.getPlayerDamager(player); } game.getCycle().onPlayerDies(player, killer); } }
@EventHandler public void on(PlayerDeathEvent e) { final Player toter = e.getEntity(); e.setDeathMessage(""); e.setDroppedExp(0); e.setKeepInventory(false); for (ItemStack stack : e.getDrops()) { if (stack.getType() == Material.LEATHER_HELMET || stack.getType() == Material.LEATHER_CHESTPLATE || stack.getType() == Material.LEATHER_LEGGINGS || stack.getType() == Material.LEATHER_BOOTS || stack.getType() == Material.NETHER_STAR) { e.getDrops().remove(stack.getType()); } } PlayerDataClass pDCtoter = Global.re.read(toter.getUniqueId().toString()); pDCtoter.Tode += 1; StatsWriter.write(pDCtoter, toter.getUniqueId().toString()); if (e.getEntity().getKiller() instanceof Player) { Player killer = (Player) e.getEntity().getKiller(); double dhealth = ((Damageable) killer).getHealth(); String shealth = String.valueOf(dhealth / 2); shealth = shealth.substring(0, shealth.indexOf(".") + 2); for (Player all : Bukkit.getOnlinePlayers()) all.sendMessage( Devathlon.prefix + toter.getDisplayName() + " §7wurde von " + killer.getDisplayName() + " §7[§e" + shealth + "❤§7] §7getötet"); PlayerDataClass pDCkiller = Global.re.read(killer.getUniqueId().toString()); pDCkiller.Toetungen += 1; pDCkiller.Punkte += 25; killer.sendMessage(Devathlon.prefix + "§e+ 25 Punkte"); StatsWriter.write(pDCkiller, killer.getUniqueId().toString()); } else { for (Player all : Bukkit.getOnlinePlayers()) all.sendMessage(Devathlon.prefix + toter.getDisplayName() + " §7ist gestorben"); } if (Global.team1.contains(toter)) { Global.pointsteam1 -= 5; } else if (Global.team2.contains(toter)) { Global.pointsteam2 -= 5; } if (Global.team1.contains(toter)) { if (Global.pointsteam2 >= Global.points) { spec(toter); for (Player all : Bukkit.getOnlinePlayers()) all.sendMessage( Devathlon.prefix + "§cTeam Rot §7besitzt noch §e" + Global.team1.size() + " §7Spieler"); if (Global.team1.size() == 0) { for (Player all : Bukkit.getOnlinePlayers()) all.sendMessage(Devathlon.prefix + "§9Team Blau §ahat gewonnen"); for (Player t2 : Global.team2) { PlayerDataClass pDCt2 = Global.re.read(t2.getUniqueId().toString()); pDCt2.SpieleGewonnen += 1; pDCt2.Punkte += 125; StatsWriter.write(pDCt2, t2.getUniqueId().toString()); t2.sendMessage(Devathlon.prefix + "§e+ 125 Punkte"); } Devathlon.Timer = 16; Devathlon.Status = GameStatus.Restarting; } return; } } if (Global.team2.contains(toter)) { if (Global.pointsteam1 >= Global.points) { spec(toter); for (Player all : Bukkit.getOnlinePlayers()) all.sendMessage( Devathlon.prefix + "§9Team Blau §7besitzt noch §e" + Global.team2.size() + " §7Spieler"); if (Global.team2.size() == 0) { for (Player all : Bukkit.getOnlinePlayers()) all.sendMessage(Devathlon.prefix + "§cTeam Rot §ahat gewonnen"); for (Player t1 : Global.team1) { PlayerDataClass pDCt1 = Global.re.read(t1.getUniqueId().toString()); pDCt1.SpieleGewonnen += 1; pDCt1.Punkte += 125; StatsWriter.write(pDCt1, t1.getUniqueId().toString()); t1.sendMessage(Devathlon.prefix + "§e+ 125 Punkte"); } Devathlon.Timer = 16; Devathlon.Status = GameStatus.Restarting; } return; } } toter.sendMessage( Devathlon.prefix + "§3Du konntest respawnen, da das gegnerische Team noch keine " + Global.points + " Punkte erreicht hat"); Bukkit.getScheduler() .runTaskLater( plugin, new Runnable() { @Override public void run() { toter.spigot().respawn(); if (Global.team1.contains(toter)) { toter.teleport(OreBattle_Command.getLocation("spawn1", true)); Devathlon.team1(toter); } else if (Global.team2.contains(toter)) { toter.teleport(OreBattle_Command.getLocation("spawn2", true)); Devathlon.team2(toter); } } }, 30L); // Grace Global.grace.add(toter); if (Global.gracetime != 0) { toter.sendMessage( Devathlon.prefix + "§cDeine Schutzzeit endet in §7[§e" + Global.gracetime + "§7] §cSekunden"); Bukkit.getScheduler() .runTaskLater( plugin, new Runnable() { @Override public void run() { Global.grace.remove(toter); toter.sendMessage(Devathlon.prefix + "§cDeine Schutzzeit ist vorbei!"); } }, 20L * Global.gracetime); } }