Advertisement
Guest User

Untitled

a guest
Aug 20th, 2021
861
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.99 KB | None | 0 0
  1. package me.codedred.revivesystem.listeners;
  2.  
  3. import me.codedred.revivesystem.models.CorpseEntity;
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.GameMode;
  6. import org.bukkit.Material;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.event.EventHandler;
  9. import org.bukkit.event.Listener;
  10. import org.bukkit.event.entity.EntityDamageEvent;
  11. import org.bukkit.inventory.ItemFlag;
  12. import org.bukkit.inventory.ItemStack;
  13. import org.bukkit.inventory.meta.ItemMeta;
  14.  
  15. import java.util.ArrayList;
  16. import java.util.List;
  17.  
  18. public class PlayerDeath implements Listener {
  19.  
  20.     @EventHandler
  21.     public void onDamage(EntityDamageEvent event) {
  22.         if (event.getEntity() instanceof Player) {
  23.             Player player = (Player) event.getEntity();
  24.             if ((player.getHealth() - event.getDamage()) <= 0) {
  25.                 // cancel damage event
  26.                 event.setCancelled(true);
  27.  
  28.                 // Spawn corpse
  29.                 CorpseEntity.execute(player);
  30.  
  31.                 // Spawn revive potion
  32.                 event.getEntity().getWorld().dropItemNaturally(event.getEntity().getLocation(), getRespawnItem(player));
  33.  
  34.                 // Change player stats
  35.                 player.setHealth(20.0);
  36.                 player.getInventory().clear();
  37.                 player.setGameMode(GameMode.SPECTATOR);
  38.  
  39.             }
  40.         }
  41.     }
  42.  
  43.     /***
  44.      * Returns a respawn potion for dead player
  45.      * @param player - dead player
  46.      * @return - ItemStack potion
  47.      */
  48.     private ItemStack getRespawnItem(Player player) {
  49.         ItemStack potion = new ItemStack(Material.POTION);
  50.         ItemMeta meta = potion.getItemMeta();
  51.         meta.setDisplayName(ChatColor.AQUA + "" + ChatColor.BOLD + player.getName());
  52.  
  53.         meta.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS);
  54.  
  55.         List<String> lore = new ArrayList<>();
  56.         lore.add(ChatColor.GRAY + "Use at a Respawn tower!");
  57.         meta.setLore(lore);
  58.         potion.setItemMeta(meta);
  59.         return potion;
  60.     }
  61.  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement