pre6 - UltraPermissions hook & bstats

This commit is contained in:
ajgeiss0702
2021-08-05 17:28:11 -07:00
parent cde8c0a49c
commit 4e6c10ccb2
8 changed files with 76 additions and 2 deletions
@@ -4,6 +4,7 @@ import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.logic.permissions.hooks.BuiltIn;
import us.ajg0702.queue.logic.permissions.hooks.LuckPermsHook;
import us.ajg0702.queue.logic.permissions.hooks.UltraPermissionsHook;
import java.util.*;
@@ -15,7 +16,8 @@ public class PermissionGetter {
public PermissionGetter(QueueMain main) {
hooks = Arrays.asList(
new BuiltIn(main),
new LuckPermsHook(main)
new LuckPermsHook(main),
new UltraPermissionsHook(main)
);
}
@@ -30,6 +32,7 @@ public class PermissionGetter {
selected = hook;
}
}
main.getLogger().info("Using "+selected.getName()+" for permissions.");
return selected;
}
@@ -0,0 +1,44 @@
package us.ajg0702.queue.logic.permissions.hooks;
import me.TechsCode.UltraPermissions.UltraPermissions;
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 java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@SuppressWarnings("SimplifyOptionalCallChains")
public class UltraPermissionsHook implements PermissionHook {
private final QueueMain main;
public UltraPermissionsHook(QueueMain main) {
this.main = main;
}
@Override
public String getName() {
return "UltraPermissions";
}
@Override
public boolean canUse() {
return main.getPlatformMethods().hasPlugin("UltraPermissions");
}
@Override
public List<String> getPermissions(AdaptedPlayer player) {
UltraPermissionsAPI ultraPermissionsAPI = UltraPermissions.getAPI();
Optional<User> userOptional = ultraPermissionsAPI.getUsers().uuid(player.getUniqueId());
if(!userOptional.isPresent()) return new ArrayList<>();
User user = userOptional.get();
List<String> permissions = new ArrayList<>();
user.getPermissions().bungee().forEach(permission -> permissions.add(permission.getName()));
return permissions;
}
}