package club.mcscrims.speedhg.util import club.mcscrims.speedhg.SpeedHG import net.luckperms.api.cacheddata.CachedDataManager import net.luckperms.api.model.group.Group import net.luckperms.api.model.user.User import org.bukkit.entity.Player import java.util.UUID object LuckPermsUtils { private val plugin = SpeedHG.instance private val luckPerms = plugin.luckPerms fun getUser( player: Player ): User? { return luckPerms.userManager.getUser( player.uniqueId ) } fun editUser( player: Player, action: (User) -> Unit ) { luckPerms.userManager.loadUser( player.uniqueId ).thenAcceptAsync( action ) } fun getGroup( groupName: String ): Group? { return luckPerms.groupManager.getGroup( groupName ) } fun getCachedData( player: Player ): CachedDataManager? { return getUser( player )?.cachedData } fun hasPermission( uniqueId: UUID, permission: String ): Boolean { val cachedData = luckPerms.userManager.loadUser( uniqueId ).get().cachedData return cachedData.permissionData.checkPermission( permission ).asBoolean() } fun hasPermission( player: Player, permission: String ): Boolean { return getCachedData( player )?.permissionData?.checkPermission( permission )?.asBoolean() ?: player.hasPermission( permission ) } }