24package com.dreamfirestudios.dreamcore.DreamLuckPerms;
26import com.dreamfirestudios.dreamcore.DreamCore;
27import net.luckperms.api.model.group.Group;
28import net.luckperms.api.model.user.User;
29import net.luckperms.api.node.Node;
30import org.bukkit.entity.Player;
80 public record
GroupResult<T>(
boolean success, T enumValue, String rawValue) {}
106 return player.hasPermission(
"group." + group);
140 for (T constant : enumClass.getEnumConstants()) {
141 String groupName = constant.name().toLowerCase();
142 if (player.hasPermission(
"group." + groupName)) {
143 return new GroupResult<>(
true, constant, groupName);
146 return new GroupResult<>(
false,
null,
null);
198 public static <T extends Enum<T>> Group
getGroup(T groupName) {
223 public static <T extends Enum<T>>
void addPermission(User user, T permission) {
224 user.data().add(Node.builder(permission.toString()).build());
241 public static <T extends Enum<T>>
void addPermission(UUID playerUUID, T permission) {
243 user.data().add(Node.builder(permission.toString()).build());
261 user.data().add(node);
279 user.data().add(node);
298 public static <T extends Enum<T>>
boolean hasPermission(User user, T permission) {
299 return user.getCachedData().getPermissionData().checkPermission(permission.toString()).asBoolean();
static LuckPerms LuckPerms
Convenience utilities for interacting with LuckPerms within DreamCore.
static User getUser(UUID playerUUID)
Retrieves the LuckPerms User by UUID if loaded.
static< T extends Enum< T > GroupResult< T > tryGetPlayerGroup(Player player, Class< T > enumClass)
Attempts to determine which enum-based group a player belongs to by scanning group....
record GroupResult< T >(boolean success, T enumValue, String rawValue)
Simple result object for group queries, carrying success flag, parsed enum, and raw string.
static< T extends Enum< T > void addPermission(UUID playerUUID, T permission)
Adds a string-based permission (from enum) to a user referenced by UUID.
static< T extends Enum< T > void addPermission(User user, T permission)
Adds a string-based permission (from enum) to the provided User and saves it.
static< T extends Enum< T > boolean hasPermission(User user, T permission)
Checks whether a User has a given enum-based permission according to cached data.
static< T extends Enum< T > boolean isPlayerInGroup(Player player, T group)
Checks if a player is in a given group by testing the conventional group.<name> permission.
static< T extends Enum< T > Group getGroup(T groupName)
Gets a LuckPerms Group by enum name.
static void addPermission(UUID playerUUID, Node node)
Adds a concrete LuckPerms Node to a user by UUID via modifyUser.
static void addPermission(User user, Node node)
Adds a concrete LuckPerms Node to a User and saves it.
static User getUser(Player player)
Retrieves the LuckPerms User object for an online player.