Implement PluginEvent API
This commit is contained in:
parent
7004a2cd80
commit
c787bcfe3c
17 changed files with 250 additions and 1 deletions
|
|
@ -0,0 +1,23 @@
|
||||||
|
package net.frankheijden.serverutils.bukkit.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginDisableEvent;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
public class BukkitPluginDisableEvent extends BukkitPluginEvent implements PluginDisableEvent<Plugin> {
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public BukkitPluginDisableEvent(Plugin plugin, Stage stage) {
|
||||||
|
super(plugin, stage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package net.frankheijden.serverutils.bukkit.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginEnableEvent;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
public class BukkitPluginEnableEvent extends BukkitPluginEvent implements PluginEnableEvent<Plugin> {
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public BukkitPluginEnableEvent(Plugin plugin, Stage stage) {
|
||||||
|
super(plugin, stage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
package net.frankheijden.serverutils.bukkit.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginEvent;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
public abstract class BukkitPluginEvent extends Event implements PluginEvent<Plugin> {
|
||||||
|
|
||||||
|
private final Plugin plugin;
|
||||||
|
private final Stage stage;
|
||||||
|
|
||||||
|
protected BukkitPluginEvent(Plugin plugin, Stage stage) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
this.stage = stage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Plugin getPlugin() {
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Stage getStage() {
|
||||||
|
return stage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package net.frankheijden.serverutils.bukkit.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginLoadEvent;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
public class BukkitPluginLoadEvent extends BukkitPluginEvent implements PluginLoadEvent<Plugin> {
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public BukkitPluginLoadEvent(Plugin plugin, Stage stage) {
|
||||||
|
super(plugin, stage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package net.frankheijden.serverutils.bukkit.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginUnloadEvent;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
public class BukkitPluginUnloadEvent extends BukkitPluginEvent implements PluginUnloadEvent<Plugin> {
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
public BukkitPluginUnloadEvent(Plugin plugin, Stage stage) {
|
||||||
|
super(plugin, stage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -13,6 +13,10 @@ import java.util.Set;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import net.frankheijden.serverutils.bukkit.entities.BukkitLoadResult;
|
import net.frankheijden.serverutils.bukkit.entities.BukkitLoadResult;
|
||||||
|
import net.frankheijden.serverutils.bukkit.events.BukkitPluginDisableEvent;
|
||||||
|
import net.frankheijden.serverutils.bukkit.events.BukkitPluginEnableEvent;
|
||||||
|
import net.frankheijden.serverutils.bukkit.events.BukkitPluginLoadEvent;
|
||||||
|
import net.frankheijden.serverutils.bukkit.events.BukkitPluginUnloadEvent;
|
||||||
import net.frankheijden.serverutils.bukkit.reflection.RCommandMap;
|
import net.frankheijden.serverutils.bukkit.reflection.RCommandMap;
|
||||||
import net.frankheijden.serverutils.bukkit.reflection.RCraftServer;
|
import net.frankheijden.serverutils.bukkit.reflection.RCraftServer;
|
||||||
import net.frankheijden.serverutils.bukkit.reflection.RCraftingManager;
|
import net.frankheijden.serverutils.bukkit.reflection.RCraftingManager;
|
||||||
|
|
@ -22,6 +26,7 @@ import net.frankheijden.serverutils.bukkit.reflection.RPluginClassLoader;
|
||||||
import net.frankheijden.serverutils.bukkit.reflection.RSimplePluginManager;
|
import net.frankheijden.serverutils.bukkit.reflection.RSimplePluginManager;
|
||||||
import net.frankheijden.serverutils.common.entities.CloseableResult;
|
import net.frankheijden.serverutils.common.entities.CloseableResult;
|
||||||
import net.frankheijden.serverutils.common.entities.Result;
|
import net.frankheijden.serverutils.common.entities.Result;
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginEvent;
|
||||||
import net.frankheijden.serverutils.common.managers.AbstractPluginManager;
|
import net.frankheijden.serverutils.common.managers.AbstractPluginManager;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
|
|
@ -87,7 +92,9 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin == null) return new BukkitLoadResult(Result.INVALID_PLUGIN);
|
if (plugin == null) return new BukkitLoadResult(Result.INVALID_PLUGIN);
|
||||||
|
Bukkit.getPluginManager().callEvent(new BukkitPluginLoadEvent(plugin, PluginEvent.Stage.PRE));
|
||||||
plugin.onLoad();
|
plugin.onLoad();
|
||||||
|
Bukkit.getPluginManager().callEvent(new BukkitPluginLoadEvent(plugin, PluginEvent.Stage.POST));
|
||||||
return new BukkitLoadResult(plugin);
|
return new BukkitLoadResult(plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,6 +116,7 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
|
||||||
public Result disablePlugin(Plugin plugin) {
|
public Result disablePlugin(Plugin plugin) {
|
||||||
if (plugin == null) return Result.NOT_ENABLED;
|
if (plugin == null) return Result.NOT_ENABLED;
|
||||||
if (!plugin.isEnabled()) return Result.ALREADY_DISABLED;
|
if (!plugin.isEnabled()) return Result.ALREADY_DISABLED;
|
||||||
|
Bukkit.getPluginManager().callEvent(new BukkitPluginDisableEvent(plugin, PluginEvent.Stage.PRE));
|
||||||
try {
|
try {
|
||||||
Bukkit.getPluginManager().disablePlugin(plugin);
|
Bukkit.getPluginManager().disablePlugin(plugin);
|
||||||
RCraftingManager.removeRecipesFor(plugin);
|
RCraftingManager.removeRecipesFor(plugin);
|
||||||
|
|
@ -117,6 +125,7 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
|
||||||
return Result.ERROR;
|
return Result.ERROR;
|
||||||
}
|
}
|
||||||
unregisterCommands(plugin);
|
unregisterCommands(plugin);
|
||||||
|
Bukkit.getPluginManager().callEvent(new BukkitPluginDisableEvent(plugin, PluginEvent.Stage.POST));
|
||||||
return Result.SUCCESS;
|
return Result.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -138,6 +147,7 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
|
||||||
@Override
|
@Override
|
||||||
public CloseableResult unloadPlugin(Plugin plugin) {
|
public CloseableResult unloadPlugin(Plugin plugin) {
|
||||||
if (plugin == null) return new CloseableResult(Result.NOT_EXISTS);
|
if (plugin == null) return new CloseableResult(Result.NOT_EXISTS);
|
||||||
|
Bukkit.getPluginManager().callEvent(new BukkitPluginUnloadEvent(plugin, PluginEvent.Stage.PRE));
|
||||||
List<Closeable> closeables = new ArrayList<>();
|
List<Closeable> closeables = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
RSimplePluginManager.getPlugins(Bukkit.getPluginManager()).remove(plugin);
|
RSimplePluginManager.getPlugins(Bukkit.getPluginManager()).remove(plugin);
|
||||||
|
|
@ -155,6 +165,7 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
return new CloseableResult(Result.ERROR);
|
return new CloseableResult(Result.ERROR);
|
||||||
}
|
}
|
||||||
|
Bukkit.getPluginManager().callEvent(new BukkitPluginUnloadEvent(plugin, PluginEvent.Stage.POST));
|
||||||
return new CloseableResult(closeables);
|
return new CloseableResult(closeables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -183,10 +194,13 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
|
||||||
if (plugin == null) return Result.NOT_EXISTS;
|
if (plugin == null) return Result.NOT_EXISTS;
|
||||||
if (Bukkit.getPluginManager().isPluginEnabled(plugin.getName())) return Result.ALREADY_ENABLED;
|
if (Bukkit.getPluginManager().isPluginEnabled(plugin.getName())) return Result.ALREADY_ENABLED;
|
||||||
|
|
||||||
|
Bukkit.getPluginManager().callEvent(new BukkitPluginEnableEvent(plugin, PluginEvent.Stage.PRE));
|
||||||
Bukkit.getPluginManager().enablePlugin(plugin);
|
Bukkit.getPluginManager().enablePlugin(plugin);
|
||||||
RCraftServer.syncCommands();
|
RCraftServer.syncCommands();
|
||||||
|
|
||||||
return Bukkit.getPluginManager().isPluginEnabled(plugin.getName()) ? Result.SUCCESS : Result.ERROR;
|
if (!Bukkit.getPluginManager().isPluginEnabled(plugin.getName())) return Result.ERROR;
|
||||||
|
Bukkit.getPluginManager().callEvent(new BukkitPluginEnableEvent(plugin, PluginEvent.Stage.POST));
|
||||||
|
return Result.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package net.frankheijden.serverutils.bungee.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginDisableEvent;
|
||||||
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
|
|
||||||
|
public class BungeePluginDisableEvent extends BungeePluginEvent implements PluginDisableEvent<Plugin> {
|
||||||
|
|
||||||
|
public BungeePluginDisableEvent(Plugin plugin, Stage stage) {
|
||||||
|
super(plugin, stage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package net.frankheijden.serverutils.bungee.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginEnableEvent;
|
||||||
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
|
|
||||||
|
public class BungeePluginEnableEvent extends BungeePluginEvent implements PluginEnableEvent<Plugin> {
|
||||||
|
|
||||||
|
public BungeePluginEnableEvent(Plugin plugin, Stage stage) {
|
||||||
|
super(plugin, stage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
package net.frankheijden.serverutils.bungee.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginEvent;
|
||||||
|
import net.md_5.bungee.api.plugin.Event;
|
||||||
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
|
|
||||||
|
public abstract class BungeePluginEvent extends Event implements PluginEvent<Plugin> {
|
||||||
|
|
||||||
|
private final Plugin plugin;
|
||||||
|
private final Stage stage;
|
||||||
|
|
||||||
|
protected BungeePluginEvent(Plugin plugin, Stage stage) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
this.stage = stage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Plugin getPlugin() {
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Stage getStage() {
|
||||||
|
return stage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package net.frankheijden.serverutils.bungee.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginLoadEvent;
|
||||||
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
|
|
||||||
|
public class BungeePluginLoadEvent extends BungeePluginEvent implements PluginLoadEvent<Plugin> {
|
||||||
|
|
||||||
|
public BungeePluginLoadEvent(Plugin plugin, Stage stage) {
|
||||||
|
super(plugin, stage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package net.frankheijden.serverutils.bungee.events;
|
||||||
|
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginUnloadEvent;
|
||||||
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
|
|
||||||
|
public class BungeePluginUnloadEvent extends BungeePluginEvent implements PluginUnloadEvent<Plugin> {
|
||||||
|
|
||||||
|
public BungeePluginUnloadEvent(Plugin plugin, Stage stage) {
|
||||||
|
super(plugin, stage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -17,10 +17,15 @@ import java.util.jar.JarFile;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import net.frankheijden.serverutils.bungee.entities.BungeeLoadResult;
|
import net.frankheijden.serverutils.bungee.entities.BungeeLoadResult;
|
||||||
|
import net.frankheijden.serverutils.bungee.events.BungeePluginDisableEvent;
|
||||||
|
import net.frankheijden.serverutils.bungee.events.BungeePluginEnableEvent;
|
||||||
|
import net.frankheijden.serverutils.bungee.events.BungeePluginLoadEvent;
|
||||||
|
import net.frankheijden.serverutils.bungee.events.BungeePluginUnloadEvent;
|
||||||
import net.frankheijden.serverutils.bungee.reflection.RPluginClassLoader;
|
import net.frankheijden.serverutils.bungee.reflection.RPluginClassLoader;
|
||||||
import net.frankheijden.serverutils.bungee.reflection.RPluginManager;
|
import net.frankheijden.serverutils.bungee.reflection.RPluginManager;
|
||||||
import net.frankheijden.serverutils.common.entities.CloseableResult;
|
import net.frankheijden.serverutils.common.entities.CloseableResult;
|
||||||
import net.frankheijden.serverutils.common.entities.Result;
|
import net.frankheijden.serverutils.common.entities.Result;
|
||||||
|
import net.frankheijden.serverutils.common.events.PluginEvent;
|
||||||
import net.frankheijden.serverutils.common.managers.AbstractPluginManager;
|
import net.frankheijden.serverutils.common.managers.AbstractPluginManager;
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
import net.md_5.bungee.api.plugin.Plugin;
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
|
|
@ -84,10 +89,12 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
|
||||||
Plugin plugin = (Plugin) main.getDeclaredConstructor().newInstance();
|
Plugin plugin = (Plugin) main.getDeclaredConstructor().newInstance();
|
||||||
|
|
||||||
RPluginManager.getPlugins(proxy.getPluginManager()).put(desc.getName(), plugin);
|
RPluginManager.getPlugins(proxy.getPluginManager()).put(desc.getName(), plugin);
|
||||||
|
proxy.getPluginManager().callEvent(new BungeePluginLoadEvent(plugin, PluginEvent.Stage.PRE));
|
||||||
plugin.onLoad();
|
plugin.onLoad();
|
||||||
proxy.getLogger().log(Level.INFO, "Loaded plugin {0} version {1} by {2}", new Object[] {
|
proxy.getLogger().log(Level.INFO, "Loaded plugin {0} version {1} by {2}", new Object[] {
|
||||||
desc.getName(), desc.getVersion(), desc.getAuthor()
|
desc.getName(), desc.getVersion(), desc.getAuthor()
|
||||||
});
|
});
|
||||||
|
proxy.getPluginManager().callEvent(new BungeePluginLoadEvent(plugin, PluginEvent.Stage.POST));
|
||||||
return new BungeeLoadResult(plugin);
|
return new BungeeLoadResult(plugin);
|
||||||
} catch (Throwable th) {
|
} catch (Throwable th) {
|
||||||
proxy.getLogger().log(Level.WARNING, "Error loading plugin " + desc.getName(), th);
|
proxy.getLogger().log(Level.WARNING, "Error loading plugin " + desc.getName(), th);
|
||||||
|
|
@ -99,10 +106,12 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
|
||||||
public Result enablePlugin(Plugin plugin) {
|
public Result enablePlugin(Plugin plugin) {
|
||||||
PluginDescription desc = plugin.getDescription();
|
PluginDescription desc = plugin.getDescription();
|
||||||
String name = desc.getName();
|
String name = desc.getName();
|
||||||
|
proxy.getPluginManager().callEvent(new BungeePluginEnableEvent(plugin, PluginEvent.Stage.PRE));
|
||||||
try {
|
try {
|
||||||
plugin.onEnable();
|
plugin.onEnable();
|
||||||
Object[] args = new Object[] { name, desc.getVersion(), desc.getAuthor() };
|
Object[] args = new Object[] { name, desc.getVersion(), desc.getAuthor() };
|
||||||
proxy.getLogger().log(Level.INFO, "Enabled plugin {0} version {1} by {2}", args);
|
proxy.getLogger().log(Level.INFO, "Enabled plugin {0} version {1} by {2}", args);
|
||||||
|
proxy.getPluginManager().callEvent(new BungeePluginEnableEvent(plugin, PluginEvent.Stage.POST));
|
||||||
return Result.SUCCESS;
|
return Result.SUCCESS;
|
||||||
} catch (Throwable th) {
|
} catch (Throwable th) {
|
||||||
proxy.getLogger().log(Level.WARNING, "Exception encountered when loading plugin: " + name, th);
|
proxy.getLogger().log(Level.WARNING, "Exception encountered when loading plugin: " + name, th);
|
||||||
|
|
@ -114,8 +123,10 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
|
||||||
public Result disablePlugin(Plugin plugin) {
|
public Result disablePlugin(Plugin plugin) {
|
||||||
PluginDescription desc = plugin.getDescription();
|
PluginDescription desc = plugin.getDescription();
|
||||||
String name = desc.getName();
|
String name = desc.getName();
|
||||||
|
proxy.getPluginManager().callEvent(new BungeePluginDisableEvent(plugin, PluginEvent.Stage.PRE));
|
||||||
try {
|
try {
|
||||||
plugin.onDisable();
|
plugin.onDisable();
|
||||||
|
proxy.getPluginManager().callEvent(new BungeePluginDisableEvent(plugin, PluginEvent.Stage.POST));
|
||||||
return Result.SUCCESS;
|
return Result.SUCCESS;
|
||||||
} catch (Throwable th) {
|
} catch (Throwable th) {
|
||||||
proxy.getLogger().log(Level.WARNING, "Exception encountered when disabling plugin: " + name, th);
|
proxy.getLogger().log(Level.WARNING, "Exception encountered when disabling plugin: " + name, th);
|
||||||
|
|
@ -154,6 +165,7 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CloseableResult unloadPlugin(Plugin plugin) {
|
public CloseableResult unloadPlugin(Plugin plugin) {
|
||||||
|
proxy.getPluginManager().callEvent(new BungeePluginUnloadEvent(plugin, PluginEvent.Stage.PRE));
|
||||||
plugin.onDisable();
|
plugin.onDisable();
|
||||||
proxy.getPluginManager().unregisterCommands(plugin);
|
proxy.getPluginManager().unregisterCommands(plugin);
|
||||||
proxy.getPluginManager().unregisterListeners(plugin);
|
proxy.getPluginManager().unregisterListeners(plugin);
|
||||||
|
|
@ -167,6 +179,7 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
return new CloseableResult(Result.ERROR);
|
return new CloseableResult(Result.ERROR);
|
||||||
}
|
}
|
||||||
|
proxy.getPluginManager().callEvent(new BungeePluginUnloadEvent(plugin, PluginEvent.Stage.POST));
|
||||||
return new CloseableResult(closeables);
|
return new CloseableResult(closeables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
package net.frankheijden.serverutils.common.events;
|
||||||
|
|
||||||
|
public interface PluginDisableEvent<T> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
package net.frankheijden.serverutils.common.events;
|
||||||
|
|
||||||
|
public interface PluginEnableEvent<T> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
package net.frankheijden.serverutils.common.events;
|
||||||
|
|
||||||
|
public interface PluginEvent<T> {
|
||||||
|
|
||||||
|
enum Stage {
|
||||||
|
PRE,
|
||||||
|
POST
|
||||||
|
}
|
||||||
|
|
||||||
|
T getPlugin();
|
||||||
|
|
||||||
|
Stage getStage();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
package net.frankheijden.serverutils.common.events;
|
||||||
|
|
||||||
|
public interface PluginLoadEvent<T> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
package net.frankheijden.serverutils.common.events;
|
||||||
|
|
||||||
|
public interface PluginUnloadEvent<T> {
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue