add aquacore support (but it doesnt work because it turns out aquacore api is only on spigot)

This commit is contained in:
ajgeiss0702
2021-08-21 07:56:39 -07:00
parent 8bec8aeea7
commit 434e5e2a88
23 changed files with 153 additions and 31 deletions
@@ -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.*;
@@ -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;