61 lines
1.3 KiB
Kotlin
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 )
|
|
}
|
|
|
|
} |