diff --git a/api/src/main/java/io/github/hyscript7/ascendancy/api/AscendancyAPI.java b/api/src/main/java/io/github/hyscript7/ascendancy/api/AscendancyAPI.java index ba94c2e..34708d9 100644 --- a/api/src/main/java/io/github/hyscript7/ascendancy/api/AscendancyAPI.java +++ b/api/src/main/java/io/github/hyscript7/ascendancy/api/AscendancyAPI.java @@ -1,4 +1,5 @@ package io.github.hyscript7.ascendancy.api; + import org.bukkit.Bukkit; import org.bukkit.plugin.ServicePriority; import java.util.Optional; diff --git a/api/src/main/java/io/github/hyscript7/ascendancy/api/events/AscendancyDisabledEvent.java b/api/src/main/java/io/github/hyscript7/ascendancy/api/events/AscendancyDisabledEvent.java new file mode 100644 index 0000000..e1e6f1a --- /dev/null +++ b/api/src/main/java/io/github/hyscript7/ascendancy/api/events/AscendancyDisabledEvent.java @@ -0,0 +1,17 @@ +package io.github.hyscript7.ascendancy.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +public class AscendancyDisabledEvent extends Event{ + private static final HandlerList HANDLER_LIST = new HandlerList(); + + public static HandlerList getHandlerList() { + return HANDLER_LIST; + } + + @Override + public HandlerList getHandlers() { + return HANDLER_LIST; + } +} diff --git a/api/src/main/java/io/github/hyscript7/ascendancy/api/events/AscendancyEnabledEvent.java b/api/src/main/java/io/github/hyscript7/ascendancy/api/events/AscendancyEnabledEvent.java new file mode 100644 index 0000000..99e5116 --- /dev/null +++ b/api/src/main/java/io/github/hyscript7/ascendancy/api/events/AscendancyEnabledEvent.java @@ -0,0 +1,30 @@ +package io.github.hyscript7.ascendancy.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import io.github.hyscript7.ascendancy.api.AscendancyAPI; + +public class AscendancyEnabledEvent extends Event { + + private static final HandlerList HANDLER_LIST = new HandlerList(); + private final AscendancyAPI api; + + public AscendancyEnabledEvent(AscendancyAPI api) { + this.api = api; + } + + public AscendancyAPI getApi() { + return api; + } + + + public static HandlerList getHandlerList() { + return HANDLER_LIST; + } + + @Override + public HandlerList getHandlers() { + return HANDLER_LIST; + } +} \ No newline at end of file diff --git a/core/src/main/java/io/github/hyscript7/ascendancy/AscendancyPlugin.java b/core/src/main/java/io/github/hyscript7/ascendancy/AscendancyPlugin.java index 4a9a8c7..bcb261e 100644 --- a/core/src/main/java/io/github/hyscript7/ascendancy/AscendancyPlugin.java +++ b/core/src/main/java/io/github/hyscript7/ascendancy/AscendancyPlugin.java @@ -1,13 +1,25 @@ package io.github.hyscript7.ascendancy; +import io.github.hyscript7.ascendancy.api.AscendancyAPI; +import io.github.hyscript7.ascendancy.api.events.AscendancyDisabledEvent; +import io.github.hyscript7.ascendancy.api.events.AscendancyEnabledEvent; import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.Bukkit; public class AscendancyPlugin extends JavaPlugin { @Override public void onEnable() { + // All remaining code goes above enable event, event is called when plugin is completely ready + AscendancyAPI api = new AscendancyAPI(){ + + }; + AscendancyAPI.set(api, this); + Bukkit.getPluginManager().callEvent(new AscendancyEnabledEvent(api)); } @Override public void onDisable() { + Bukkit.getPluginManager().callEvent(new AscendancyDisabledEvent()); + // All remaining code goes under disable event, event is called when plugin starts shutting down } }