Added api to register custom PermissionHooks
This commit is contained in:
@@ -3,6 +3,7 @@ package us.ajg0702.queue.api;
|
||||
import us.ajg0702.queue.api.events.utils.EventReceiver;
|
||||
import us.ajg0702.queue.api.premium.Logic;
|
||||
import us.ajg0702.queue.api.premium.LogicGetter;
|
||||
import us.ajg0702.queue.api.premium.PermissionHookRegistry;
|
||||
import us.ajg0702.queue.api.queueholders.QueueHolderRegistry;
|
||||
import us.ajg0702.queue.api.spigot.AjQueueSpigotAPI;
|
||||
import us.ajg0702.queue.api.util.QueueLogger;
|
||||
@@ -15,6 +16,8 @@ public abstract class AjQueueAPI {
|
||||
|
||||
public static QueueHolderRegistry queueHolderRegistry = new QueueHolderRegistry();
|
||||
|
||||
public static PermissionHookRegistry permissionHookRegistry = new PermissionHookRegistry();
|
||||
|
||||
public static AjQueueAPI INSTANCE;
|
||||
public static AjQueueSpigotAPI SPIGOT_INSTANCE;
|
||||
|
||||
@@ -128,6 +131,10 @@ public abstract class AjQueueAPI {
|
||||
return queueHolderRegistry;
|
||||
}
|
||||
|
||||
public static PermissionHookRegistry getPermissionHookRegistry() {
|
||||
return permissionHookRegistry;
|
||||
}
|
||||
|
||||
public abstract <E> void listen(Class<E> event, EventReceiver<E> handler);
|
||||
|
||||
public abstract ExecutorService getServersUpdateExecutor();
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package us.ajg0702.queue.api.premium;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PermissionHookRegistry {
|
||||
private final Map<String, PermissionHook> hooks = new HashMap<>();
|
||||
|
||||
public void register(PermissionHook... permissionHooks) {
|
||||
for (PermissionHook hook : permissionHooks) {
|
||||
if(hooks.containsKey(hook.getName())) {
|
||||
throw new IllegalArgumentException("Hook " + hook.getName() + " is already registered!");
|
||||
}
|
||||
}
|
||||
for (PermissionHook hook : permissionHooks) {
|
||||
hooks.put(hook.getName(), hook);
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<PermissionHook> getRegisteredHooks() {
|
||||
return hooks.values();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user