3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-11-17 05:20:14 +01:00

Merge pull request #207 from lucko/fix/event-unregister

EventManager fixes
Dieser Commit ist enthalten in:
Andrew Steinborn 2019-05-17 06:06:03 -04:00 committet von GitHub
Commit 586be46bba
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 4AEE18F83AFDEB23

Datei anzeigen

@ -97,6 +97,8 @@ public class VelocityEventManager implements EventManager {
Preconditions.checkNotNull(eventClass, "eventClass"); Preconditions.checkNotNull(eventClass, "eventClass");
Preconditions.checkNotNull(postOrder, "postOrder"); Preconditions.checkNotNull(postOrder, "postOrder");
Preconditions.checkNotNull(handler, "listener"); Preconditions.checkNotNull(handler, "listener");
registeredHandlersByPlugin.put(plugin, handler);
bus.register(eventClass, new KyoriToVelocityHandler<>(handler, postOrder)); bus.register(eventClass, new KyoriToVelocityHandler<>(handler, postOrder));
} }
@ -159,17 +161,19 @@ public class VelocityEventManager implements EventManager {
public void unregisterListener(Object plugin, Object listener) { public void unregisterListener(Object plugin, Object listener) {
ensurePlugin(plugin); ensurePlugin(plugin);
Preconditions.checkNotNull(listener, "listener"); Preconditions.checkNotNull(listener, "listener");
registeredListenersByPlugin.remove(plugin, listener); if (registeredListenersByPlugin.remove(plugin, listener)) {
methodAdapter.unregister(listener); methodAdapter.unregister(listener);
} }
}
@Override @Override
public <E> void unregister(Object plugin, EventHandler<E> handler) { public <E> void unregister(Object plugin, EventHandler<E> handler) {
ensurePlugin(plugin); ensurePlugin(plugin);
Preconditions.checkNotNull(handler, "listener"); Preconditions.checkNotNull(handler, "listener");
registeredHandlersByPlugin.remove(plugin, handler); if (registeredHandlersByPlugin.remove(plugin, handler)) {
unregisterHandler(handler); unregisterHandler(handler);
} }
}
public boolean shutdown() throws InterruptedException { public boolean shutdown() throws InterruptedException {
service.shutdown(); service.shutdown();