mirror of
https://github.com/plexusorg/Plex.git
synced 2024-09-28 18:28:15 +00:00
66 lines
2.4 KiB
Java
66 lines
2.4 KiB
Java
|
package dev.plex.util;
|
||
|
|
||
|
import dev.plex.Plex;
|
||
|
import dev.plex.cache.DataUtils;
|
||
|
import dev.plex.permission.Permission;
|
||
|
import dev.plex.player.PlexPlayer;
|
||
|
import org.bukkit.Bukkit;
|
||
|
import org.bukkit.entity.Player;
|
||
|
import org.bukkit.permissions.PermissionAttachment;
|
||
|
import org.jetbrains.annotations.NotNull;
|
||
|
|
||
|
public class PermissionsUtil
|
||
|
{
|
||
|
public static void setupPermissions(@NotNull Player player)
|
||
|
{
|
||
|
PlexPlayer plexPlayer = DataUtils.getPlayer(player.getUniqueId());
|
||
|
PermissionAttachment attachment = player.addAttachment(Plex.get());
|
||
|
plexPlayer.getPermissions().forEach(permission -> attachment.setPermission(permission.getPermission(), permission.isAllowed()));
|
||
|
plexPlayer.setPermissionAttachment(attachment);
|
||
|
}
|
||
|
|
||
|
public static void addPermission(PlexPlayer player, Permission permission)
|
||
|
{
|
||
|
Plex.get().getSqlPermissions().addPermission(PlexUtils.addToArrayList(player.getPermissions(), permission));
|
||
|
Player p = Bukkit.getPlayer(player.getUuid());
|
||
|
if (p == null)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
player.getPermissionAttachment().setPermission(permission.getPermission(), permission.isAllowed());
|
||
|
}
|
||
|
|
||
|
public static void addPermission(PlexPlayer player, String permission)
|
||
|
{
|
||
|
addPermission(player, new Permission(player.getUuid(), permission));
|
||
|
}
|
||
|
|
||
|
public static void removePermission(PlexPlayer player, String permission)
|
||
|
{
|
||
|
Plex.get().getSqlPermissions().removePermission(player.getUuid(), permission);
|
||
|
player.getPermissions().removeIf(permission1 -> permission1.getPermission().equalsIgnoreCase(permission));
|
||
|
Player p = Bukkit.getPlayer(player.getUuid());
|
||
|
if (p == null)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
player.getPermissionAttachment().unsetPermission(permission);
|
||
|
}
|
||
|
|
||
|
public static void updatePermission(PlexPlayer player, String permission, boolean newValue)
|
||
|
{
|
||
|
player.getPermissions().stream().filter(permission1 -> permission.equalsIgnoreCase(permission)).findFirst().ifPresent(permission1 ->
|
||
|
{
|
||
|
Plex.get().getSqlPermissions().updatePermission(permission1, newValue);
|
||
|
});
|
||
|
player.getPermissions().removeIf(permission1 -> permission1.getPermission().equalsIgnoreCase(permission));
|
||
|
Player p = Bukkit.getPlayer(player.getUuid());
|
||
|
if (p == null)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
player.getPermissionAttachment().unsetPermission(permission);
|
||
|
|
||
|
}
|
||
|
}
|