Plugins can no longer register events while disabled
This commit is contained in:
parent
7867b27965
commit
6f9b8479c6
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
package org.bukkit.plugin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Thrown when a plugin attempts to interact with the server when it is not enabled
|
||||||
|
*/
|
||||||
|
public class IllegalPluginAccessException extends RuntimeException {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance of <code>IllegalPluginAccessException</code> without detail message.
|
||||||
|
*/
|
||||||
|
public IllegalPluginAccessException() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs an instance of <code>IllegalPluginAccessException</code> with the specified detail message.
|
||||||
|
* @param msg the detail message.
|
||||||
|
*/
|
||||||
|
public IllegalPluginAccessException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
@ -270,8 +270,9 @@ public final class SimplePluginManager implements PluginManager {
|
|||||||
*/
|
*/
|
||||||
public void registerEvent(Event.Type type, Listener listener, Priority priority, Plugin plugin) {
|
public void registerEvent(Event.Type type, Listener listener, Priority priority, Plugin plugin) {
|
||||||
if (!plugin.isEnabled()) {
|
if (!plugin.isEnabled()) {
|
||||||
server.getLogger().warning("Plugin '" + plugin.getDescription().getName() + "' (ver " + plugin.getDescription().getVersion() + ") is registering events before it is enabled. It may be misbehaving and the author needs to fix this.");
|
throw new IllegalPluginAccessException("Plugin attempted to register " + type + " while not enabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
getEventListeners( type ).add(new RegisteredListener(listener, priority, plugin, type));
|
getEventListeners( type ).add(new RegisteredListener(listener, priority, plugin, type));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,6 +286,10 @@ public final class SimplePluginManager implements PluginManager {
|
|||||||
* @param plugin Plugin to register
|
* @param plugin Plugin to register
|
||||||
*/
|
*/
|
||||||
public void registerEvent(Event.Type type, Listener listener, EventExecutor executor, Priority priority, Plugin plugin) {
|
public void registerEvent(Event.Type type, Listener listener, EventExecutor executor, Priority priority, Plugin plugin) {
|
||||||
|
if (!plugin.isEnabled()) {
|
||||||
|
throw new IllegalPluginAccessException("Plugin attempted to register " + type + " while not enabled");
|
||||||
|
}
|
||||||
|
|
||||||
getEventListeners( type ).add(new RegisteredListener(listener, executor, priority, plugin));
|
getEventListeners( type ).add(new RegisteredListener(listener, executor, priority, plugin));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user