diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/event/CraftEngineReloadEvent.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/event/CraftEngineReloadEvent.java new file mode 100644 index 000000000..58d5dea02 --- /dev/null +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/event/CraftEngineReloadEvent.java @@ -0,0 +1,29 @@ +package net.momirealms.craftengine.bukkit.api.event; + +import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; + +public class CraftEngineReloadEvent extends Event { + private static final HandlerList HANDLER_LIST = new HandlerList(); + private final BukkitCraftEngine plugin; + + public CraftEngineReloadEvent(BukkitCraftEngine plugin) { + this.plugin = plugin; + } + + public BukkitCraftEngine plugin() { + return plugin; + } + + @NotNull + public static HandlerList getHandlerList() { + return HANDLER_LIST; + } + + @Override + public @NotNull HandlerList getHandlers() { + return HANDLER_LIST; + } +} diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/BukkitCraftEngine.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/BukkitCraftEngine.java index c575aee96..16ef76ca2 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/BukkitCraftEngine.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/BukkitCraftEngine.java @@ -1,6 +1,7 @@ package net.momirealms.craftengine.bukkit.plugin; import net.momirealms.craftengine.bukkit.api.event.AsyncResourcePackGenerateEvent; +import net.momirealms.craftengine.bukkit.api.event.CraftEngineReloadEvent; import net.momirealms.craftengine.bukkit.block.BukkitBlockManager; import net.momirealms.craftengine.bukkit.block.behavior.BukkitBlockBehaviors; import net.momirealms.craftengine.bukkit.entity.furniture.BukkitFurnitureManager; @@ -166,6 +167,13 @@ public class BukkitCraftEngine extends CraftEngine { if (this.tickTask != null) this.tickTask.cancel(); } + @Override + public void reload() { + super.reload(); + CraftEngineReloadEvent event = new CraftEngineReloadEvent(this); + EventUtils.fireAndForget(event); + } + @Override protected void registerParsers() { // register template parser diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/CustomItem.java b/core/src/main/java/net/momirealms/craftengine/core/item/CustomItem.java index aac09ade2..4f85fe071 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/CustomItem.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/CustomItem.java @@ -22,6 +22,14 @@ public interface CustomItem extends BuildableItem { I buildItemStack(Player player, int count); + default I buildItemStack() { + return buildItemStack(null); + } + + default I buildItemStack(int count) { + return buildItemStack(null, count); + } + ItemSettings settings(); Item buildItem(Player player);