mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-02 17:32:03 +01:00
Plugins can no longer register events while disabled
By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
parent
7e9974d53c
commit
8117c7771d
2 changed files with 29 additions and 1 deletions
|
@ -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) {
|
||||
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));
|
||||
}
|
||||
|
||||
|
@ -285,6 +286,10 @@ public final class SimplePluginManager implements PluginManager {
|
|||
* @param plugin Plugin to register
|
||||
*/
|
||||
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));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue