From fa1aad7bf8b118aa410bcd19317fc9964ecfbe47 Mon Sep 17 00:00:00 2001 From: poma123 <25465545+poma123@users.noreply.github.com> Date: Sat, 19 Sep 2020 10:36:27 +0200 Subject: [PATCH] Added AsyncGeneratorProcessCompleteEvent --- .../AsyncGeneratorProcessCompleteEvent.java | 77 +++++++++++++++++++ .../abstractItems/AGenerator.java | 4 + 2 files changed, 81 insertions(+) create mode 100644 src/main/java/io/github/thebusybiscuit/slimefun4/api/events/AsyncGeneratorProcessCompleteEvent.java diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/AsyncGeneratorProcessCompleteEvent.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/AsyncGeneratorProcessCompleteEvent.java new file mode 100644 index 000000000..b1787f351 --- /dev/null +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/AsyncGeneratorProcessCompleteEvent.java @@ -0,0 +1,77 @@ +package io.github.thebusybiscuit.slimefun4.api.events; + +import javax.annotation.Nonnull; +import javax.annotation.ParametersAreNonnullByDefault; + +import org.bukkit.Location; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AGenerator; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; + +/** + * This {@link Event} is fired whenever an {@link AGenerator} has completed its process. + * + * @author poma123 + * + */ +public class AsyncGeneratorProcessCompleteEvent extends Event { + + private static final HandlerList handlers = new HandlerList(); + + private final Location location; + private final AGenerator generator; + private final MachineFuel machineFuel; + + @ParametersAreNonnullByDefault + public AsyncGeneratorProcessCompleteEvent(Location l, AGenerator generator, MachineFuel machineFuel) { + super(true); + + this.location = l; + this.generator = generator; + this.machineFuel = machineFuel; + } + + /** + * This returns the {@link Location} of the generator. + * + * @return The {@link Location} of the generator + */ + @Nonnull + public Location getLocation() { + return location; + } + + /** + * The {@link SlimefunItem} instance of the generator. + * + * @return The {@link SlimefunItem} instance of the generator + */ + @Nonnull + public AGenerator getGenerator() { + return generator; + } + + /** + * This returns the used {@link MachineFuel} in the process. + * + * @return The {@link MachineFuel} of the process + */ + @Nonnull + public MachineFuel getMachineFuel() { + return machineFuel; + } + + @Nonnull + public static HandlerList getHandlerList() { + return handlers; + } + + @Nonnull + @Override + public HandlerList getHandlers() { + return getHandlerList(); + } +} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java index 41a20f16a..5164679ea 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java @@ -3,6 +3,7 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems; import java.util.HashMap; import java.util.Map; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -12,6 +13,7 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction; +import io.github.thebusybiscuit.slimefun4.api.events.AsyncGeneratorProcessCompleteEvent; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; import io.github.thebusybiscuit.slimefun4.implementation.items.electric.AbstractEnergyProvider; @@ -163,6 +165,8 @@ public abstract class AGenerator extends AbstractEnergyProvider { inv.replaceExistingItem(22, new CustomItem(Material.BLACK_STAINED_GLASS_PANE, " ")); + Bukkit.getPluginManager().callEvent(new AsyncGeneratorProcessCompleteEvent(l, AGenerator.this, getProcessing(l))); + progress.remove(l); processing.remove(l); return 0;