Advertisement
TechManDylan

DeadMansChestListener

Jun 24th, 2012
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.45 KB | None | 0 0
  1. package me.TechManDylan.bukkit.DeadMansChest;
  2.  
  3. import java.util.List;
  4.  
  5. import org.bukkit.Location;
  6. import org.bukkit.Material;
  7. import org.bukkit.block.Block;
  8. import org.bukkit.block.BlockFace;
  9. import org.bukkit.block.Chest;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.event.EventHandler;
  12. import org.bukkit.event.EventPriority;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.entity.PlayerDeathEvent;
  15. import org.bukkit.inventory.ItemStack;
  16.  
  17. public class DeadMansChestListener implements Listener {
  18.     public ItemStack[] toItemStack(List<ItemStack> list) {
  19.         ItemStack[] items = new ItemStack[list.size()];
  20.         int index = 0;
  21.         for (ItemStack i : list) {
  22.             items[index] = i;
  23.             index++;
  24.         }
  25.         return items;
  26.     }
  27.  
  28.     @EventHandler(priority = EventPriority.HIGH)
  29.     public void PlayerDeath(PlayerDeathEvent event) {
  30.         Player player = event.getEntity();
  31.         Location loc = player.getLocation();
  32.         Block block = loc.getBlock();
  33.         Material nblock = block.getRelative(BlockFace.NORTH).getLocation().getBlock().getType();
  34.         Material eblock = block.getRelative(BlockFace.EAST).getLocation().getBlock().getType();
  35.         Material sblock = block.getRelative(BlockFace.SOUTH).getLocation().getBlock().getType();
  36.         Material wblock = block.getRelative(BlockFace.WEST).getLocation().getBlock().getType();
  37.         Material mat = block.getType();
  38.         Chest c = (Chest) loc.getBlock().getState();
  39.         player.sendMessage("You died at " + "X: " + loc.getBlockX() + " Y: " + loc.getBlockY() + " Z: " + loc.getBlockZ() + " on a " + block.getType().toString() + " block.");
  40.         if (player.getInventory().contains(Material.CHEST)) {
  41.             if (player.getInventory().getContents().length <= 27) {
  42.  
  43.                 if (mat.equals(Material.AIR)) {
  44.                     loc.getBlock().setType(Material.CHEST);
  45.                 } else {
  46.                     if (mat.equals(Material.SAPLING)
  47.                             || mat.equals(Material.BED)
  48.                             || mat.equals(Material.POWERED_RAIL)
  49.                             || mat.equals(Material.DETECTOR_RAIL)
  50.                             || mat.equals(Material.WEB)
  51.                             || mat.equals(Material.LONG_GRASS)
  52.                             || mat.equals(Material.DEAD_BUSH)
  53.                             || mat.equals(Material.YELLOW_FLOWER)
  54.                             || mat.equals(Material.RED_ROSE)
  55.                             || mat.equals(Material.BROWN_MUSHROOM)
  56.                             || mat.equals(Material.RED_MUSHROOM)
  57.                             || mat.equals(Material.STEP)
  58.                             || mat.equals(Material.TORCH)
  59.                             || mat.equals(Material.WOOD_STAIRS)
  60.                             || mat.equals(Material.REDSTONE_WIRE)
  61.                             || mat.equals(Material.CROPS)
  62.                             || mat.equals(Material.SOIL)
  63.                             || mat.equals(Material.RAILS)
  64.                             || mat.equals(Material.COBBLESTONE_STAIRS)
  65.                             || mat.equals(Material.STONE_PLATE)
  66.                             || mat.equals(Material.WOOD_PLATE)
  67.                             || mat.equals(Material.CAKE_BLOCK)
  68.                             || mat.equals(Material.DIODE_BLOCK_OFF)
  69.                             || mat.equals(Material.DIODE_BLOCK_ON)
  70.                             || mat.equals(Material.PUMPKIN_STEM)
  71.                             || mat.equals(Material.MELON_STEM)
  72.                             || mat.equals(Material.BRICK_STAIRS)
  73.                             || mat.equals(Material.SMOOTH_STAIRS)
  74.                             || mat.equals(Material.WATER_LILY)
  75.                             || mat.equals(Material.NETHER_BRICK_STAIRS)
  76.                             || mat.equals(Material.NETHER_STALK)
  77.                             || mat.equals(Material.NETHER_WARTS)
  78.                             || mat.equals(Material.BREWING_STAND)
  79.                             || mat.equals(Material.CAULDRON)
  80.                             || mat.equals(Material.ENDER_PORTAL)
  81.                             || mat.equals(Material.ENDER_PORTAL_FRAME)
  82.                             || mat.equals(Material.DRAGON_EGG)) {
  83.                         player.sendMessage("You were standing on a non solid block when you died so placed the chest up block higher.");
  84.                         loc.setY(loc.getBlockY() + 1);
  85.                         loc.getBlock().setType(Material.CHEST);
  86.                     } else {
  87.                         if (mat.equals(63) || mat.equals(64) || mat.equals(65)
  88.                                 || mat.equals(68) || mat.equals(69)
  89.                                 || mat.equals(71) || mat.equals(77)
  90.                                 || mat.equals(83) || mat.equals(85)
  91.                                 || mat.equals(90) || mat.equals(96)
  92.                                 || mat.equals(101) || mat.equals(102)
  93.                                 || mat.equals(106) || mat.equals(107)
  94.                                 || mat.equals(113) || mat.equals(127)
  95.                                 || mat.equals(131) || mat.equals(132)) {
  96.                             if (nblock.equals(Material.AIR)) {
  97.                                 block.setType(Material.CHEST);
  98.                             } else {
  99.                                 if (eblock.equals(Material.AIR)) {
  100.                                     block.setType(Material.CHEST);
  101.                                 } else {
  102.                                     if (sblock.equals(Material.AIR)) {
  103.                                         block.setType(Material.CHEST);
  104.                                     } else {
  105.                                         if (wblock.equals(Material.AIR)) {
  106.                                             block.setType(Material.CHEST);
  107.                                         }
  108.                                     }
  109.                                 }
  110.                             }
  111.                         }
  112.                     }
  113.                 }
  114.             }
  115.         } else {
  116.         }
  117.     }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement