Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. package leaked;
  2.  
  3. import org.bukkit.*;
  4. import org.bukkit.block.*;
  5. import org.bukkit.entity.*;
  6. import org.bukkit.event.*;
  7. import org.bukkit.event.block.*;
  8. import org.bukkit.event.entity.*;
  9. import org.bukkit.inventory.*;
  10. import org.bukkit.plugin.java.*;
  11. import org.bukkit.scheduler.*;
  12.  
  13. import java.util.*;
  14.  
  15. import static org.bukkit.Material.*;
  16.  
  17. public class Main extends JavaPlugin implements Listener {
  18.  
  19. Map<Player, List<BukkitTask>> tasks = new WeakHashMap<>();
  20. Set<Block> blocks = new HashSet<>();
  21.  
  22. @Override
  23. public void onEnable() {
  24. Bukkit.getPluginManager().registerEvents(this, this);
  25. }
  26.  
  27. @EventHandler(priority = EventPriority.MONITOR)
  28. public void onPlace(BlockPlaceEvent event) {
  29. Block block = event.getBlockPlaced();
  30. if (block == null) {
  31. return;
  32. }
  33. if (block.getType() != WOOD) {
  34. return;
  35. }
  36. event.setCancelled(false);
  37. Bukkit.getScheduler().runTaskLater(this, () -> {
  38. block.setType(AIR);
  39. blocks.remove(block);
  40. }, 15 * 20);
  41. BukkitTask task = Bukkit.getScheduler().runTaskLater(this, () -> event.getPlayer().getInventory().addItem(new ItemStack(WOOD, 1)), 15 * 20);
  42. List<BukkitTask> list = tasks.get(event.getPlayer());
  43. if (list == null) {
  44. list = new ArrayList<>();
  45. list.add(task);
  46. tasks.put(event.getPlayer(), list);
  47. }
  48. else {
  49. list.add(task);
  50. }
  51. }
  52.  
  53. @EventHandler(priority = EventPriority.MONITOR)
  54. public void onBreak(BlockBreakEvent event) {
  55. Block block = event.getBlock();
  56. if (block.getType() != WOOD) {
  57. return;
  58. }
  59. ItemStack item = event.getPlayer().getItemInHand();
  60. if (item == null) {
  61. return;
  62. }
  63. Material type = item.getType();
  64. if (type != WOOD_AXE && type != STONE_AXE && type != IRON_AXE && type != DIAMOND_AXE && type != GOLD_AXE) {
  65. return;
  66. }
  67. if (blocks.contains(block)) {
  68. event.setCancelled(true);
  69. block.setType(Material.AIR);
  70. blocks.remove(block);
  71. }
  72. }
  73.  
  74. @EventHandler(priority = EventPriority.MONITOR)
  75. public void onDie(PlayerDeathEvent event) {
  76. Player player = event.getEntity();
  77. List<BukkitTask> tasks = this.tasks.get(player);
  78. if (tasks == null) {
  79. return;
  80. }
  81. for (BukkitTask task : tasks) {
  82. task.cancel();
  83. }
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement