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,11 +1,11 @@
package us.ajg0702.queue.logic;
import us.ajg0702.queue.api.AliasManager;
import us.ajg0702.queue.api.Logic;
import us.ajg0702.queue.api.LogicGetter;
import us.ajg0702.queue.api.premium.Logic;
import us.ajg0702.queue.api.premium.LogicGetter;
import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.premium.PermissionGetter;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.logic.permissions.PermissionGetter;
import us.ajg0702.utils.common.Config;
import java.util.List;
@@ -31,4 +31,9 @@ public class LogicGetterImpl implements LogicGetter {
if(logic == null) return null;
return logic.getPermissionGetter().getSelected().getPermissions(player);
}
@Override
public PermissionGetter getPermissionGetter() {
return logic.getPermissionGetter();
}
}
@@ -1,14 +1,15 @@
package us.ajg0702.queue.logic;
import com.google.common.collect.ImmutableList;
import us.ajg0702.queue.api.Logic;
import us.ajg0702.queue.api.premium.Logic;
import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.players.QueuePlayer;
import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.api.util.QueueLogger;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.common.players.QueuePlayerImpl;
import us.ajg0702.queue.logic.permissions.PermissionGetter;
import us.ajg0702.queue.api.premium.PermissionGetter;
import us.ajg0702.queue.logic.permissions.PermissionGetterImpl;
public class PremiumLogic implements Logic {
@@ -18,7 +19,7 @@ public class PremiumLogic implements Logic {
private final PermissionGetter permissionGetter;
public PremiumLogic(QueueMain main) {
permissionGetter = new PermissionGetter(main);
permissionGetter = new PermissionGetterImpl(main);
}
@Override
@@ -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;