#luckperms-api
1 messages Β· Page 26 of 1
!api read both of these
Learn how to use the LuckPerms API in your project.
i did
i have luckperms in
but i can't get my prefixes?
String suffix = metaData.getSuffix();```
These don't work
Hi I have just finished setting up a 1.12.2 server and add Luck perms. is there a place I can go to that gives the basic walktho on how to add perms like this one to the group
homeSweetHome.home.list
StilauGamer, Do you have a prefix/chat plugin that could do that
I use essentials chat and it works
@gloomy bloom this is for the dev API, he's trying to get it through code, not to display in chat
@unborn sky /lp group YOUR_GROUP permission set YOUR_PERMISSION true, you can also add them to specific players. But, wrong channel, #support-1
o sorry thanks will try
!nw @sturdy niche
We really would absolutely love to help you out! However, telling us that it isn't working wastes everyone's time. Please, just describe the issue you're having clearly and with as much detail as possible, and send any relevant screenshots of whatever problems you're having.
Hey sorry. I needed to go sadly, but i can tell what i want to do. And i will test some of the help from here tmr
I want to have a chatformat
And get the lowest weight prefix/main prefix
To add into my chat format
Lowest weight is not main, higher weight is higher priority
@rustic laurel
@neat jackal
I did it again, oh come on. Γ
π
!api it's all here
Learn how to use the LuckPerms API in your project.
then don't ask how, ask why yours doesn't work
and use pastebin to send what you've done
are you writing a plugin that only supports luckperms?
usually people use Vault to get the prefix
i mean just look up how to get Chat from Vault
@sturdy niche that link should help you actually "get Chat"
from there you just need to call the method to get the prefix from it
i got permission thingy
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
perms = rsp.getProvider();
return perms != null;
}```
yeah but you get the prefix from Chat, not from Permission

RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
chat = rsp.getProvider();
return chat != null;
}```
correct?
yeah and once you have Chat, then you just do .getPlayerPrefix on it π
nice and easy, give it a try
buut a question
btw this is a bit off topic though because this channel is supposed to be about luckperms api i think
Getting help from someone :) Thanks btw
what is th command to give a player all perms? i tryed * and it didnt work
ok thanks
depend: [Vault]
@sturdy niche
The entire point of Vault is to not depend on the actual permissions plugins
And for the future, don't say "it's not working". Provide your code and describe what's happening
!nw
We really would absolutely love to help you out! However, telling us that it isn't working wastes everyone's time. Please, just describe the issue you're having clearly and with as much detail as possible, and send any relevant screenshots of whatever problems you're having.
Then you need to depend on LuckPerms
And using vault then is obsolete
I mean we could've told you that if you were just upfront about what you're actually trying to do
Heyo, I'm on v4, and I'm trying to get a permission's value, it just prints "UNDEFINED" even if I have the permission set in a specific context
code https://pastebin.com/b5rrMCt9
https://i.imgur.com/Y5yz1z8.png
https://i.imgur.com/90VqTRC.png
v4 is no longer supported
I see, fair enough, thanks π
Any particular reason you're still using v4?
realistically just cause it works fine, and we want to wait for a reset before updating major plugins
Well, there's really nothing you need to worry about with LP tbh
Just replace the jar and you should be good
Doesn't hurt to refresh the config (remove/rename the old config, let LP generate it's current default config and apply the changes)
well it's not just LP, it's the plugins that work with it; it should be fine anyways, like updating from GP to GD, but due to past experiences with other things, we are very cautious about it
Read about upgrading LuckPerms from v4 to v5.
thanks
You're welcome
Hhbb. V v v . v. vv v. v
This is not the server/channel you seek
is there an event to check for when a player gets a new parent set to them?
!events
Sorry! I do not understand the command !events
Type !help for a list of commands.
!help
!advanced
!api
!argumentbased
!ask
!bulkupdate
!bungee
!cauldron
!chat
!colours
!commandequivalents
!commands
!config
!context
!default
!downloads
!editor
!errors
!essentials
!extensions
!faq
!helpchat
!install
!locale
!meta
!migration
!notworking
!nowildcard
!pasteit
!permissions
!placeholders
!selfhosting
!stacking
!storage
!suggestions
!switchstorage
!sync
!tracks
!upgrade
!usage
!userinfo
!verbose
!weight
!whyluckperms
!wiki
UserDataRecalculateEvent ore NodeAddEvent
!permissions
A list of permissions used by LuckPerms commands.
How do permissions with numbers work, for example limiting the number of homes? Do developers just query for some "plugin.home.$" permission and extract the int at the end?
I'm trying to Troubleshoot an issue that I'm having with the API.
The code I'm using was working in 1.14; it tests whether a user inherits from a group,
but it's only finding the user's current group and not the chain of inherited groups.
It's taken verbatim from the wiki:
https://github.com/lucko/LuckPerms/wiki/Developer-API:-Usage#getnodes
My groups have been defined and each has one parent group added.
https://github.com/lucko/LuckPerms/wiki/Usage#making-a-group-inherit-another-group
User user = LuckPermsProvider.get().getUserManager().getUser(player.getUniqueId());
user.setPrimaryGroup(Main.firstRank);
LuckPermsProvider.get().getUserManager().saveUser(user);
Any reason why that won't work?
Is this only used for online players?
I think my problem is related to not selecting a context. If I use /lp group group_name permission checkinherits group.default global then I get the expected message
public CompletableFuture<Boolean> inGroup(String groupName, UUID uuid)
{
checkNotNull(groupName, ERROR_NULL.stringFormat("variable", "group"));
checkNotNull(uuid, ERROR_NULL.stringFormat("variable", "player uuid"));
final Group group = permsApi.getGroupManager().getGroup(groupName);
if (group != null)
{
return permsApi.getUserManager().loadUser(uuid)
.thenApplyAsync(
user -> user.getInheritedGroups(
QueryOptions.nonContextual()
)
.stream()
.map(Group::getName)
.anyMatch(n -> n.equalsIgnoreCase(group.getName()))
);
}
else
return CompletableFuture.supplyAsync(() -> false);
}
This is the solution I came up, appears to work now. (I don't have any custom contexts)
is there a method to check the players group ?
There are a few different things as a player can have multiple groups
What exactly do you want?
im making a /reclaim system
and i want to check the players group
the plugin adds a permission like group.default
or something along those lines
but permissions wont work because a player can have multiple of those
and if the player is opped too
that is why i want to check it through the api
You would use a method similar to the one I linked above
I just pass the name of the group and the player's uuid
hi, how is it possible (using the api) to list all users that are in a certain group?
@oblique cedar do you want to check if a player is in a group or get the playerβs most important/primary group?
if a player is in a group @crystal sonnet
Hey RumDum! Please don't tag helpful/staff people directly.
i know you figured it out, but i'm guessing it'd be
User user = ...;
if (user.getPrimaryGroup().equalsIgnoreCase(""))
{
if (player.isOpped())
{
//do stuff here
}
player.addPermission("");
}```
thanks
Guys just a quick question ive been setting up ranks on another server i have three tracks, staff, donor and ranks, i want to make it so when they inherit the donor rank only when they are staff, it doesnt replace their normal rank how do i do that?
I only want this to happen for staff because we dont want more then two prefixes normal players can have the donor and normal rank but when they are a staff member there are then 3 prefixes which looks weird so i want the normal rank to replace the donor rank so staff members only have two prefixes
the staff prefix and the ranks prefix
but still inherit permissions from donor
@nova osprey #support-1 or #support-2
yoo
so my old method of getting a group prefix doesn't work with version 5 public String getGroupPrefix(Group group) { Optional<String> prefixes = group.getOwnNodes().stream() .filter(Node::isPrefix) .map(Node::getPrefix) .min(Comparator.comparing(Map.Entry::getKey)).map(Map.Entry::getValue); if (prefixes.isPresent()) { String prefix = prefixes.get(); return prefix; } return null; }
getOwnNodes() & isPrefix & getPrefix is gonezo
would anybody be able to help a fella out?
Sry I'm not very experienced but perhaps you could check out the wiki: https://github.com/lucko/LuckPerms/wiki/Developer-API:-Usage#reading-usergroup-data
Hi. Just hypothetically speaking, when a player temporarily inherits a ground (i.e. for 7 days), is there a way to fetch the remaining time of the inheritance of the group through the API?
For more context, I'm wanting a command that displays how long a player has left of a group.
Please ping me for a reply!
@wheat veldt get the metadata of the user object and from that get the prefix
!help
!advanced
!api
!argumentbased
!ask
!bulkupdate
!bungee
!cauldron
!chat
!colours
!commandequivalents
!commands
!config
!context
!default
!downloads
!editor
!errors
!essentials
!extensions
!faq
!helpchat
!install
!locale
!meta
!migration
!notworking
!nowildcard
!pasteit
!permissions
!placeholders
!selfhosting
!stacking
!storage
!suggestions
!switchstorage
!sync
!tracks
!upgrade
!usage
!userinfo
!verbose
!weight
!whyluckperms
!wiki
!helpchat
Helpchat is a general plugin assistance discord as well as the home of DeluxeChat, PlaceholderAPI, and many more.
Hi, how to get the umm User and his primary group?
in the newest LuckPerms of course
public static String getGroupName(Player p) {
return LuckPerms.getApi().getUser(p.getUniqueId()).getPrimaryGroup();
}
i had that
that was version 3.5 i think
Not exactly related to the API, but anyone mind quickly explaining how the luckperms online editor works?
I mean programatically
@crystal sonnet I need the group prefix though, not a players prefix
Hey Sam! Please don't tag helpful/staff people directly.
I didn't look into it too much but I didn't see much relating to web requests, but I'd imagine that's what it is?
I think it connects to the webpage from luckperms via API
And umm lp itselfes is connected too and when you hit the command it will get the session from webpanel and sync the things you edited
@wheat veldt why?
Sth like that
The players prefix includes the ones that come from groups
hm well
public static String getGroupName(Player p) {
return LuckPerms.getApi().getUser(p.getUniqueId()).getPrimaryGroup();
}
@nocturne elbow how i can get it in v5? BrainStone
:c
i don't think you understand what I mean
if I were to do it that way, id need to be able to get the prefix from a specific track
@clever rose LP uploads a JSON with all permission data onto https://bytebin.lucko.me/. That gives back an ID where you can access the data
The ID gets appended to the editor link
And that accesses the data
Saving works the other way round
ahh
@nocturne elbow should work the same way
Did you try it?
Since idk v5 the api is refreshed fully i think
Did you try it?
@crystal sonnet sure
Hey LoΓ―c K. | RainyDev! Please don't tag helpful/staff people directly.
Remove the import for the LuckPerms class and let it autoimport
That path changed
I was wanting to do something like this with my own plugin so I was just wondering. Any reason that it doesn't use a post request since it seems like that would be more suited
I don't really do web dev, just wondering
A post request from where to where?
BrainStone ok, i'll try that
@wheat veldt what do you mean?
Umm
Have I to import the api itselv or just the normal LuckPerms plugin how it is on Spigot
Mc
When I've time I'll import in Intellji and use maven
Actually i opened in eclipse ππ€’
I can try i think at 19:30 sth like that :D
ok
@clever rose
A post request from where to where?
@clever rose @wheat veldt hello?
Sorry I left, I thought it would be easier to make a post request from LP to a web api at editor.luckperms.net and that created the id
There's no difference to where the data gets sent
I guess I'm straying away from luckperms now, but what would be the best way of handling a scenario where a webapp needs to get information from the server (player count for arguments sake)
The reason being that it's not uploaded to the editor is that it's just static files. There's nothing on the editor that could handle these requests
Either have the server host a web API or have the server upload the data somewhere
obviously, just wondering why that approach wasn't taken, but I guess it doesn't matter either way as the JSON is still stored and accessed
but without hosting a web app in the plugin, there would be no way of querying for the data right? It would just have to be uploaded periodically
Yes
is spring the only / main option for that
how memory intensive would it be to run spring boot and a spigot serveR?
Luck decided to upload the data to website because querying isn't necessary and because that makes it a lot more accessible. Many servers are hosted in a way that would prevent them from being able to use additional ports
is spring the only / main option for that
how memory intensive would it be to run spring boot and a spigot serveR?
No idea for either
Btw, the bytebin is OS: https://github.com/lucko/bytebin
yeah of course, that makes sense. Just asking for my own purpose as I would want to query the server in order to be able to control certain things, run commands for example
alright, thanks!
To run commands, use the server query
?
Minecraft offers a server query
Where you can access server data and execute commands
oh?
It just needs to be enabled
on a port?
server.properties
it can even run on the same port as the MC server itself funnily enough
would you not be able to use that to get server information?
You can use that to get server information
I have never used it so I can't tell you how to do it
But it's possible
Maybe plugins can add data that's querriable
Not sure though
You'll need to look into that
!api
Learn how to use the LuckPerms API in your project.
It should give you code on how to get the API instance
brain.exe stopped working
k
hi hi! is the wiki up to date when it comes to using the API to get a user and grant them a permission node? i've followed the examples and the DataMutateResult is successful but it doesn't seem to add the node to the user and i don't know what i'm doing wrong:
// ...
RegisteredServiceProvider<LuckPerms> provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class);
this.lp = provider.getProvider();
// ...
this.permissionNode = Node.builder(String.valueOf(properties.get("node"))).build();
// ...
public void grant(UUID playerUniqueId){
UserManager userManager = this.lp.getUserManager();
CompletableFuture<User> userFuture = userManager.loadUser(playerUniqueId);
userFuture.thenAccept(user -> {
DataMutateResult result = user.data().add(this.permissionNode);
System.out.println("granted " + this.permissionNode + " to " + playerUniqueId);
System.out.println("success=" + result.wasSuccessful());
});
}
(using thenAccept instead of thenAcceptAsync because the whole thing is already wrapped in its own async task)
building the permission node works so that doesn't seem to be the problem
this is my output, is it because there is no context on the node? or does the permission node need to exist somehow (i.e. registered by another plugin) to be added? i have tested with a few fake nodes because i didn't set up any group or other plugin on my test server
[20:04:01 INFO]: success=true```
please @ me in case there is an answer and i don't see it c:
@stray smelt make sure to save changes when you're done
I've been trying to and understand his custom .commodore file extension , but I'm not completely getting it
And if you're async anyways you can just use loadUser(xxx).get()
hey, good evening π
Anyone knows how to set Prefix/Suffix via api?
(For a player and for groups)
Luck actually made an example for this here: https://github.com/LuckPerms/api-cookbook/blob/master/src/main/java/me/lucko/lpcookbook/commands/SetPrefixCommand.java. If you don't want to add the prefix when a command is executed, just ignore the first section
5.0 and 5.1 was more a qualify of life update. The update also included some additional methods to have the API more simplistic (ish)
The changes can be seen here on the 10th May https://github.com/lucko/LuckPerms/commits/master
The biggest additions being the GroupManager#modifyGroup and UserManager#modifyUser methods. The latter being used in the example I linked
Thank you π
No problemo π
ooop right i did forget to save! thank you π @crystal sonnet
Is there a more efficent way to get the weight of a user?
user.getCachedData().getMetaData(queryOptions).getMeta().entrySet().stream().filter(e -> e.getKey()
.equals("weight")).mapToInt(e -> Integer.parseInt(e.getValue().get(0))).findFirst().orElse(0);
How can I get all the "active" permissions from a user?
I want to check if a player has a specific permission added to his account (so * will not trigger is, or being opped)?
(Please tag me when responding)
user.getCachedData().getPermissionData().getPermissionMap()
or something along those lines
@north basin ^
@sleek maple you can just use user.getCachedData().getMetaData(queryOptions).getMetaValue("weight");
Thanks Luck, it worked π
Good afternoon, I would like to be informed about the updated api of the new version of LukePerms to get the player prefix
If you're running the absolute latest version of the API, 5.1, this is to get the prefix once you already have the player https://github.com/LuckPerms/api-cookbook/blob/master/src/main/java/me/lucko/lpcookbook/commands/GetPrefixCommand.java#L31
Tanks
Hey, how can I listen to the UserManager through the API?
@spring helm what?
Hello, after using LuckPerms#getUserManager().getUser(#UUID); and getting the prefix of the primary group, I noticed it'll always be default. How would I get the group of a player that's highest on the ladder?
@tepid night do you really want the highest group, or do you actually want the highest prefix from all groups the player has? (In other words what /lp user <user> info displays as the prefix)
The latter, yes
!api
Learn how to use the LuckPerms API in your project.
That should help @tepid night π
Just as a quick note, the example uses the 5.1 API
If you're on the 5.0 API stuff works different
That's okay, this should be enough info regardless
You can also replace this.luckPerms.getPlayerAdapter(Player.class).getMetaData(player) with user.getMetaData()
user.getCachedData().getMetaData(lp.getContextManager().getQueryOptions(user).get()).getPrefix()```
That's the 5.0 way
I'll give it a try and see if that's what I needed. Been hassling with the primary group's prefix for too long
Because that's not the one you want in the first place π
Alright
I'd recommend to update to 5.1
There are no breaking changes
Just improvements
I'm sadly enough not responsible for that or I would've done so as soon as it came out
Alright
Thanks a lot though
You're welcome
This version and the LuckPerms-Bukkit-4.2.58 of the plugin I was using but now that I put the latest one doesn't work anymore I would like to know if there is still that version for bungee?
!api @tacit roost
Learn how to use the LuckPerms API in your project.
Hey david261! Please don't tag helpful/staff people directly.
@jaunty pecan
Hey david261! Please don't tag helpful/staff people directly.
Seeing a paste of the problem makes everything so much easier! Use https://bytebin.lucko.me/ for easy pasting!
Pastebin any relevant segments of the console log. If it's a startup error, this includes the entire startup log!
Pastebin the entire LuckPerms config file (passwords removed) as well as any other relevant files!
Hey david261! Please don't tag helpful/staff people directly.
one more time you ping @nocturne elbow ...
read #rules
also, full server log please
sorry no english speak [sorry :/]
./yourserver/logs/latest.log
Hey all, I'm trying to set a players rank on join but this isn't doing anything, what did I do wrong?
RegisteredServiceProvider<LuckPerms> provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class);
if (provider != null) {
LuckPerms api = provider.getProvider();
api.getUserManager().loadUser(player.getUniqueId(), player.getName());
final User user = api.getUserManager().getUser(player.getUniqueId());
if (user != null) {
user.setPrimaryGroup("a");
}
}```
@rare inlet first of all if you use loadUser, use that to get user instance. Second, no need to specify the user name when you have the UUID, third if the player is online, no need to load the user
Next setting the primary group is only changing which one of the groups the player has is the most important
It doesn't add groups
!api for examples
Learn how to use the LuckPerms API in your project.
Hi. Just hypothetically speaking, when a player temporarily inherits a ground (i.e. for 7 days), is there a way to fetch the remaining time of the inheritance of the group through the API?
For more context, I'm wanting a command that displays how long a player has left of a group.
@rigid ridge did you find a solution?
Placeholders ππΌ
Ok
Is there a event when a user get changed?
chanched
What?
changed*
Guys I need help
changed*
@sleek maple well what do you mean when a user gets changed?
jea
So me and my friends have a apex minecraft server, We ALWAYS Use Luckperms and It works AMAZING, and all of a sudden we install some plugins and NOTHING WORKS, It says that you already inherit the perms, but the prefix does not show, It's al properly configured, It worked before, what do i do?
pls i really need help
You you installed plugins and one of then is now the primary permission provider...
Yea and one of the is a valid permission provider for Vault.
At least is sounds so
#support-1 or #support-2 @dusk falcon
This channel is for plugin developers
Ohhh sorry
@sleek maple I still don't know what you mean
I need to execute something when a user get changed, for example if you add a parent
!api
Learn how to use the LuckPerms API in your project.
... I allready had a look in to it but there is no javadoc or desciption where there get called.
UserLoadEvent is pretty clear bus PlayerDataSaveEvent...
*ok there is no javadoc published to the repo
Yes found it but why isn't it in the maven repo too?
It is?
Ok you are right bur my ide didn't want do download it π
That's nothing I can help with
Hey, why isn't this code returns the correct rank of the player:
public String getRank(Player player){
for(String rank : ranks){
if(player.hasPermission("group." + rank)) return rank;
}
return "-";
}
What does it do instead @static flame ?
I have an array of ranks (it's prison so it's just A - Z) but it doesn't return the correct one
It always returns A
Is it because that all the other ranks inherit from A?
Yes
Lmao nvm
Start from the other end
I'll just check from the end
Yeah I understood what I did wrong when I wrote it XD
Thanks anyway π
You're welcome
!api @tight wave
Learn how to use the LuckPerms API in your project.
@rustic laurel thanks.
Hey Zeronerve! Please don't tag helpful/staff people directly.
oops sorry
Hehe
Lol that's the idea, just usefuller
Hi question about LuckPerms API
Can i remove node from the player? i know nodes are immutable but is there a way?
!api these two links + the javadocs should explain it
Learn how to use the LuckPerms API in your project.
all good, just in G2
hello i need to setup world guard, i have a bed wars map and spleef i would like the commands to make seten parts of the world where people can not destroy blocks and a parts that people can destoy blocks
!extracontexts
Sorry! I do not understand the command !extracontexts
Type !help for a list of commands.
!extracontext
Sorry! I do not understand the command !extracontext
Type !help for a list of commands.
ok
I've seen the spigot version has an api, does the bungee version so I could make a grant gui to run on my bungee as well as spigot
The API is for every platform.
hey there folks, wondering if it's possible to get what position of a track a user is in? or if someone could point me in the right direction
Luckperms or LuckPerms?
me no help thanks π
I don't know, i just thought it was one luckperms, it's the api that lets you promote/demote players and get their primary group
why doesn't luckperms work for me? i put in the console lp editor and nothing
@mighty heath PluginManager is case-sensetive im pretty sure
sorry I'm not really understanding, how does pluginmanager come into this? I have luckperms already integrated all fine, I just need guidance in how to check how far up a track a player is
wanna be friends?
?
Learn how to use the LuckPerms API in your project.
howcome this is returning multiple prefixes? public String getGroupPrefix(String group) { if (Achievements.luckperms.getGroupManager().getGroup(group) != null) { CachedMetaData cachedMetaData = Achievements.luckperms.getGroupManager().getGroup(group).getCachedData().getMetaData(Achievements.luckperms.getContextManager().getStaticQueryOptions()); String prefix = cachedMetaData.getPrefix(); return prefix; }
check the meta formatting options in your lp config file π
Hey! Is there anyone who could help me out with global ranks? I would truly appreciate it! If you can please dm me!
thanks luck β€οΈ
!ask in #support-1 or #support-2 @robust loom
Please ask the question you have. Don't ask to ask, or ask to DM someone. There are people here to help you, but we need to know what to help you with, so please just ask the question you want to in as much detail as possible!
@gray tusk ask in #support-1 #support-2
Will do! sorry :0
Help me @jaunty pecan ?
Hey Altevi! Please don't tag helpful/staff people directly.
!ask @oak nexus
Please ask the question you have. Don't ask to ask, or ask to DM someone. There are people here to help you, but we need to know what to help you with, so please just ask the question you want to in as much detail as possible!
sorry
Also be aware of what channel you are in
Sorry, but I've read the entire wiki and haven't found the error.
The perms I set up on the bungeeluckperms are not working on the other servers.
ok
And I mean the gist of the message is to just ask your question
noob question here, on the wiki it says to add a permission you type this: DataMutateResult result = user.data().add(Node.builder("your.node.here").build());
Do I really need to have the DataMutateResult or can I just type the 2nd part?
also whats the difference between Node and PermissionNode
Have a look here:
cheers π
Hey EEJAY! Please don't tag helpful/staff people directly.
Youβre welcome
Can anyone pls help me I am about do cry π
So I am making a plugin where you tp to a certain location, if you do /afk
If you do /setafkspawn , It'll save your world, x, y, z, yaw and pitch to a config
So that if you do /afk it'll teleport you to the Location
The thing is, when I initialize the Plugin, it reads the config and gets a NullPointerExeption for the saved world
Can anyone help me?????
umm, this is for luckperms only. perhaps you could post it on the spigot forums?
They never answer π
@nocturne elbow For future reference, #support-1 and #support-2 are for regular help π That bug should be resolved in the latest version. Download the nukkit version from here:
!downloads
You can download LuckPerms for Spigot/Paper, BungeeCord, Sponge, Nukkit or Velocity.
They never answer π
@wanton sedge Sometimes you just gotta wait a while π
I did a post 1 week ago
is there a way to check someone weight?
or like if i got rank 1,2,3,4,5 and i got a rank voucher system what is the best way to do it.
!api should have the method for getting weight
Learn how to use the LuckPerms API in your project.
How can I set a suffix through the api rather than dispatching to command
!api not loaded
Learn how to use the LuckPerms API in your project.
Hello, I am having this error when trying to use the LuckPerms API:
java.lang.IllegalStateException: The LuckPerms API is not loaded.
at net.luckperms.api.LuckPermsProvider.get(LuckPermsProvider.java:50)
@lilac mountain you have to wait for the API to be loaded before you can access it
Itβs best to load it in your onEnable
Not earlier
@crystal sonnet How would I load the API?
Hey JoshuaLovesCode! Please don't tag helpful/staff people directly.
Sorry π¦
The same way you do it right now
Just not as early
In your onEnable, as I said @rapid bolt
Youβre calling that code too early
I mean I donβt know how else I can explain it to you
no no I have it loaded I just want to set the suffix through the api and I'm not sure how because the code for getting the suffix doesn't have a set suffix method
It has been 35-40 minutes since I started the Bungeecord Proxy with LuckPerms on it.
Alright, I tried setting it onEnable. I got this: https://i.joshualovescode.dev/0l4FRg7b2KXL2TUcusELxem6LvAnRtVo.png
@crystal sonnet ^
Hey JoshuaLovesCode! Please don't tag helpful/staff people directly.
π¦ Sorry, forgot again, I am used to pinging people.
not when you have nothing nice to say. Remaining silent is better than hurting another for no reason. Unless you take pleasure from it?
i doubt you do
so be nice π
You donβt know me
Lol
Idk just honestly wanna know why he named himself that
Donβt tell me youβre not curious
@rapid bolt is LuckPerms installed?
And do you (soft)depend on LP?
@lilac mountain sorry, I pinged the wrong person
@lilac mountain getting the suffix works the same as getting the prefix
@rapid bolt just to be sure LP loads before your plugin?
What version of the API do you use?
Hmm that's weird
I'll look into it now
Doesn't seem to be anything you're doing wrong
oh
do you have the maven shade plugin defined in your pom.xml?
@rapid bolt
Hey, Yes, I am using the maven shade plugin.
Is there a problem with the shade plugin?
https://cdn.mnewt00.tech/Svea1tK https://cdn.mnewt00.tech/0pdRwse https://cdn.mnewt00.tech/AzSdzFq It's also on my end (I'm the other dev)
Afaik shading the LP api won't make it loaded or something. Try excluding it from shading (maybe https://stackoverflow.com/questions/22351542/maven-exclude-dependency-from-shade-plugin helps)
@rapid bolt don't shade APIs in ever
Ah, Thank you!
fixed it? π
Just compiling and testing π
that's what it looks like
nope, it's on my other test server
:p
Hey Luck, according to this: https://discordapp.com/channels/241667244927483904/420538367986499585/711179158759145502
Many of the people that use LuckPerms don't have these methods etc - is there an old methods to use it?
I want to add support for both methods (the new and the old ones)
(mention when responding please)
Yep, those methods are in api 5.1
So your users will need to be using a LP version newer than 5.1.0
@north basin ^^
Are there other methods for versions below 5.1?
I am not joking, but 90% of my customers that using the plugin are actually using outdated versions of LuckPerms
Yes there are
Instead use the getPermissionData() method which accepts a QueryOptions parameter
you can get a query options instance for the player from the ContextManager
The javadocs contain the release where each method was added
Look for a tag like
@since 5.1
means the method/class was added in release 5.1 ^^
if there's no tag, assume it has always existed (since 5.0)
Orrrr, nag your users to update LP :p
Hello, im trying to figure out version 5 of LuckPermsAPI, how does one get what group a person is in now?
since this no longer works and API wiki is outdated ```java
public static CompletableFuture<Boolean> isAdmin(UUID who) {
return api.getUserManager().loadUser(who)
.thenApplyAsync(user -> user.inheritsGroup(Admin()));
}
directly in a group? or including inheritance too?
public CompletableFuture<Boolean> isAdmin(UUID who) {
return api.getUserManager().loadUser(who)
.thenApplyAsync(user -> user.getNodes(NodeType.INHERITANCE).stream()
.anyMatch(n -> n.getGroupName().equals("admin")));
}
searches the users own nodes for any group inheritance called "admin"
(ignores context)
I guess this would be another way of doing it too
public CompletableFuture<Boolean> isAdmin(UUID who) {
return api.getUserManager().loadUser(who)
.thenApplyAsync(user -> {
return user.data().contains(
InheritanceNode.builder("admin").build(),
NodeEqualityPredicate.ONLY_KEY
).asBoolean();
});
}
Both of those don't show up, using: ```xml
<dependency>
<groupId>net.luckperms</groupId>
<artifactId>api</artifactId>
<version>5.0</version>
<scope>provided</scope>
</dependency>
cant change to 5.1
doesn't show up as a option
you might need to refresh the project in your ide after manually setting it to 5.1
yep
might there be a reason why a player relogging into the server gets their rank reset, I'm 99% sure it's something to do with caching
User user = Zelos.permission.getUserManager().getUser(player.getUniqueId());
ImmutableContextSet.Builder immutable_context = ImmutableContextSet.builder();
ContextSet context = immutable_context.build();
Zelos.permission.getTrackManager().getTrack("levels").promote(user, context);
From what I've been able to gather, the "contexts" are which world, server or ect the promotion is applied but I may be wrong there
You need to save the user after promoting them
i cant put the files from pex over to luck perms :/
i dont wanna make all the ranks again
First of all, that belongs in #support-1 or #support-2 (I mean what do you think "dev" stands for?)
And second
!migration @fiery quartz
Learn about the process of migrating from another permission plugin.
i couldnt get it to work :/
First of all, that belongs in #support-1 or #support-2 (I mean what do you think "dev" stands for?)
~ "Developer" stands for A software developer is a person who is involved in software programming. The term can also be understood to mean an entire company. A software developer is also known as a programmer, computer programmer or application developer.
I've got a method here```java
/**
- Set group permissions via LuckPerms.
*/
public void setGroupPermission() {
User user = api.getUserManager().getUser(name);
System.out.println(GroupManager.getInstance().getGroupMap().keySet().toString());
for (String key : GroupManager.getInstance().getGroupMap().keySet()) {
if (key.equalsIgnoreCase(group)) {
boolean success = user.data().add(Node.builder("group." + key).build()).wasSuccessful();
System.out.println("Setting group true: " + key + " : " + user + ":" + success);
} else {
boolean success = user.data().remove(Node.builder("group." + key).build()).wasSuccessful();
System.out.println("Setting group false: " + key + " : " + user + ":" + success);
}
}
}and it's printing[SrAdmin, Owner, Mod, Mvp, Builder, Developer, Admin, Elite, Helper, Master, Matrix, HeadBuilder, HeadOfStaff, Vip, Member]
Setting group false: SrAdmin : (ApiUser Object):false
Setting group false: Owner : (ApiUser Object):false
Setting group false: Mod : (ApiUser Object):false
Setting group false: Mvp : (ApiUser Object):false
Setting group false: Builder : (ApiUser Object):false
Setting group true: Developer : (ApiUser Object):true
Setting group false: Admin : (ApiUser Object):false
Setting group false: Elite : (ApiUser Object):false
Setting group false: Helper : (ApiUser Object):false
Setting group false: Master : (ApiUser Object):false
Setting group false: Matrix : (ApiUser Object):false
Setting group false: HeadBuilder : (ApiUser Object):false
Setting group false: HeadOfStaff : (ApiUser Object):false
Setting group false: Vip : (ApiUser Object):false
Setting group false: Member : (ApiUser Object):false```but when I do/lp user Sms_Gamer_3808 infoI just have group default
Sms_Gamer_3808 is my username btw, and I have "group" of "Developer"
so it's saying I was successful, but when I get my info, it doesn't show my group there
wait I might be retarded
hrm
even when I do java public void setGroupPermission() { User user = api.getUserManager().getUser(name); System.out.println(GroupManager.getInstance().getGroupMap().keySet().toString()); user.setPrimaryGroup(group); }it still doesn't work
oh I'm getting api fromjava provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class); api = provider.getProvider();if that helps
You need to save the user after promoting them
oh yep, cheers π
o h
welp I just wasted 2+ hours of debugging
yep it works when I save the user
XD
api.getUserManager().saveUser(user);
thx so much β€οΈ
sorry mate, want to help but it's not my specialty lol
glad you got it working tho!
when giving/removing a permission do I need the DataMutateResult? the inspection is kinda bugging me..
and yes ik i can disable it but still..
How do u save a group (I know its a stupid question)
Pretty much the same way you'd save a group
api.getGroupManager().saveGroup(group); ?
Give it a try
Thanks @karmic nebula
!api
Learn how to use the LuckPerms API in your project.
Is there a list of changed/removed methods between lp api 5.0 and 5.1?
To my knowledge there were only methods added @sudden kelp
Some methods did receive additional parameter lists, but that's it
Okay nice, I updated few of my plugin with heavy lp usages and all are fine. So seems to be ok. thx
You're welcome
I mean if you're not using 5.1 features stick to 5.0, as 5.1 is fully backwards compatible
So you can support LP 5.0 and 5.1
Hey,is there a method to call the sync like /lp sync command? And is the sync performed async?
@uneven radish Since permission data syncs automatically on the server it was altered, do you mean /lp networkingsync to push the update to the other luckperms instances?
If so, you'd need to use api.getMessagingService().pushUpdate() https://github.com/lucko/LuckPerms/blob/master/api/src/main/java/net/luckperms/api/messaging/MessagingService.java#L57
I'd also be interested in the use case
Not saying there isn't a valid reason to sync from the storage but there's a high chance it's a round about way of doing things
!api @sly charm
Learn how to use the LuckPerms API in your project.
@oak crescent Did u work the api out?
That's exactly what I want
How much java do u know?
Enough
@oak crescent I havent tried to build it or anything but
CachedMetaData metaData = user.getCachedData().getMetaData();
metaData.getPrefix();```
@crystal sonnet Need that to sync user prefix from bukkit to bungee
Hey cerexus! Please don't tag helpful/staff members directly.
Thanks Ryan :)
How do i check if a user have a spesific parent?
Also when his group has the parent.
.resolveInheritedNodes()
i think
im noob
Set<UUID> uuids = this.luckPerms.getUserManager().searchAll(node -> node.getKey().equals("core.acp.team") && node.getValue()).get().keySet();
java.lang.ClassCastException: de.lightfall.core.TeamService$$Lambda$354/1254152179 cannot be cast to me.lucko.luckperms.common.node.matcher.ConstraintNodeMatcher
me.lucko.luckperms.common.api.implementation.ApiUserManager.searchAll(ApiUserManager.java:134)
de.lightfall.core.TeamService.getUsers(TeamService.java:41)
Do enyone know why i get this error here?
You need to use one of the matchers defined in NodeMatcher
so try with something like
Set<UUID> uuids = this.luckPerms.getUserManager().searchAll(NodeMatcher.key("core.acp.team")).get().keySet();
thx
ok... Have the meta core.acp.team: 'true' and do:
Set<UUID> uuids = this.luckPerms.getUserManager().searchAll(NodeMatcher.metaKey("core.acp.team")).get().keySet();
And allways get a empty result
I tried the same with permissions and that worked but not the meta
Hello! I am trying to make a simple plugin, but can't wrap my head around the api.
I want to give a permission node to users who join.
When players join, give them a certain permission node. The permission Ii want to add is: deluxetags.tag.BetaTester
I want to give the player the permission node, not to a group, since this is a tag for people who jjoin during the beta period.
User user = luckPerms.getUserManager().getUser(someUser);
user.data().add(PermissionNode.builder("some.permission").build());
luckPerms.getUserManager().saveUser(user);
@sick marsh
uuid
so would e.getPlayer().getUniqueId() work?
yes
User user = luckPerms.getUserManager().getUser(someUser);
user.data().add(PermissionNode.builder("some.permission").build());
luckPerms.getUserManager().saveUser(user);
omg i didnt need the DataMutateResult this whole time
ok... Have the meta core.acp.team: 'true' and do:
Set<UUID> uuids = this.luckPerms.getUserManager().searchAll(NodeMatcher.metaKey("core.acp.team")).get().keySet();
And allways get a empty result
Someone that knows german language good plz?
PrinterNico, ah
didn't know you were looking to grab meta
although hm, the meta key method should work for that
what storage type are you using?
MariaDB
hm ok, I have a feeling it could be to do with the escaping of the . characters
Is there a way so escape . ?
would you be able to quickly test using a meta key team
isn't there somthing like a UserManager#searchAll() with cached data?
Set<UUID> uuids = new HashSet<>();
Stream<Group> team = luckPerms.getGroupManager().getLoadedGroups().stream().filter(group -> group.getCachedData().getMetaData().getMetaValue("team") != null);
team.forEach(t -> {
try {
uuids.addAll(this.luckPerms.getUserManager().searchAll(NodeMatcher.key(InheritanceNode.builder().group(t).build())).get().keySet());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
});
Now i have this...
I assume there is not smarter way to do this?
It basicly get all users that inits the meta 'team'
Uhmmm, yep that looks ok
How can i set a temp perms on luckperms like for a 2 day perms or 3 days @here
@wild whale
Hey ΰ«―βΒ‘βΰͺ½ΟΒ‘ΰ«¨Β‘Ο β₯βΆ_ββ€! Please don't tag helpful/staff members directly.
need urgent help guys
Bruh
Please don't randomly ping people
Those who know about the API will be watching this channel
I don't know anything about the api and thus do not follow this channel
sorry man
How can i set a temp perms on luckperms like for a 2 day perms or 3 days @here
@daring dove this doesn't have anything to do with the API
!api
Learn how to use the LuckPerms API in your project.
I cannot make new groups with the API?
?
I can't make groups with the API?
@sturdy niche yes you can. Have you checked the group manager?
Group test = luckPerms.getGroupManager().createAndLoadGroup("test").get();
5s and I found it....
https://javadoc.io/doc/net.luckperms/api/latest/index.html
And also there is a JavaDoc
Hello guys i have set ranks with lucksperm. And i have a scoreboard plugin. How to i see ranks on scoreboard ?
Oh okey
@sturdy niche (I have no idea here) but look at the docs for event.group, that's what's called (afaik) when groups are created
As the docs say, don't use the built in event system
I DID
No you didn't
Because if you did then you are blind
bruh wtf
Because there's an entire section that covers the event system
Learn how to use the LuckPerms API in your project.
Note that there are two links
Y
e
s
private final MyPlugin plugin;
public TestListener(MyPlugin plugin, LuckPerms api) {
this.plugin = plugin;
// get the LuckPerms event bus
EventBus eventBus = api.getEventBus();
// subscribe to an event using a lambda
eventBus.subscribe(LogPublishEvent.class, e -> e.setCancelled(true));
eventBus.subscribe(UserLoadEvent.class, e -> {
System.out.println("User " + e.getUser().getUsername() + " was loaded!");
// TODO: do something else...
});
// subscribe to an event using a method reference
eventBus.subscribe(UserPromoteEvent.class, this::onUserPromote);
}
private void onUserPromote(UserPromoteEvent event) {
// as we want to access the Bukkit API, we need to use the scheduler to jump back onto the main thread.
Bukkit.getScheduler().runTask(plugin, () -> {
Bukkit.broadcastMessage(event.getUser().getUsername() + " was promoted to" + event.getGroupTo().get() + "!");
Player player = Bukkit.getPlayer(event.getUser().getUniqueId());
if (player != null) {
player.sendMessage("Congrats!");
}
});
}
}```
This
ik
i
don't
understand it
BUT FINE
Be like that
Then you shouldn't be making plugins
This code is very clear and well comented
Easy to understand
Which means either you don't want to understand it or you can't
And in both cases I strongly advise against developing plugins
I've said it a billion times and I will a billion more:
Minecraft plugins are not the place to learn programming.
And using the LP API without a solid understanding of Java and MC plugins is even worse of an idea
im so done
it's frustrating if you don't have a good programming background
my experiences with the api have been nothing but positive so far, LP does a great job at documenting
dude i know Java, but i am bad at reading tutorials etc
with some practice, you should be all good to go
reading docs is an essential skill for programmers
you need to practice reading docs mate, there is too much for us to explain everything
pop's right
focus on one thing at a time
i've never seen an API like this before
reading docs is an essential skill for programmers
I'd go to say that if you can't read docs, you're not good at programming
hence it is an "essential" skill
lots of abstraction, you have to read into it a bit to understand how everything works
Plus you need a solid understanding of how LP works on a fairly deep level
this.main = instance;
EventBus eventBus = api.getEventBus();```
Bukkit.getPluginManager().registerEvents(new LuckPermsListener(this, luckPerms), this);
private LuckPerms luckPerms;
You don't register that event handler with the bukkit even bus
and what do i need to do then?
Just construct the class...?
I thought you were good at programming...
I mean knowing how to call a constructor is kinda more essential in Java
And btw are you getting null as the return value or are you getting a NullPointerException?
Huge difference
NullPointerException
So you pass null for the API instance
Which means you didn't initialize the private LuckPerms luckPerms; field
C'mon
That's what I mean
Super basic stuff
Now let me explain:
I'm really really not trying to discourage you.
I'm trying to tell you that this is too advanced for you and that you need to first learn the basics.
This stuff is essentially the Iron Man and you're struggling to run a quarter marathon
private void setupLuckPerms(){
RegisteredServiceProvider<LuckPerms> provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class);
if(provider !=null) {
LuckPerms api = provider.getProvider();
}
}```
okay
then i'll do something else than that
Ok. You store the intsance into a variable called api but do nothing with it
How is that supposed to work
yup
Did you expect that magic programming fairies to tell the compiler that you wanted to store that into the field instead?
It's not that you are too stupid
yup it is
It's that you're no where expecrienced enough for this
your right im too stupid for this
@sturdy niche
You need solid Java knowledge
pls
stop
with
that
java
I have been banned on other discord, bcs i randomly i can't java
i know java
but fine
Clearly not
i don't wanna continue this
Or not good enough
so bye
Then get better
It's literally that simple
Work on a simpler projects
Work on your documentation reading skills
Work on your code reading skills
Work on your debugging skills
Work on your error reading skills
Oh and work on your actual programming skills
That's literally all it takes to be a good programmer
And the patience of a saint xD
hi
Hi
question
!ask
Please ask the question you have. Don't ask to ask, or ask to DM someone. There are people here to help you, but we need to know what to help you with, so please just ask the question you want to in as much detail as possible!
is there a way to get
a player's groups
!aoi
Sorry! I do not understand the command !aoi
Type !help for a list of commands.
!api
i tried the group.(group name)
Learn how to use the LuckPerms API in your project.
Sure
but i have parents for each group
so for example admin would say srmod
because admins have group.srmod
any other way?
!api
Learn how to use the LuckPerms API in your project.
Well keep in mind that the guides on the wiki are just a very rough and basic guide
i know that's why im here
If you want to know everything that is possible, check the java docs
link?
API version 5.1 did get some serious upgrades
i appreciate brainstone for how far he goes to help even though most people would have stopped way earlier
hopefully stilau took the criticism well
π
Hello, i have a bungeecord server and a i have luckperms installed on the bungeecord server, but i want to add the permissions for the plugins that arent on the bungee server. So i entered all the permissions i wanted, but they arent working. How do i fix this or what is wrong??? @ping me if you can help
@toxic ocean You need it on the spigot servers as well
and a database to connect them all
What database should I use? @tired pond
?
!bungee @toxic ocean also ask in #support-1
If you run a Bungeecord network, learn how to correctly setup LuckPerms on all server instances (including Bungee).
Syncing data between servers
https://github.com/lucko/LuckPerms/wiki/Syncing-data-between-servers
hmmm possible clippy improvement?
Hello! I've been having a bit of trouble. I've recently made a new role on luck perms after I made this, it instantly put every player under that role. So I deleted the role and it still gives every player the role. I'm not sure what to do next. Any help would be great! Thank you!
I am having trouble setting a users group using the api.
I am handling network ranks using my own system so I solely want to set admins to the admin group.
user.setPrimaryGroup() does nothing as far as I can tell
@wide stone User#setPrimaryGroup simply sets an already inherited group as their primary group. To set a user's group, you'd need to add an Inheritance Node to the user's data, while also clearing any pre-existing Inheritance Nodes. The best way to set a group can be found here: https://github.com/LuckPerms/api-cookbook/blob/master/src/main/java/me/lucko/lpcookbook/commands/SetGroupCommand.java#L56
Dear Luckperms Support, we downloaded both Luckperms and Luckperms BungeeCord for a BungeeCord server, successfully installed them and connected the MySQL. However, with / lpb, despite multiple rights assignment in the console, only the error message with references to the command for luckperms. * Is indicated without further information in the logs. Sincerely, SneaX
@nocturne elbow not appropriate, read the #rules
@frosty meteor if you haven't already, ask in #support-1 or 2
This is for developer API support. If you've already asked or been helped, disregard me
Lars, can you ask me a simple question?
I checked the wiki and didn't find the answer
You know my position
What is 2 + 2?
Hello
How do I use LuckPerms API to remove a specific permission (possible with a wildcard, e.g. * or worldedit.* or my.perm.one) from a player? My current code is (LP Wiki used):
...
User user = luckPerms.getUserManager().getUser(p.getUniqueId());
List<String> forbiddenPermissions = ... // from config
...
for (String perm : forbiddenPermissions) {
if (hasPermission(user, perm)) {
getLogger().warning("Excessive " +
"permissions detected: " + p.getName() + ": " + perm);
DataMutateResult result = user.data()
.remove(PermissionNode.builder(perm).build());
getLogger().info("DataMutateResult[" + perm + "]: " + result.name());
}
}
...
private boolean hasPermission(User user, String permission) {
ContextManager contextManager = luckPerms.getContextManager();
ImmutableContextSet contextSet = contextManager.
getContext(user).orElseGet(contextManager::getStaticContext);
CachedPermissionData permissionData = user.getCachedData().
getPermissionData(QueryOptions.contextual(contextSet));
return permissionData.checkPermission(permission).asBoolean();
}
...
This code detects "excessive permissions" but does not remove them, here is the debug: https://blob.sx/nT7v
also, your haspermission method is going to return true even if the user inherits one of those forbidden permissions from another group
or if they have a wildcard set
or if they're opped
which is why you're getting the FAIL_LACKS result when removing the first 3
the hasPermission method is from LP wiki
what I want to achieve is to detect if a player has permission from a configured list (no matter why β op, group, whatever) and remove these permissions
How can I do that?
best way to avoid op problem is just dont use op
it's a security plugin I write to avoid people hacking ops/permissions
you can disable OP in the LP config
i think it's enable-autoop
makes OP a node
much easier to deal with
plus /op stops working too
how does that work with stuff that actually does require op sometimes?
vanilla features like placing command blocks while opped + creative
so I just tweak enable-autoop and keep my hasPermission code as is?
it'd probably be better to tell your users to toggle that as part of the setup for your plugin
automatically changing settings for users without telling them is a bit of a sketchy practice in my opinion
it's theirs to configure -- not yours
I'm writing this plugin privately for a server I work on^^
I mean I just tell the admin to tweak that setting, without changing my code, right?
UserManager userManager = LuckPermsProvider.get().getUserManager();
CompletableFuture< User > user = userManager.loadUser( uuid );```
this seems to be how you get data about an offline user
is there a different way for bungeecord
class - https://paste.helpch.at/exemumilaz.cs
error -https://paste.helpch.at/daxawifagi.bash
im getting a null error when using that on bungeecord
@left badger Could I see where you're invoking the getPlayerDisplayname on line 156 please
I'm pretty sure the error is occurring since the bungee api doesn't have any way for you to get the UUID of an offline player, resulting in the UUID being passed to these methods being null. I'm pretty sure you'll either need to query the mojang or namemc api to get the UUID from the username, or you have some form of central database were you simply collect user UUIDs and usernames. The latter option probably isn't very efficient however.
you're passing a null uuid to getPlayerDisplayName
okay thanks. I just wanted to make sure that I was using the proper method of loading user information for bungee
as long as im doing that right, i can work out my null errors
thank you
Hi, I'm having issues with this, can someone tell me how can I do to that?
Send what you're currently trying to and what you're attempting to get it to do
Well, I'm trying to make a plugin that gives you permissions depending on your "faction"
I'm doing it in the most simple way, but I'm having issues with "hasPermission" so I wanted to try with the Luckperms' Permission Check
!extracontexts should be able to do this with placeholderapi, afaik
Add contexts not supported by stock LuckPerms.
I'll look it, thanks
i mean, might as well use the surface level option where available, saves a lot of problems haha
Yep, but the permissions that I want to "add" is a "NameTag" permission, so it gives you a special NameTag depending on your Faction like "Ghozkiu Alexandria"
that will still work, if your factions plugin has a placeholderapi registered placeholder for faction name
Like this, so I need to change the Nametag whenever the player changes the faction
What shader / texture pack is that?
in the config, you enter under
placeholderapi-placeholders:
factionname: "%faction_name_placeholder%"
then you can use the context factionname to give the nametag.tag perm if they satisfy that factionname criteria
in the config, you enter under
placeholderapi-placeholders: factionname: "%faction_name_placeholder%"then you can use the context factionname to give the nametag.tag perm if they satisfy that factionname criteria
@rustic laurel Wow, love u haha, I'll try it, thx
Hey Ghozkiu! Please don't tag helpful/staff members directly.
Okay but what's that texture and shader
however you'd need to add the tag perm for every new faction - why not just use the placeholder in the actual nametag
Yep np, thx π
Dammit Larry
pls tell Glare he will be sad
This is why I don't play Roblox with you.
What shader / texture pack is that?
@dull rover Well, it's a Custom texturepack from my server, and I think the shader is "Sildurs Vibrant" I'm not sure.
Ahh okay
haha, sorry
Hello, some of my users are getting this error that i'm still trying to get my head around. I'm not using the LuckPerms API I'm just using the vault api to hook into LuckPerms. Here's the error, I don't honestly know what is null as i've tested and tested and still don't get the error my users are getting.
any help?
What's the exact call you're making @steady jay ?

