Search in sources :

Example 46 with User

use of me.lucko.luckperms.common.model.User in project LuckPerms by lucko.

the class VaultChatHook method setChatMeta.

private void setChatMeta(PermissionHolder holder, ChatMetaType type, String value, String world) {
    if (log()) {
        logMsg("#setChatMeta: %s - %s - %s - %s", holder.getFriendlyName(), type, value, world);
    }
    this.permissionHook.getExecutor().execute(() -> {
        // remove all prefixes/suffixes directly set on the user/group
        holder.removeIf(type::matches);
        if (value == null) {
            this.permissionHook.holderSave(holder);
            return;
        }
        // find the max inherited priority & add 10
        MetaAccumulator metaAccumulator = holder.accumulateMeta(null, createContextForWorldSet(world));
        int priority = (type == ChatMetaType.PREFIX ? metaAccumulator.getPrefixes() : metaAccumulator.getSuffixes()).keySet().stream().mapToInt(e -> e).max().orElse(0) + 10;
        Node.Builder chatMetaNode = NodeFactory.buildChatMetaNode(type, priority, value);
        chatMetaNode.setServer(this.permissionHook.getVaultServer());
        chatMetaNode.setWorld(world);
        holder.setPermission(chatMetaNode.build());
        this.permissionHook.holderSave(holder);
    });
}
Also used : CommandManager(me.lucko.luckperms.common.command.CommandManager) Contexts(me.lucko.luckperms.api.Contexts) PermissionHolder(me.lucko.luckperms.common.model.PermissionHolder) ImmutableContextSet(me.lucko.luckperms.api.context.ImmutableContextSet) NodeFactory(me.lucko.luckperms.common.node.NodeFactory) UUID(java.util.UUID) ConfigKeys(me.lucko.luckperms.common.config.ConfigKeys) MetaCache(me.lucko.luckperms.common.caching.type.MetaCache) Objects(java.util.Objects) Strings(com.google.common.base.Strings) LPBukkitPlugin(me.lucko.luckperms.bukkit.LPBukkitPlugin) ChatMetaType(me.lucko.luckperms.api.ChatMetaType) Group(me.lucko.luckperms.common.model.Group) Node(me.lucko.luckperms.api.Node) Chat(net.milkbowl.vault.chat.Chat) User(me.lucko.luckperms.common.model.User) MetaAccumulator(me.lucko.luckperms.common.caching.type.MetaAccumulator) MetaAccumulator(me.lucko.luckperms.common.caching.type.MetaAccumulator) Node(me.lucko.luckperms.api.Node)

Example 47 with User

use of me.lucko.luckperms.common.model.User in project LuckPerms by lucko.

the class VaultChatHook method setUserChatSuffix.

@Override
public void setUserChatSuffix(String world, UUID uuid, String suffix) {
    if (uuid == null) {
        return;
    }
    User user = getUser(uuid);
    if (user == null) {
        return;
    }
    setChatMeta(user, ChatMetaType.SUFFIX, suffix, world);
}
Also used : User(me.lucko.luckperms.common.model.User)

Example 48 with User

use of me.lucko.luckperms.common.model.User in project LuckPerms by lucko.

the class VaultChatHook method getUserMeta.

@Override
public String getUserMeta(String world, UUID uuid, String key) {
    if (uuid == null) {
        return null;
    }
    Objects.requireNonNull(key, "key");
    User user = getUser(uuid);
    if (user == null) {
        return null;
    }
    Contexts contexts = this.permissionHook.contextForLookup(user, world);
    MetaCache metaData = user.getCachedData().getMetaData(contexts);
    String ret = metaData.getMeta().get(key);
    if (log()) {
        logMsg("#getUserMeta: %s - %s - %s - %s", user.getFriendlyName(), contexts.getContexts().toMultimap(), key, ret);
    }
    return ret;
}
Also used : User(me.lucko.luckperms.common.model.User) Contexts(me.lucko.luckperms.api.Contexts) MetaCache(me.lucko.luckperms.common.caching.type.MetaCache)

Example 49 with User

use of me.lucko.luckperms.common.model.User in project LuckPerms by lucko.

the class VaultChatHook method setUserMeta.

@Override
public void setUserMeta(String world, UUID uuid, String key, Object value) {
    if (uuid == null) {
        return;
    }
    Objects.requireNonNull(key, "key");
    User user = getUser(uuid);
    if (user == null) {
        return;
    }
    setMeta(user, key, value, world);
}
Also used : User(me.lucko.luckperms.common.model.User)

Example 50 with User

use of me.lucko.luckperms.common.model.User in project LuckPerms by lucko.

the class VaultChatHook method getUserChatPrefix.

@Override
public String getUserChatPrefix(String world, UUID uuid) {
    if (uuid == null) {
        return null;
    }
    User user = getUser(uuid);
    if (user == null) {
        return null;
    }
    Contexts contexts = this.permissionHook.contextForLookup(user, world);
    MetaCache metaData = user.getCachedData().getMetaData(contexts);
    String ret = metaData.getPrefix();
    if (log()) {
        logMsg("#getUserChatPrefix: %s - %s - %s", user.getFriendlyName(), contexts.getContexts().toMultimap(), ret);
    }
    return Strings.nullToEmpty(ret);
}
Also used : User(me.lucko.luckperms.common.model.User) Contexts(me.lucko.luckperms.api.Contexts) MetaCache(me.lucko.luckperms.common.caching.type.MetaCache)

Aggregations

User (me.lucko.luckperms.common.model.User)67 Group (me.lucko.luckperms.common.model.Group)20 UUID (java.util.UUID)16 Node (me.lucko.luckperms.api.Node)14 Contexts (me.lucko.luckperms.api.Contexts)10 List (java.util.List)9 NodeFactory (me.lucko.luckperms.common.node.NodeFactory)9 Tristate (me.lucko.luckperms.api.Tristate)8 Track (me.lucko.luckperms.common.model.Track)8 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)7 CommandPermission (me.lucko.luckperms.common.command.access.CommandPermission)7 ProgressLogger (me.lucko.luckperms.common.logging.ProgressLogger)7 Sender (me.lucko.luckperms.common.sender.Sender)7 Map (java.util.Map)6 Set (java.util.Set)6 Collectors (java.util.stream.Collectors)6 LuckPermsPlugin (me.lucko.luckperms.common.plugin.LuckPermsPlugin)6 MutableContextSet (me.lucko.luckperms.api.context.MutableContextSet)5 CommandResult (me.lucko.luckperms.common.command.CommandResult)5 SubCommand (me.lucko.luckperms.common.command.abstraction.SubCommand)5