Workaround for ultraperms api returning null

This commit is contained in:
ajgeiss0702
2021-08-07 13:50:25 -07:00
parent e1323c70c3
commit 8c528a86a8
3 changed files with 13 additions and 7 deletions
@@ -2,7 +2,7 @@ package us.ajg0702.queue.logic.permissions;
import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.common.QueueMain; import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.logic.permissions.hooks.BuiltIn; import us.ajg0702.queue.logic.permissions.hooks.BuiltInHook;
import us.ajg0702.queue.logic.permissions.hooks.LuckPermsHook; import us.ajg0702.queue.logic.permissions.hooks.LuckPermsHook;
import us.ajg0702.queue.logic.permissions.hooks.UltraPermissionsHook; import us.ajg0702.queue.logic.permissions.hooks.UltraPermissionsHook;
@@ -15,7 +15,7 @@ public class PermissionGetter {
private final QueueMain main; private final QueueMain main;
public PermissionGetter(QueueMain main) { public PermissionGetter(QueueMain main) {
hooks = Arrays.asList( hooks = Arrays.asList(
new BuiltIn(main), new BuiltInHook(main),
new LuckPermsHook(main), new LuckPermsHook(main),
new UltraPermissionsHook(main) new UltraPermissionsHook(main)
); );
@@ -7,10 +7,10 @@ import us.ajg0702.queue.logic.permissions.PermissionHook;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class BuiltIn implements PermissionHook { public class BuiltInHook implements PermissionHook {
private final QueueMain main; private final QueueMain main;
public BuiltIn(QueueMain main) { public BuiltInHook(QueueMain main) {
this.main = main; this.main = main;
} }
@@ -11,7 +11,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@SuppressWarnings("SimplifyOptionalCallChains")
public class UltraPermissionsHook implements PermissionHook { public class UltraPermissionsHook implements PermissionHook {
private final QueueMain main; private final QueueMain main;
@@ -26,14 +25,21 @@ public class UltraPermissionsHook implements PermissionHook {
@Override @Override
public boolean canUse() { public boolean canUse() {
return main.getPlatformMethods().hasPlugin("UltraPermissions"); if(!main.getPlatformMethods().hasPlugin("UltraPermissions") ) return false;
if(UltraPermissions.getAPI() == null) {
main.getLogger().warn("UltraPermissions getApi() method returned null! Unable to hook into it.");
return false;
}
return true;
} }
@Override @Override
public List<String> getPermissions(AdaptedPlayer player) { public List<String> getPermissions(AdaptedPlayer player) {
UltraPermissionsAPI ultraPermissionsAPI = UltraPermissions.getAPI(); UltraPermissionsAPI ultraPermissionsAPI = UltraPermissions.getAPI();
Optional<User> userOptional = ultraPermissionsAPI.getUsers().uuid(player.getUniqueId()); Optional<User> userOptional = ultraPermissionsAPI
.getUsers()
.uuid(player.getUniqueId());
if(!userOptional.isPresent()) return new ArrayList<>(); if(!userOptional.isPresent()) return new ArrayList<>();
User user = userOptional.get(); User user = userOptional.get();