add aquacore support (but it doesnt work because it turns out aquacore api is only on spigot)
This commit is contained in:
+11
-3
@@ -1,28 +1,33 @@
|
||||
package us.ajg0702.queue.logic.permissions;
|
||||
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.premium.PermissionGetter;
|
||||
import us.ajg0702.queue.api.premium.PermissionHook;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
import us.ajg0702.queue.logic.permissions.hooks.AquaCoreHook;
|
||||
import us.ajg0702.queue.logic.permissions.hooks.BuiltInHook;
|
||||
import us.ajg0702.queue.logic.permissions.hooks.LuckPermsHook;
|
||||
import us.ajg0702.queue.logic.permissions.hooks.UltraPermissionsHook;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class PermissionGetter {
|
||||
public class PermissionGetterImpl implements PermissionGetter {
|
||||
|
||||
private final List<PermissionHook> hooks;
|
||||
|
||||
private final QueueMain main;
|
||||
public PermissionGetter(QueueMain main) {
|
||||
public PermissionGetterImpl(QueueMain main) {
|
||||
hooks = Arrays.asList(
|
||||
new BuiltInHook(main),
|
||||
new LuckPermsHook(main),
|
||||
new UltraPermissionsHook(main)
|
||||
new UltraPermissionsHook(main),
|
||||
new AquaCoreHook(main)
|
||||
);
|
||||
this.main = main;
|
||||
}
|
||||
|
||||
private PermissionHook selected;
|
||||
@Override
|
||||
public PermissionHook getSelected() {
|
||||
if(selected != null) return selected;
|
||||
if(hooks == null) {
|
||||
@@ -40,14 +45,17 @@ public class PermissionGetter {
|
||||
return selected;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOfflineTime(AdaptedPlayer player) {
|
||||
return getHighestPermission(player, "ajqueue.stayqueued.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority(AdaptedPlayer player) {
|
||||
return getHighestPermission(player, "ajqueue.priority.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getServerPriotity(String server, AdaptedPlayer player) {
|
||||
return getHighestPermission(player, "ajqueue.serverpriority."+server+".");
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package us.ajg0702.queue.logic.permissions;
|
||||
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface PermissionHook {
|
||||
String getName();
|
||||
boolean canUse();
|
||||
List<String> getPermissions(AdaptedPlayer player);
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package us.ajg0702.queue.logic.permissions.hooks;
|
||||
|
||||
import me.activated.core.plugin.AquaCoreAPI;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
import us.ajg0702.queue.api.premium.PermissionHook;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AquaCoreHook implements PermissionHook {
|
||||
|
||||
private final QueueMain main;
|
||||
public AquaCoreHook(QueueMain main) {
|
||||
this.main = main;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "AquaCore";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canUse() {
|
||||
if(!main.getPlatformMethods().hasPlugin("AquaProxy") ) return false;
|
||||
try {
|
||||
if(AquaCoreAPI.INSTANCE == null) {
|
||||
main.getLogger().warn("AquaCore is installed, but its INSTANCE returned null! Unable to hook into it.");
|
||||
return false;
|
||||
}
|
||||
} catch(NoClassDefFoundError e) {
|
||||
main.getLogger().warning("AquaCore seems to be installed, but its api doesnt seem to be!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getPermissions(AdaptedPlayer player) {
|
||||
AquaCoreAPI api = AquaCoreAPI.INSTANCE;
|
||||
|
||||
List<String> permissions = new ArrayList<>();
|
||||
|
||||
api.getPlayerData(player.getUniqueId()).getActiveGrants().forEach(grant -> {
|
||||
if(!grant.isActiveSomewhere() || grant.hasExpired()) return;
|
||||
permissions.addAll(grant.getRank().getAvailablePermissions());
|
||||
});
|
||||
|
||||
return permissions;
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ package us.ajg0702.queue.logic.permissions.hooks;
|
||||
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
import us.ajg0702.queue.logic.permissions.PermissionHook;
|
||||
import us.ajg0702.queue.api.premium.PermissionHook;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -8,7 +8,7 @@ import net.luckperms.api.node.NodeType;
|
||||
import net.luckperms.api.query.QueryOptions;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
import us.ajg0702.queue.logic.permissions.PermissionHook;
|
||||
import us.ajg0702.queue.api.premium.PermissionHook;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@ import me.TechsCode.UltraPermissions.UltraPermissionsAPI;
|
||||
import me.TechsCode.UltraPermissions.storage.objects.User;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
import us.ajg0702.queue.logic.permissions.PermissionHook;
|
||||
import us.ajg0702.queue.api.premium.PermissionHook;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -27,7 +27,7 @@ public class UltraPermissionsHook implements PermissionHook {
|
||||
public boolean canUse() {
|
||||
if(!main.getPlatformMethods().hasPlugin("UltraPermissions") ) return false;
|
||||
if(UltraPermissions.getAPI() == null) {
|
||||
main.getLogger().warn("UltraPermissions getApi() method returned null! Unable to hook into it.");
|
||||
main.getLogger().warn("UltraPermissions is installed, but its getApi() method returned null! Unable to hook into it.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user