2020-12-09 22:31:20 +01:00
|
|
|
package net.minestom.server.event;
|
|
|
|
|
|
|
|
import net.minestom.server.event.handler.EventHandler;
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
|
|
|
|
import java.util.Collection;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
2021-02-03 17:11:06 +01:00
|
|
|
import java.util.concurrent.CopyOnWriteArrayList;
|
2020-12-09 22:31:20 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Object containing all the global event listeners.
|
|
|
|
*/
|
|
|
|
public final class GlobalEventHandler implements EventHandler {
|
|
|
|
|
|
|
|
// Events
|
|
|
|
private final Map<Class<? extends Event>, Collection<EventCallback>> eventCallbacks = new ConcurrentHashMap<>();
|
2021-02-03 17:11:06 +01:00
|
|
|
private final Map<String, Collection<EventCallback<?>>> extensionCallbacks = new ConcurrentHashMap<>();
|
2020-12-09 22:31:20 +01:00
|
|
|
|
|
|
|
@NotNull
|
|
|
|
@Override
|
|
|
|
public Map<Class<? extends Event>, Collection<EventCallback>> getEventCallbacksMap() {
|
|
|
|
return eventCallbacks;
|
|
|
|
}
|
2021-02-03 17:11:06 +01:00
|
|
|
|
|
|
|
@NotNull
|
|
|
|
@Override
|
|
|
|
public Collection<EventCallback<?>> getExtensionCallbacks(String extension) {
|
|
|
|
return extensionCallbacks.computeIfAbsent(extension, e -> new CopyOnWriteArrayList<>());
|
|
|
|
}
|
2020-12-09 22:31:20 +01:00
|
|
|
}
|