Don't set fire ticks while still in lava

This commit is contained in:
mathiascode 2019-11-13 23:47:17 +02:00
parent d68c8e54d0
commit c2ee4fac7e

View file

@ -35,30 +35,10 @@ class PlayerDamage implements Listener {
void onPlayerDeath(PlayerDeathEvent event) {
final Player player = event.getEntity();
final AttributeInstance maxHealth = player.getAttribute(Attribute.GENERIC_MAX_HEALTH);
boolean maxHealthLow = false;
maxHealth.setBaseValue(20);
try {
player.setHealth(20);
} catch (Exception exception) {
maxHealth.setBaseValue(Double.POSITIVE_INFINITY);
player.setHealth(20);
maxHealth.setBaseValue(20);
maxHealthLow = true;
}
player.setFoodLevel(20);
player.setFireTicks(0);
player.setRemainingAir(player.getMaximumAir());
player.getActivePotionEffects().clear();
event.setCancelled(true);
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
onlinePlayer.sendMessage(event.getDeathMessage());
}
if (maxHealthLow) {
return;
}
player.setHealth(20);
if (player.getBedSpawnLocation() != null) {
player.teleportAsync(player.getBedSpawnLocation());
@ -77,5 +57,20 @@ class PlayerDamage implements Listener {
}
}
}
} catch (Exception exception) {
maxHealth.setBaseValue(Double.POSITIVE_INFINITY);
player.setHealth(20);
maxHealth.setBaseValue(20);
}
player.setFoodLevel(20);
player.setFireTicks(0);
player.setRemainingAir(player.getMaximumAir());
player.getActivePotionEffects().clear();
event.setCancelled(true);
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
onlinePlayer.sendMessage(event.getDeathMessage());
}
}
}