Implemented PluginEnabled and PluginDisabled

This commit is contained in:
Dinnerbone 2011-01-03 02:06:22 +00:00
parent ac8d4c61f9
commit abda42fdc4
4 changed files with 109 additions and 31 deletions

View File

@ -0,0 +1,26 @@
package org.bukkit.event.server;
import org.bukkit.plugin.Plugin;
/**
* Used for plugin loaded and unloaded events
*/
public class PluginEvent extends ServerEvent {
private final Plugin plugin;
public PluginEvent(final Type type, final Plugin plugin) {
super(type);
this.plugin = plugin;
}
/**
* Gets the plugin involved in this event
*
* @return Plugin for this event
*/
public Plugin getPlugin() {
return plugin;
}
}

View File

@ -0,0 +1,13 @@
package org.bukkit.event.server;
import org.bukkit.event.Event;
/**
* Miscellaneous server events
*/
public class ServerEvent extends Event {
public ServerEvent(final Type type) {
super(type);
}
}

View File

@ -0,0 +1,25 @@
package org.bukkit.event.server;
import org.bukkit.event.Listener;
/**
* Handles all miscellaneous server events
*/
public class ServerListener implements Listener {
/**
* Called when a plugin is enabled
*
* @param event Relevant event details
*/
public void onPluginEnabled(PluginEvent event) {
}
/**
* Called when a plugin is disabled
*
* @param event Relevant event details
*/
public void onPluginDisabled(PluginEvent event) {
}
}

View File

@ -17,6 +17,8 @@ import org.bukkit.event.Event;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.*; import org.bukkit.event.block.*;
import org.bukkit.event.player.*; import org.bukkit.event.player.*;
import org.bukkit.event.server.PluginEvent;
import org.bukkit.event.server.ServerListener;
import org.bukkit.plugin.*; import org.bukkit.plugin.*;
/** /**
@ -119,9 +121,21 @@ public final class JavaPluginLoader implements PluginLoader {
trueListener.onBlockFlow((BlockFromToEvent)event); trueListener.onBlockFlow((BlockFromToEvent)event);
break; break;
} }
} else if(listener instanceof ServerListener) {
ServerListener trueListener = (ServerListener)listener;
switch (event.getType()) {
case PLUGIN_ENABLE:
trueListener.onPluginEnabled((PluginEvent)event);
break;
case PLUGIN_DISABLE:
trueListener.onPluginDisabled((PluginEvent)event);
break;
}
} else if(listener instanceof CustomEventListener) { } else if(listener instanceof CustomEventListener) {
if(event.getType()==Event.Type.CUSTOM_EVENT) if(event.getType()==Event.Type.CUSTOM_EVENT) {
((CustomEventListener)listener).onCustomEvent(event); ((CustomEventListener)listener).onCustomEvent(event);
} }
} }
} }
}