From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Tue, 24 Dec 2019 00:35:31 +0000 Subject: [PATCH] PlayerDeathEvent#shouldDropExperience diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java index 1e97d04b3f3509f82d4cda1773909f91800bf5bc..3a743430acb5eecc4d8db068fa62fe6d38a249e5 100644 --- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java +++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java @@ -1,6 +1,8 @@ package org.bukkit.event.entity; import java.util.List; + +import org.bukkit.GameMode; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -49,6 +51,23 @@ public class PlayerDeathEvent extends EntityDeathEvent { public List getItemsToKeep() { return itemsToKeep; } + + private boolean doExpDrop; + + /** + * @return should experience be dropped from this death + */ + public boolean shouldDropExperience() { + return doExpDrop; + } + + /** + * @param doExpDrop sets if experience should be dropped from this death + */ + public void setShouldDropExperience(boolean doExpDrop) { + this.doExpDrop = doExpDrop; + } + // Paper end public PlayerDeathEvent(@NotNull final Player player, @NotNull final List drops, final int droppedExp, @Nullable final String deathMessage) { @@ -60,11 +79,17 @@ public class PlayerDeathEvent extends EntityDeathEvent { } public PlayerDeathEvent(@NotNull final Player player, @NotNull final List drops, final int droppedExp, final int newExp, final int newTotalExp, final int newLevel, @Nullable final String deathMessage) { + // Paper start + this(player, drops, droppedExp, newExp, newTotalExp, newLevel, deathMessage, player.getGameMode() != GameMode.SPECTATOR); + } + public PlayerDeathEvent(@NotNull final Player player, @NotNull final List drops, final int droppedExp, final int newExp, final int newTotalExp, final int newLevel, @Nullable final String deathMessage, boolean doExpDrop) { + // Paper end super(player, drops, droppedExp); this.newExp = newExp; this.newTotalExp = newTotalExp; this.newLevel = newLevel; this.deathMessage = deathMessage; + this.doExpDrop = doExpDrop; // Paper } @NotNull