Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package leaked;
- import org.bukkit.*;
- import org.bukkit.block.*;
- import org.bukkit.entity.*;
- import org.bukkit.event.*;
- import org.bukkit.event.block.*;
- import org.bukkit.event.entity.*;
- import org.bukkit.inventory.*;
- import org.bukkit.plugin.java.*;
- import org.bukkit.scheduler.*;
- import java.util.*;
- import static org.bukkit.Material.*;
- public class Main extends JavaPlugin implements Listener {
- Map<Player, List<BukkitTask>> tasks = new WeakHashMap<>();
- Set<Block> blocks = new HashSet<>();
- @Override
- public void onEnable() {
- Bukkit.getPluginManager().registerEvents(this, this);
- }
- @EventHandler(priority = EventPriority.MONITOR)
- public void onPlace(BlockPlaceEvent event) {
- Block block = event.getBlockPlaced();
- if (block == null) {
- return;
- }
- if (block.getType() != WOOD) {
- return;
- }
- event.setCancelled(false);
- Bukkit.getScheduler().runTaskLater(this, () -> {
- block.setType(AIR);
- blocks.remove(block);
- }, 15 * 20);
- BukkitTask task = Bukkit.getScheduler().runTaskLater(this, () -> event.getPlayer().getInventory().addItem(new ItemStack(WOOD, 1)), 15 * 20);
- List<BukkitTask> list = tasks.get(event.getPlayer());
- if (list == null) {
- list = new ArrayList<>();
- list.add(task);
- tasks.put(event.getPlayer(), list);
- }
- else {
- list.add(task);
- }
- }
- @EventHandler(priority = EventPriority.MONITOR)
- public void onBreak(BlockBreakEvent event) {
- Block block = event.getBlock();
- if (block.getType() != WOOD) {
- return;
- }
- ItemStack item = event.getPlayer().getItemInHand();
- if (item == null) {
- return;
- }
- Material type = item.getType();
- if (type != WOOD_AXE && type != STONE_AXE && type != IRON_AXE && type != DIAMOND_AXE && type != GOLD_AXE) {
- return;
- }
- if (blocks.contains(block)) {
- event.setCancelled(true);
- block.setType(Material.AIR);
- blocks.remove(block);
- }
- }
- @EventHandler(priority = EventPriority.MONITOR)
- public void onDie(PlayerDeathEvent event) {
- Player player = event.getEntity();
- List<BukkitTask> tasks = this.tasks.get(player);
- if (tasks == null) {
- return;
- }
- for (BukkitTask task : tasks) {
- task.cancel();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement