From 1e16c29e49fd8c88de0ea6357f7140a9a60c3cf6 Mon Sep 17 00:00:00 2001 From: MedicOP Date: Mon, 16 Sep 2019 23:17:30 +0200 Subject: [PATCH] Add GenBucketPlaceEvent --- .../genbucket/event/GenBucketPlaceEvent.java | 65 +++++++++++++++++++ .../genbucket/listeners/PlayerListener.java | 7 ++ 2 files changed, 72 insertions(+) create mode 100644 GenBucketPlugin/src/main/java/codes/biscuit/genbucket/event/GenBucketPlaceEvent.java diff --git a/GenBucketPlugin/src/main/java/codes/biscuit/genbucket/event/GenBucketPlaceEvent.java b/GenBucketPlugin/src/main/java/codes/biscuit/genbucket/event/GenBucketPlaceEvent.java new file mode 100644 index 0000000..f99ee68 --- /dev/null +++ b/GenBucketPlugin/src/main/java/codes/biscuit/genbucket/event/GenBucketPlaceEvent.java @@ -0,0 +1,65 @@ +package codes.biscuit.genbucket.event; + +import codes.biscuit.genbucket.utils.Bucket; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.bukkit.inventory.ItemStack; + +public class GenBucketPlaceEvent extends Event implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + + private final Player player; + private final Bucket bucket; + private final Block block; + private final BlockFace direction; + private final ItemStack removeItem; + private boolean cancelled; + + public GenBucketPlaceEvent(Player player, Bucket bucket, Block block, BlockFace direction, ItemStack removeItem) { + this.player = player; + this.bucket = bucket; + this.block = block; + this.direction = direction; + this.removeItem = removeItem; + } + + public Player getPlayer() { + return player; + } + + public Bucket getBucket() { + return bucket; + } + + public Block getBlock() { + return block; + } + + public BlockFace getDirection() { + return direction; + } + + public ItemStack getRemoveItem() { + return removeItem; + } + + @Override + public HandlerList getHandlers() { + return handlers; + } + + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } +} diff --git a/GenBucketPlugin/src/main/java/codes/biscuit/genbucket/listeners/PlayerListener.java b/GenBucketPlugin/src/main/java/codes/biscuit/genbucket/listeners/PlayerListener.java index 6aa47ae..0d20b62 100644 --- a/GenBucketPlugin/src/main/java/codes/biscuit/genbucket/listeners/PlayerListener.java +++ b/GenBucketPlugin/src/main/java/codes/biscuit/genbucket/listeners/PlayerListener.java @@ -1,8 +1,10 @@ package codes.biscuit.genbucket.listeners; import codes.biscuit.genbucket.GenBucket; +import codes.biscuit.genbucket.event.GenBucketPlaceEvent; import codes.biscuit.genbucket.timers.GenningTimer; import codes.biscuit.genbucket.utils.Bucket; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -100,6 +102,11 @@ private void startGenBucket(Bucket bucket, Player p, Block block, BlockFace dire } return; } + GenBucketPlaceEvent event = new GenBucketPlaceEvent(p, bucket, block, direction, removeItem); + Bukkit.getPluginManager().callEvent(event); + if (event.isCancelled()) { + return; + } switch (bucket.getDirection()) { case UPWARDS: direction = BlockFace.UP;