Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class LuckPermUtil
- {
- private static LuckPermUtil instance;
- public LuckPerms api;
- public Set<String> possibleGroups;
- private LuckPermUtil()
- {
- RegisteredServiceProvider<LuckPerms> provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class);
- if (provider != null)
- {
- api = provider.getProvider();
- }
- if (api == null)
- {
- Messages.toConsole("Keine Verbindung zum LuckPerms!", ColorType.ERROR);
- }
- String[] posGroups = new String[] { "default", "user","trusted", "vip", "vip+", "stamm", "stammvip", "stammvip+", "team",
- "guard", "supporter", "moderator", "supermoderator", "developer", "admin", "owner" };
- possibleGroups = new HashSet<>(Arrays.asList(posGroups));
- }
- public static LuckPermUtil getInstance()
- {
- if (instance == null)
- {
- instance = new LuckPermUtil();
- }
- return instance;
- }
- public boolean hasGroup(Player player, String group)
- {
- return player.hasPermission("group." + group);
- }
- public boolean hasPermission(Player player, String permission)
- {
- return player.hasPermission(permission);
- }
- /**
- * Gibt ein Future mit allen zugewiesenen Gruppen einer Spieler-UUID zur�ck
- *
- * Weitere verwendung: getGroup(uuid).thenAcceptAsync(result ->{ //hier den code
- * einf�gen });
- *
- * @param uniqueId
- * @return Set<String> Name aller Gruppen
- */
- public CompletableFuture<Set<String>> getGroup(UUID uniqueId)
- {
- return api.getUserManager().loadUser(uniqueId)
- .thenApplyAsync(user -> user.getNodes().stream().filter(NodeType.INHERITANCE::matches)
- .map(NodeType.INHERITANCE::cast).map(InheritanceNode::getGroupName)
- .collect(Collectors.toSet()));
- }
- public void performIfPlayerHasGroup(OfflinePlayer player, String group, Runnable runnable)
- {
- getGroup(player.getUniqueId()).thenAcceptAsync(result -> {
- if (result.contains(group))
- {
- runnable.run();
- }
- });
- }
- public void giveGroup(UUID uniqueId, String group)
- {
- UserManager userManager = api.getUserManager();
- CompletableFuture<User> userFuture = userManager.loadUser(uniqueId);
- userFuture.thenAcceptAsync(user -> {
- Collection<Node> nodes = user.getNodes();
- Set<String> groups = nodes.stream().filter(NodeType.INHERITANCE::matches).map(NodeType.INHERITANCE::cast)
- .map(InheritanceNode::getGroupName).collect(Collectors.toSet());
- for (String oldGroup : groups)
- {
- InheritanceNode node = InheritanceNode.builder(oldGroup).build();
- user.data().remove(node);
- }
- InheritanceNode newGroup = InheritanceNode.builder(group).build();
- user.data().add(newGroup);
- userManager.saveUser(user);
- });
- }
- public void givePermission(UUID uniqueId, String permission)
- {
- UserManager userManager = api.getUserManager();
- CompletableFuture<User> userFuture = userManager.loadUser(uniqueId);
- userFuture.thenAcceptAsync(user -> {
- PermissionNode node = PermissionNode.builder(permission).value(true).build();
- user.data().add(node);
- userManager.saveUser(user);
- });
- }
- public void giveNegativPermission(UUID uniqueId, String permission)
- {
- UserManager userManager = api.getUserManager();
- CompletableFuture<User> userFuture = userManager.loadUser(uniqueId);
- userFuture.thenAcceptAsync(user -> {
- PermissionNode node = PermissionNode.builder(permission).value(false).build();
- user.data().add(node);
- userManager.saveUser(user);
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement