Files
GameModes-SpeedHG/src/main/kotlin/club/mcscrims/speedhg/util/LuckPermsUtils.kt
2025-12-06 05:41:42 +01:00

61 lines
1.3 KiB
Kotlin

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 )
}
}