Class PlayerDeathEvent

All Implemented Interfaces:
Cancellable

public class PlayerDeathEvent extends EntityDeathEvent
Thrown whenever a Player dies
  • Constructor Details

  • Method Details

    • getItemsToKeep

      @NotNull public @NotNull List<ItemStack> getItemsToKeep()
      A mutable collection to add items that the player should retain in their inventory on death (Similar to KeepInventory game rule) You MUST remove the item from the .getDrops() collection too or it will duplicate!
      
          {@literal @EventHandler(ignoreCancelled = true)}
           public void onPlayerDeath(PlayerDeathEvent event) {
               for (Iterator<ItemStack> iterator = event.getDrops().iterator(); iterator.hasNext(); ) {
                   ItemStack drop = iterator.next();
                   List<String> lore = drop.getLore();
                   if (lore != null && !lore.isEmpty()) {
                       if (lore.get(0).contains("(SOULBOUND)")) {
                           iterator.remove();
                           event.getItemsToKeep().add(drop);
                       }
                   }
               }
           }
       
      Adding an item to this list that the player did not previously have will give them the item on death. An example case could be a "Note" that "You died at X/Y/Z coordinates"
      Returns:
      The list to hold items to keep
    • shouldDropExperience

      public boolean shouldDropExperience()
      Returns:
      should experience be dropped from this death
    • setShouldDropExperience

      public void setShouldDropExperience(boolean doExpDrop)
      Parameters:
      doExpDrop - sets if experience should be dropped from this death
    • getEntity

      @NotNull public @NotNull Player getEntity()
      Description copied from class: EntityEvent
      Returns the Entity involved in this event
      Overrides:
      getEntity in class EntityDeathEvent
      Returns:
      Entity who is involved in this event
    • getPlayer

      @NotNull public @NotNull Player getPlayer()
      Clarity method for getting the player. Not really needed except for reasons of clarity.
      Returns:
      Player who is involved in this event
    • deathMessage

      public void deathMessage(@Nullable Component deathMessage)
      Set the death message that will appear to everyone on the server.
      Parameters:
      deathMessage - Message to appear to other players on the server.
    • deathMessage

      @Nullable public Component deathMessage()
      Get the death message that will appear to everyone on the server.
      Returns:
      Message to appear to other players on the server.
    • setDeathMessage

      @Deprecated public void setDeathMessage(@Nullable @Nullable String deathMessage)
      Set the death message that will appear to everyone on the server.
      Parameters:
      deathMessage - Message to appear to other players on the server.
    • getDeathMessage

      @Nullable @Deprecated public @Nullable String getDeathMessage()
      Deprecated.
      in favour of deathMessage()
      Get the death message that will appear to everyone on the server.
      Returns:
      Message to appear to other players on the server.
    • getNewExp

      public int getNewExp()
      Gets how much EXP the Player should have at respawn.

      This does not indicate how much EXP should be dropped, please see EntityDeathEvent.getDroppedExp() for that.

      Returns:
      New EXP of the respawned player
    • setNewExp

      public void setNewExp(int exp)
      Sets how much EXP the Player should have at respawn.

      This does not indicate how much EXP should be dropped, please see EntityDeathEvent.setDroppedExp(int) for that.

      Parameters:
      exp - New EXP of the respawned player
    • getNewLevel

      public int getNewLevel()
      Gets the Level the Player should have at respawn.
      Returns:
      New Level of the respawned player
    • setNewLevel

      public void setNewLevel(int level)
      Sets the Level the Player should have at respawn.
      Parameters:
      level - New Level of the respawned player
    • getNewTotalExp

      public int getNewTotalExp()
      Gets the Total EXP the Player should have at respawn.
      Returns:
      New Total EXP of the respawned player
    • setNewTotalExp

      public void setNewTotalExp(int totalExp)
      Sets the Total EXP the Player should have at respawn.
      Parameters:
      totalExp - New Total EXP of the respawned player
    • getKeepLevel

      public boolean getKeepLevel()
      Gets if the Player should keep all EXP at respawn.

      This flag overrides other EXP settings

      Returns:
      True if Player should keep all pre-death exp
    • setKeepLevel

      public void setKeepLevel(boolean keepLevel)
      Sets if the Player should keep all EXP at respawn.

      This overrides all other EXP settings

      This doesn't prevent the EXP from dropping. EntityDeathEvent.setDroppedExp(int) should be used stop the EXP from dropping.

      Parameters:
      keepLevel - True to keep all current value levels
    • setKeepInventory

      public void setKeepInventory(boolean keepInventory)
      Sets if the Player keeps inventory on death.

      This doesn't prevent the items from dropping. getDrops().clear() should be used stop the items from dropping.

      Parameters:
      keepInventory - True to keep the inventory
    • getKeepInventory

      public boolean getKeepInventory()
      Gets if the Player keeps inventory on death.
      Returns:
      True if the player keeps inventory on death