Good day to all. I hope I am writing in the right channel. I'm interested in the Vault implementation part. I've been trying to set up a "similar" program for a few months, but with the premise of offering more than just chat, permission and economy. Before I start to offer something with the permission, I wanted to ask here if you (I don't know exactly, who I should address directly ^^) want to create it, or if you want it at all.
So that no mischief is made with this part.
I should add that I do not necessarily have the best knowledge about everything etc.. You never stop learning^^.
Here to the project (hope I'm allowed to link it) https://github.com/Avankziar/InterfaceHub
#contributors
1 messages · Page 1 of 1 (latest)
im not really sure what your actual question is here
The question is whether to build an interface together to be able to implement it in the plugin. In the sense of the Vault Plugin only hopefully better^^
(was in reply to a shitty server invite instructing me to join)
Does anyone here know how the jarinjar hack works? My question is, by using this do you have to expose all the classes that are intended to be used as an API by external plugins as interfaces in the main jar that contains the jarinjar?
Is there a way to somehow inject the actual implementation into bukkit's class loader?
by using this do you have to expose all the classes that are intended to be used as an API by external plugins as interfaces in the main jar that contains the jarinjar?
if the implementation of those interfaces require classes from the classpath that is only available on the JiJ's class loader, yes
Is there a way to somehow inject the actual implementation into bukkit's class loader?
not easily and super hackily but, why not just expose interfaces representing the classes instead?
CC @sterile laurel
I don't know how I feel about rewriting my entire plugin with unnecessary interfaces. My plugin doesn't have a single API entry point that accesses everything else like LP, also even some of the utility classes are meant to be used externally because of addons.
I haven't tried ClassLoader#defineClass yet, hopefully that'll work. If not, I'll try generating interfaces or something with asm
Wait it looks like I don't even need to have a jarinjar for my use case. I just wanted to implement the dependency manager. What's the main purpose of jarinjar?
Seems like I can run it on 1.17 so I guess they added that flag to the latest version by default
the illegal access flag got removed in java 17
If you’re gonna advertise, at least have a working link @glass geyser D:
First warning, this isn’t the place for it!
alright then
guys, i need some help
i have a config like this, but luckperms doesn't know what permission my plugin has
user can create many rewards as they want with different permission, how can i let luckperms knows my permissions?
Do the permissions stay the same or do they change?
It depends on the user, they'll change
They should be fine. If you're plugin uses the normal .haspermission to make a permission check to see if the player has that permission, it should work fine.
It's just those permissions may or may not show up in places like the lp editor suggestions or verbose (I said may, I haven't tested in ages)
There's only 1 permission is suggested to me 😦
i've restarted the server few times
do i need to create a list of Permission object?
so luckperms could detect it
You can still manually add the permission and it should work.
you mean add permission to the plugin.yml?
then users can't create their own reward
I mean in luckperms. You can still add it
Well how else are they ment to get the permission, if it's not added to a group or player? It would be a pointless permission
got it, thanks
ппривет
Is it possible to contribute to the luckperms web gui?
absolutely. everything is Open Source
nevermind, i thought there was a link in the desc for it
Also, if I want to add features would it be better to do that as part of luckperms or should I just make my own addon?
depends on what kind of stuff you want to add
it'd depend on the features.
if they're web related, you can throw your ideas in #luckperms-web and get feedback on it
I want to add some stuff like an ingame GUI for efficiency sake. I feel like a GUI where you can just click and toggle permissions would make things a lot easier.
that's highly unlikely to get added to the core plugin.
Okay then I will create an addon
how an in-game gui faster or more efficient that the web editor or commands?
prepopulated permissions
instead of looking up the permission node and then typing out a command it's 1 click
or using the web editor and typing out the permission node from memory
the web editor has suggestions
and how do you find the permission your looking for in an in-game gui
wouldnt that have like hundreds of pages
I just find even though I use luckperms web editor, around 50% of setting up my server is just tedious permissions. I want to just try things to make it more efficient
If you know the permission, you could then just type it out
This would just be for lets say I want to setup essentials, it would show me all the essentials commands and I can just click to allow or deny
how do you plan to get the permissions?
I just know it's possible
I'm not really thinking about details currently
there is no way to get a list of every permission
yes you can
not even luckperms does it. it just knows what permissions it has checked
you can get them the same way LuckPerms does, and get them when they're checked.
there's no good way to get EVERY permission though
Just scan every plugin.yml of every jar?
nope
why can't you do that
assuming people register them
plugins dont have to put their permissions in a plugin.yml
consider skripts has permission condition
shoot, yep you're right. But, if they are half decent they would
you can make it check any arbitrary string
Couldn't I check all the strings on a jar for things that look like permission node strings?
that would be really stupid
config strings, and permission nodes are structured the same.
but also wouldnt solve server-owner-provided permissions
forgot about that
even essentials itself cant register every permission in a sane way
per-warp permissions cant be put in the plugin.yml
that's a big reason that it'd be best to get the permissions when they're checked.
when they're checked?
but you also shouldnt rely on it
I also think most decent plugins would have the permissions in their plugin.yml
any permission that is dependant on how the server is configured cannot be put in a plugin.yml
what do you mean? For example what would be like that? Like the warps you mean?
per-warp/kit permissions in essentials, luckperms argbased permissions that involve group or track names, etc
scenario:
player runs /tpahere FryingPan > no permission (permission check is made)
admin uses your solution, and since there was a check made for the permission for /tpahere, it'll show up.
that's similar to how Luckperms does it.
If you run /lp editor and change https://luckperms.net/editor/ to https://bytebin.lucko.me/ you'll see a value called knownPermissions when permission checks are made, LP logs it for that duration of the server being online, which is how the editor gui gets its auto-completion
even if you had a list of permissions, i dont see how an in-game gui would help in adding them at all
I think for most cases those only make up a few of the permissions so I still think the efficiency would be increased by using an in-game gui.
Ah that makes sense, thank you :)
fun fact, you can
Not really.
Hello everyone, tell me how to delete player accounts
I doubt thats the only change that could cause issues. But if you want, sure pr it, just test it before lol. Remember also the backwards compatibility so ehhh, I kinda get why nobody wants to touch this
@harsh root
Hey Zero [Retired] [EN/DE]! Please don't tag helpful/staff members directly.
boop
Thx :)
Don't know if this is the right channel but I might as well try, I made a mod for LuckPerms metadata integration on Forge servers, specifically for MC version 1.18.2 where SpongeForge is not available. Anyways thought you guys might want to update your Wiki with that info https://luckperms.net/wiki/Prefixes,-Suffixes-&-Meta#displaying-prefixes-and-suffixes
Maybe it'll keep anyone from having to spend 3 days to get prefixes and suffixes to work on their server 😛
feel free to make a PR to the wiki here - https://github.com/LuckPerms/wiki/blob/master/pages/Prefixes%2C-Suffixes-%26-Meta.md
Could I possibly be a proofreader for German? Maybe even manager of the Crowdin project? And before one asks, yes, not only do I have experience, i also bring trustworthiness....
#translators might be a better place for that.
Just thought, because everyone always writes this command in there
@wispy wigeon Can you give me Proofreader?
you should be able to make corrections without the role :)
Seriously? Should I wait until he reads my message in maybe literally 2 years?
Proofreading on Crowdin without proofreader rights? I hardly think so
Yes you can, anyone with an account can make changes to the translations
@placid totem
Hey QuadraticKid! Please don't tag helpful/staff members directly.
thanks
you're welcome
Is there any chance this could be resolved anytime soon https://github.com/LuckPerms/LuckPerms/issues/3473
@harsh root
Hey OpaGijs! Please don't tag helpful/staff members directly.
@pale flint
Hey OpaGijs! Please don't tag helpful/staff members directly.
@noble cape
Hey OpaGijs! Please don't tag helpful/staff members directly.
why don't you ping them all
Sorry
ignore the random ping Jay - someone doesn't know how to properly tab names smh
What
poof
:O
in the future just make sure someone online sees it, helpfuls can @mods in our internal chat to grab all our attention quickly
with?
👍
This isn't a support channel - if you need support with LuckPerms, #support-1 and #support-2 - else #general
True

@pale flint ^^
Hey OpaGijs! Please don't tag helpful/staff members directly.
idc :)
BRO!! hype 😄 
truuue
For?
there was a scam link
Ohhh hahaha
@pale flint
Hey OpaGijs! Please don't tag helpful/staff members directly.
@noble cape
Hey OpaGijs! Please don't tag helpful/staff members directly.
@glossy wigeon
Hey OpaGijs! Please don't tag helpful/staff members directly.
Thanks 🙂
You know you can tag more than one person in a message 😜
@bright sable
True 😜
@harsh root @onyx vault
thanks, i've alerted the mods
👍
@harsh root
Hey Zero! Please don't tag helpful/staff members directly.

Being mod do be like that
Hey! Consider my wiki pr ❤️
Done! Just one request for a change and it should be good to go
Thanks! I've done your changes! Appreciate the quick response!
(mods alerted)
For?
ads/scam
Ah
wtf
Nukkit always breaks shit
i would say fukkit but thats a fabric bukkit implementation
Time to Nukeit
Joining rn
hello I have a problem when I do the ranks in the tab mix all how can I solve?
Wrong channels, wrong discord. This has nothing to do with LuckPerms.
@harsh root
Hey Zero! Please don't tag helpful/staff members directly.
-_-
Lmao was i just faster xD
BRO
Yes?
hi
Could someone look into https://github.com/LuckPerms/placeholders/pull/47
People are bothering me about that, which is not great
Also release on modrinth would be nice

ding dong
@ripe creek
you missed it
Hey TayzlexBH! Please don't tag helpful/staff members directly.
I swear, like 1% of this channel is actual legit stuff, and the other 99% is either spambots or people pinging us about spambots :/
I know exactly what id fix if i understood java better but im kinda forced to spend all my time on javascript so there goes that
¯_(ツ)_/¯
*points at #luckperms-web *
👀
I'd consider fixing Sponge for API9+ if I understood what was really needed :^)
re https://github.com/LuckPerms/LuckPerms/pull/3665 should I also add all the dependencies to the libs.versions.toml?
I guess anything where there is duplication?
might make sense to just stick to the gradle deps
are you open to adding support for minimessage in the prefix & suffix info message?
So that <red> would also be red https://i.imgur.com/EgNWVBQ.png
maybe
my only reservation is that people might blame us when their chat plugin then doesn't format it in the same way
could potentially have a toggle that makes LP 'flatten' the minimessage down to legacy & codes when queried through vault or whatever
idk if that's a good idea or not :p
probably not
😄
They do that now

If this is the new version of getting hacked, you should definitely change your password n stuff
@subtle spear Do not advertise here
mods have been alerted, dont click ^
wrong channel - also not really a LP thing
come in dms ill tell
@lilac lion First and only warning, don't send that shit again 🙂
@timber bough Phishing messages from @vestal glacier
Hey martijnpu! Please don't tag helpful/staff members directly.
The mods have already been notified. Will be handled shortly. 😀
Ah okey, did not know that. Thanks
Can someone powerful push a Fabric 1.20.2 version to Modrinth?
Do not advertise your server here please!
hacking pb

I don't know if it's right to post it here, but... I'm sorry
First of all, when you shut down the server, the corresponding error..
This is not the proper channel to ask for support. Use #support-1 or #support-2 instead. 
I have a small suggestion, but I wanted to ask first if this is not already realisable somehow, or if it even has enough potential to be built into LuckPerms.
If I want to test things with player permissions, I have to search for my test account every time, because I have quite a few individual permissions that I don't want to take out and put back in every time.
That's why I thought that it might be quite practical if there was a command with which you could temporarily set the player to a role (and also ignore all the individual permissions).
guys who knows all the colors of luckpemres mo I'll send you the photo as I say
what?
who sends me the link of all the colors you change
@sand cargo who sends me the link of all the colors you change
Hey manuelmignosa! Please don't tag helpful/staff members directly.
how to score I want that color
You're on the wrong channels and, possibly, server. This has nothing to do with LuckPerms as supporting the format on screen is up to the whatever's displaying your LP prefix (I'm assuming that's what you're referring to).
Hey santa_shark! Please don't tag helpful/staff members directly.
On it. Thanks.
@ripe creek @noble cape This got posted yesterday as well, Darklaw handled it.
I have some issues to setup the project locally.
I got some issue to determine the patch version in gradle.
Output with --stacktrace: https://mclo.gs/mTENen4
Sure
Is LuckPerms open to add a Sponge API 10/11 PR?
I would love to see luck perms have all of its versions published on modrinth due to it being a good place to download all my plugins across server software from the same api.
Hello Dash, how can I add temp to a rank that has both rank and job?
What's the proper way to fork LP? I forked via GH then ran git clone however because there are no tags the determinePatchVersion in build.gradle will throw errors.
Same as this error.
I'll just make a tag manually for now but maybe someone should look into that
it should just work out of the box, given that the git information is all there
unless you're doing something like, not fetching tags or --depth 1 or smth
Forking with GitHub wipes all the tags
no it doesn't
5.3 and 5.4 aren't there because i just haven't pushed them from local since i've forked it but that's not the issue anyway
Found the problem, you have to unselect "copy the master branch only" when forking
Yo it’s shrek 😏
could i have https://github.com/lucko/paste/pull/20 reviewed please :)
This is a LuckPerms channel. I’d ask in Lucks personal discord. Invite is in #general pins
ah didnt realise, thank you
Going to bump this pr https://github.com/LuckPerms/LuckPerms/pull/3863
I would prefer to see those events PRd to Fabric API instead of custom mixin hooks in LP
it feels like for something as basic as login handling, we should be using the events in fabric itself
I feel like these events would be bit too niche for fabric
With mixin into them being really straightforward
Tbf I don't see much reason for these events outside of something like lp
Fabric is kinda mixin-heavy platform by nature, so there isn't much reason for avoiding them
LuckPerms needs to process a player when they join - we currently use the builtin ServerPlayConnectionEvents.JOIN event for that
my point is, if that event is too "late", then either fabric should have an additional event in ServerPlayConnectionEvents or the existing JOIN event needs to be called earlier
if that was the case then Fabric API wouldn't need to exist and/or nobody would bother using it - neither are true :P
the benefit of using the API is that is makes updating to new Minecraft versions significantly easier
that is the key driver for me :)
These mixins are simple enough they won't make it much harder
Honestly I would be suprised if they even broke
And worse case it would likely require just small fix of the targets
I mixined there as I know people won't run things before onPlayerConnect
As mixining into that method is more popular
Through most use fabric events for that
Why is there a PermissionMapProcessor and a DefaultPermissionMapProcessor?
One is an interface that more than just DefaultPMP implements.
DefaultPMP, is for bukkits "default" permission system
https://github.com/LuckPerms/LuckPerms/pull/3950/files#diff-ebe2107a53d10525584eceb9c3d0ecac119f690a38351288dd255307f6088b1aR41-R45 this is the biggest thing left for the neoforge port - doesn't look like there is an API for looking up mods by the @Mod annotated class instance. I'll ask in their discord but we may need to require registering with a ModContainer or IModInfo instead.
Could we get a review/merge of this?
https://github.com/LuckPerms/placeholders/pull/59
GitHub
Adds support for version 1.21 and later while maintaining compatibility with older versions
Fixes #57
Hey, I have an small request. Could LuckPerm's Fabric Placeholder API be put on modrinth on something (ideally with all old versions too) with it being linked on the site
People are always confused, as they download whatever latest is which then won't work on their 1.20.1/older servers
And it is getting annoying :v
old versions arent even on ci anymore
I'd like some inputs on this PR https://github.com/LuckPerms/LuckPerms/pull/3965 - LP's unusual structure creates an interesting challenge on how to solve GH-3963
Hey! I'm Chris, part of the GeyserMC development team; and I wanted to reach out regarding a possible PR to spark.
For a while now we've been using a spark impl in a geyser extension and sent that out to users of Geyser-Standalone (essentially Geyser, but running in a standalone proxy separate from the Java server). Here's the code we have for it: https://github.com/GeyserMC/spark/.
Would you be interested in adding it "officially" via a PR?
Thanks in advance!
this is a channel for LuckPerms.
you'd be better off asking that in the spark discord.
Oh, wasn't aware that there's a separate discord. Thanks! I'll ask there.
heya is there any way to get older versions of LuckPerm's Fabric Placeholder API? currently looking for a version for 1.20.1 but unable to find it unfortunately D:
oops wrong channel sorry!
hey 👋
could i get a review/merge of this?
https://github.com/LuckPerms/rest-api-java-client/pull/2
https://github.com/LuckPerms/rest-api-java-client/pull/3
https://github.com/LuckPerms/rest-api-java-client/pull/4
It would also be nice if you publish that to the Maven repository :)
> Could not resolve all files for configuration ':bukkit:compileClasspath'.
> Could not resolve net.milkbowl.vault:VaultAPI:1.7.
Required by:
project :bukkit
> Could not resolve net.milkbowl.vault:VaultAPI:1.7.
> Could not get resource 'https://repo.lucko.me/net/milkbowl/vault/VaultAPI/1.7/VaultAPI-1.7.pom'.
> Could not GET 'https://repo.lucko.me/net/milkbowl/vault/VaultAPI/1.7/VaultAPI-1.7.pom'. Received status code 500 from server: Internal Server Error
> There is 1 more failure with an identical cause.````
I can't get this specific VaultAPI file from the lucko.me repo.
Here I can find it in the browser: https://nexus.lucko.me/#browse/browse:all:net%2Fmilkbowl%2Fvault%2FVaultAPI%2F1.7%2FVaultAPI-1.7.jar
But once you click on the file to actually download it, it returns a 500 Internal Server error. The other files in the directory can be downloaded.
Sonatype Nexus Repository
Hi,
I am interested in continuing the pr for minestom now that the permissions api was removed
Before I do the works I would like to know if my approach would be accepted
I would like to publish luckperms minestom maven artifact for every luckperms release, and then minestom implementations will include it in their project and initialize it
Would that be accepted into main branch?
look at the good first issue tag
Hi, i am running a 1.7.10 hybrid server and i would like to change something on the official site. The listed version of LP legacy 5.5.2 does not work on these servers even with the fix listed. I know no support is offered for this version but since its mentioned in the installation guide you may want to change that to make sure people download 5.5.0 which will work with this fix. I have talked to other server owners and some switched to PEX since the newest legacy version simply does not work.
If im out of line or in the wrong place please correct me.
make a pr to the wiki and it might get merged
I'd be in favour of merging
made the pr (i forgot)
why my command list is empty ?
Not #contributors related and refrain from cross posting please.
o ok
Heya! I'm curious, is there a particular reason why luckperms-neoforge uses the isolation loader system while e.g. the fabric impl doesn't?
Hello, I builded LuckPerms using gradle but I only got luckperms-bukkit.jarinjar not the whole LuckPerms-Bukkit-?.jar
Hey, there is an commercial service I want to use as a storage type for LuckPerms. Would a pull request adding a new storage type to LuckPerms be welcome? Others may use it as well, but it's soft-depended on a Plugin which is oss, but the server implementation is closed source.
What storage type tho?
https://github.com/o7studios/octopus-sdk using this type octopus. We want to support LuckPerms as before, since it has a nice integrations and several more features - writing own Permission system may be easy, but new unusual thing for clients 🤷♂️
it's not in use yet, but we'll start building an ecosystem around this for our clients.
I see. I mean, you can always create a fork and start implementing it. Once you are finished, you are open to create a pull request, but I don't know if it's getting merged or not.
if the server is closed source, then probably not :) as others have said, you are free to maintain a fork if you want
Is there something need for geeting feedback for this PR: https://github.com/LuckPerms/LuckPerms/pull/4164 ?
Only patience. I'll mention it to luck too.
Is there a way to deploy it into a 3-Party repo to testing it
Over a month, long wait
i mean its not common practice to review draft prs (not sure if its different here), maybe mark it as ready for review?
I added for those reases some to-dos and asked some questions
Hello!
I want to add the Minecraft Server Management Protocol to LuckPerms, I was asking for permission and confirmation if such PR will be accepted before I start.
minecraft.wiki/w/Minecraft_Server_Management_Protocol
luckperms already has a REST api of its own
That's great, I'll take a look into it
Although I unified RPC system isn't much harder, maybe even interfaceable with the REST API
I've looked into it, it's desgined for the standalone luckperms
It doesn't host it in with a running Minecraft server, and it's not a default thing
My usecase needs to be as little invasive as possible
its an extension to luckperms so itll run on any implementation, standalone or not
Hmmmmmmmm, I'll give it a try!
Thanks for the note! it's flawless, I've made a quick dashboard for it, but it's a WIP, I just wanted to test it out
I might contribute and add a GET /node later
Yet, is there no plans to host it somewhere? I want to use it at a large scale of user at some point, yet there's no GitHub releases for it.
plans to host what where? is the docker image not enough?
and, what would a GET /node endpoint be for? 🤔
To host the built REST extension jar
And for get /node, it should return all permission keys, making auto completion possible
well, the extension jar simply hosts the rest api, you still need a luckperms instance operating somewhere, what's wrong with the docker image?
it's a standalone luckperms instance with the extension ready to run
My project is a server manager, in-game or stand alone, the video above showcases it
I want users that has LuckPerms installed to be able to toggle a button for the integration to work, where the rest api jar is downloaded and placed in the extension folder, how will a docker image be appropriate here?
well i thought the idea was to have the dashboard interact with a luckperms instance somewhere, not necessarily on the server's own running instance, the standalone one on docker seems the easiest one to deploy if you're doing things at scale
but sure
Aha do you mean like linking the database of the standalone with the running server? I didn't realize that until now, seems to heavy imo
thats sexy af
I tried and quickly made one
IDK if I'll PR, I don't think my implementation is fitting nor it will work on all versions
HMMMMMMMMMM
HMMMMMMMMM
@wispy wigeon bloody devil. I didn't expect luckperms to be that quick to get a test out 🤣
Hey xeravax! Please don't tag helpful/staff members directly.
So assuming from the hytale permission class, and the fact it needs to be overridden.
The class for hytale has it's own full implementation of the exact methods it needs to use
But I wonder. if you have overrides for stuff like getGroupPermissions and addUserToGroup, it would mean those methods could be pulled from anywhere within Hytale's server software. Would luckperms need to be required to make support for all of that as well?
With their logic, some stuff is a bit scuffed. Like LuckPerms:LuckPerms being the plugin ID and everything being capital sensitive
eg:
Because from what I can see, HytalePermissionsProvider is included by default and is the first/standard permissionloader first and foremost
Is there any way/example on how LuckPerms enables per-platform settings? Does it even have those? 🙂
Fabric has (WIP) permission api (to replace 3rd party one) and since you will be one of users of the api, feel free to give feedback https://github.com/FabricMC/fabric-api/pull/5226
thanks! I have left a comment :)
Went ahead and added async check methods and extended keys to allow serialization
Question about what would make more sense for you in case of providers:
- Having main direct/sync method that returns the value directly (method returns @Nullable T) and optionally overridable method for async checks (method returns CompletableFuture<@Nullable T>)
- Having only method for async check, just having it block thread when sync methods are called (method returns CompletableFuture<@Nullable T>)
Defer to whatever Luck says obviously, but imo if it's a method where it being async can be reasonably expected, it should either be async-primary with the sync method delegating to the async by default (your second option), or simply only offering the async method to force people to handle it properly. However when async doesn't really make sense, just force people to sync-only
In other words, I think there should only be a CompletableFuture method offered to do a lookup for an offline player, while if the player is online than a sync method should be offered & probably the only option
...although looking at your PR, you've got things structured in a kind of weird way that makes that not really possible. As an API consumer, I don't see any safe way to make a guaranteed-sync lookup on PermissionContext[Owner], so all the blocking variants of methods returning a CF are essentially useless if you care about blocking the main server thread at all. It'd mean adding a second event for providers to implement, but it might be worth considering making everything on PermissionContext[Owner] sync-only & making the methods to get a Context for an offline player return a CompleteableFuture instead (fulfilled by the provider via said second event)
option one is better
(better for users, no chance that they accidentally call the async one on the main thread without knowing what they're doing)
Worth noting api for users wouldn't change
Just providers
Internally it would just call async one with join()
Worth noting both sync and async api's should work for online and offline players (and non-players too, but that isn't something LP would use as much I imagine)
that's not great then :( by exposing the CompletableFuture as API, the user knows its an async operation
and they can choose to .join() or .thenComposeAsync() etc
by hiding the join() call, it kind of defeats the point
Yeah personally I do prefer them to be separate
But modmuss was concerned it would be a premature optimization that just added extra complexity
it's not really an optimization in the performance sense
so yeah, I think we agree on that :)
Ok it will be merged as experimental module, but it should be good enough to use
Good time to check if you have any final concerns
@stable oxide since you're online too (I think!) - happy to clarify any of my comments here if that's more convenient for you
Answered on github
Generally main goal was to both satisfy more classic permission checks (like LP) and more modded-compat permission checks (is mod X allowed to do some action for player/entity with this context, think area protection for example)
yeah makes sense, I think it's possible to satisfy both use cases
.
Hey since you didn't answer on github yet, did the cast method solve issue you had?
👀
👀
👀
👀
I'm keen to encourage more people to help out with LP development (it's not as scary as it looks!) but not sure how to make it more accessible - hopefully this is a start
I've tagged some issues which I think might be easier to get started on, if anyone wants to have a look please do! https://github.com/LuckPerms/LuckPerms/issues?q=label%3A"good+first+issue"
I also grant anyone an exemption to the 'pls no tag' rule for questions in this channel regarding development of LP prs - that's gotta be worth something.. maybe.. anyway, feel free! I'd be very happy to help :)
it's not as scary as it looks!
vouch ||(okay maybe it is)||
but not sure how to make it more accessible
some basic contributing docs like how the project's laid out, the role of some of the common classes etc would help as well. I know when I first tried looking at the source I got overwhelmed by all the abstraction etc
(although that of course requires the valuable commodity of time which I know you don't have much of)
Spooky new channel 👀
I think that would be a good idea
I'll add it to my todo list :)
Yes
in the channel description you can actually # link to channels using the id by doing <#id here>
Hey plenguin! Please don't tag helpful/staff members directly.
That really needed a tag
But but... it is scary. Even after 2 (or 3) years as a developer now I am even still scared to even look at the code for LP and try to contribute no matter how much I want to :p
Yes
I agree.. it isn't regarding the development of LP
Well a /mute would help it.
I just can't resist from letting my finger press the @ button
Ahaha i called it
Maybe a clippy update to target your discord Id and edit any and all pings out of your messages.
XD
Would be extremely simple to do actually....
Than people would accuse me of ghost pinging using bots
Cancel the ping and remove it before the message sends ;)
omega starts preparing the update
How about a perma mute instead for teaching purposes
Plenguin actually is the only person i see who keeps getting away with it
its the layers of abstraction that confuses me lol
don't tell them I scam and take over the mod's accounts so they can't mute me
I have the luckycat item/trophy on my side so you cannot mute me! 
Unless
dyno go brrrrr
Making an example of plenguin you mean ;)
Eitherway getting off-topic now...
@wispy wigeon Was thinking I might try and do something for https://github.com/LuckPerms/LuckPerms/issues/3239
Maybe make it send a message to the user, and/or set a default name for the file if one isn't included? Something like "luckperms-backup"
@glossy wigeon That sounds reasonable to me
for the first route: I believe there is a method called sendUsage() or something like that, that all commands inherit
so can just check if the arg is missing, if so call that method and return
for the second route: generating a name automatically is fine, but will need to include a date/time within the name to avoid conflicts
I think I prefer no. 2
Same.
I wrote a draft contributors guide which I will eventually add to the LP wiki, but here's a first look
suggestions welcome
deployed it https://luckperms.net/wiki/Contributing
(suggestions still welcome!)
oh that looks so nifty!
The diagram is 🔥
Great visualizer, much better to understand than sifting through the code
hey man, if i can do it anyone can 😂
congrats!
Hmm okay. I like this option as well. As the file name option always seems to confuse people for some reason. So having it auto gen one will just make things easier. I'll have a look into It soon when I can. Hopefully I can work it out easily enough xD
sweet! sounds good
What's your preferred way for getting the date/time for the file name?
Define a DateTimeFormatter
Then use DATE_FORMAT.format(Instant.now())
that's how I'd do it
This is what i've got so far. It basically checks if the arg 0 is empty, and if it is, it sets the default one, otherwise uses the one they set.
https://i.imgur.com/QA59HZ5.png
nice, looks good
you'll wanna change the date time pattern tho to remove the spaces :p
and probably the timezone too
Good point haha. forgot about the spaces.
https://i.imgur.com/atEvp6M.png How that's?
Simple regex to just replace them all 😛
I mean, just change the pattern string to yyyy-MM-dd-HH-mm :)
Maybe move the DTF to a private (static) field?
Does it need it?
¯_(ツ)_/¯
If luck didn't mention it, i guess it's good 😛
Don't think it's missing anything, so should be good for a PR
imo you should put the declaration of DATE_FORMAT inside the if statement
True, because it's only needed on that particular if case.
Anything else turbo 😛 before I make the PR 😛
10 page essay, including citations on why you want to be a LuckPerms moderator
Nah, that's only a expectation for you.
have you tested it? 😛
test in prod
Who tests things these days xD
as you know, I am a big fan of that methodology
but I am also well practiced at writing risky LP commits and it usually-mostly-sometimes paying off
I'll give it a quick test, just for you Luck xD
is it possible for the user to supply a string in quotes that may have spaces?
probably, but also probably not worth worrying about
fair lol
"hey it doesn't work if I include a space" , well don't include a space then
moment
😆
me every time i make a pr

Well it seems to work. i think?
You can't just do /lp export as it sends the invalid args message, but if you do lp export --without-users for example it will work
ACDT
check if the current date is april 1st, if it is, then make it "luckyperms" instead
Thats the format luck uses with verbose 🤷
TRUE
So was just keeping it consistant
Hm
you do yyyy-dd-mm?
No dd mm yyyy or dd mm yy but never month first - ever
Same here - but was just wanting to keep luck happy and keep it consistant
yeah the pattern is yyyy-mm-dd
i think it's unironically the least controversial format
start a webserver, ping it, get the ip from logs, use ipapi.co to get the country, set the date format to that countries date format
let me have a common setting for the format in the config
AbstractLucjPermsPlugin.getPluginName().toLowercase checks for April 1st iirc
#contributors message So will this do you think? or should we make it so it also works with just lp export
i remember PermissionsEx goes to PermissionSex on april fools day
..sex
i cant believe you've done this
Its not my fault they chose such a name xD
I have a dirty mind so i can never unsee it. Deal with it :P
We need that emoji with omegas pfp
anyway regarding the date format, yyyy-mm-dd is the standard format in software per ISO-8601
https://en.wikipedia.org/wiki/ISO_8601
it allows for natural chronological sorting when files are sorted by file name
ISO 8601 is an international standard covering the worldwide exchange and communication of date- and time-related data. It is maintained by the Geneva-based International Organization for Standardization (ISO) and was first published in 1988, with updates in 1991, 2000, 2004, and 2019. The standard aims to provide a well-defined, unambiguous met...
oh yeah it goes naturally well with sorting
I get that. I was just saying. I am german but i spent 4 years in america and i to this day catch myself messing up - i put my dob on a form at my doctors using mm/dd/yyyy and they looked at me really funny
23rd month is not when i was born ahahaha
yeah i got a ticket in USA and the cop put my birthday down wrong lmao
can't you get the ticket invalidated because of that?
LOL
probably. it was in texas so i guess i will just have to avoid that place from now on. which is fine by me 
texas 💀

@wispy wigeon https://github.com/LuckPerms/LuckPerms/issues/3242 For this issue, I had an idea that you could do something like have a --hide-undefined flag that you could add to the command and it will filter the list of permissions checks to remove all the checks that returned undefined you could even add a --hide-true --hide-false flags as well, but the main one would be the undefined one.
I did try to have a look into verbose and its confusing xD
I've moved that to LPW
don't really see the point in a command flag if it just have a toggle in the viewer
Yeah good point.
the main point of verbose is to find undefined permissions so i don't see that being too useful but it will be an easy addition to the web viewer at least
pr or shut
the recent color code translation PR was cool as well
would be super neat to add that for prefixes
ahh yeah, i have thoughts about that one... 😅
that's on my list to maybe give a try
haha I know it bypasses vue with direct html
is that your problem with it or something else?
yeah the dom manipulation
hm
and using v-html is generally not a great idea
😆
guess im not a real web developer 😔
understandable
it's ok to use you just need to know what you're doing
cause you can inject scripts into it
best to just avoid tbh
you have to stay within the ecosystem
aka not use strings for your dom content
bad description, but, yeah
i got a version of this added to my fork, just wanna touch up styling + add translations then ill pr to LPW
your contribution is greatly appreciated rosa.
Lol
one of my favoritest plugins, happy holidays
i am an invaluable contributor (i changed the order of two lines in a secondary repo, didn't even write a single line myself)
I also am an invaluable contirbutor I contribute with moral support by pinging everyone
hi
i am setting up luckperms for bungeecord
i have added luckperms to all spigot servers and luckperms bungee on the proxy
but how do i join them together
==========================
LuckPerms Info:
- All the Info In the /lp info command
- A LP Editor Link
- A copy of the config.yml
- Any extensions installed and config for said extension if there is one
Server Info:
- Server software and version
- Java version
- Online/Offline status
- Bungeecord status
- A complete list of all plugins installed
- A copy of the latest.log file```
Anyone think of anything else that would probably be useful (it has to be practical) 😛 Just trying to get a list together since there isn't one currently as this type of feature would benefit from having an actual plan of attack and list of things to be added to it for reference.
i would suggest plugin list, but that might be a bit more difficult to work into multiple platforms with mods/plugins acting differently.
oh it's already on there 
xD
so, would that just be for Bukkit, or is that going to dump sponge, fabric, etc
Obviously some things may not work on all versions
Ideally, for all but some may need to be altered. All upto Luck in the end though, with how he wants to implement it
not a direct copy of the config, as it will contain important credentials
but that list seems like a good starting point at least
doesn't have to be perfect from the get go
I am sure we would be able to target those specific field and censor or remove them maybe?
I know Moss censor stuff when it comes to IP's and stuff with the log file
and discord token, assuming they don't change their format again.
thats not very cash money of you
I'm sorry, ill try harder next time.
@spring elm hi! wow! thanks for the PR
I'll try have a look over the next day or so :)
@neat creekYeah... Let's not post things like that... This isn't the place for it.
Why was I tagged in this?
Because you just sent a link lol
Wait what? Where?
Right before omega's message.
if it wasn't you, i'd suggest changing your password. it's since been deleted.
Yeah I’m gonna do that now becuase I’ve joined a few servers I don’t recognise. Apologies guys. Hope the link wasn’t anything bad
Just seen the link sent. It had been sent to all my servers and groups. Thanks for letting me know
@noble cape
Hey Tim203! Please don't tag helpful/staff members directly.
@glacial violet
@glossy wigeon
There was a nitro scam going on 🙃
tim 
@glossy wigeon @ripe creek @lyric plover
Hey plenguin! Please don't tag helpful/staff members directly.
What
||haha you got pinged||
Damn bro that’s hilarious
Yeah
I PRed support for fabric's placeholder api to spark a while back https://github.com/lucko/spark/pull/136 and would like to do the same for luckperms
It should be easy to just add the the fabric platform, but it looks like all the placeholder stuff is separate in https://github.com/LuckPerms/placeholders
I could try to add at as a sub-project there, but unlike the main luckperms repo it still uses maven instead of gradle
and the fabric loom plugin is only available on gradle
I can try to switch that whole repo to use gradle, just include it in the main fabric platform like with spark, or just maintain a separate repo somewhere
just wanted to ask what would be preferred
PRed
Might need to adjust what jars Jenkins archives, not really familiar with how that works
but I'm pretty sure it all works
Might need readme update 🥔
But yeah, it's nice I can drop it from Box of Placeholders
Since I planned deprecating it
@teal stormPlease don't be posting stuff like that here.
why not take advantage of the websocket
send a list of players, a few hundred each frame (only send the username and uuid)
and then when a user is clicked on the editor, send a request for the user data and have the server respond back
or even better only send the user list when you open the user dropdown, so if you dont plan on editing users, no need for that load
or you can do some type of loading scroll, where you only request users that you scroll into
take advantage of the fact you have actual communication through the websocket, not a dump of data uploaded to bytebin
of course this will require bytesocks not have a message ratelimit, but I propose a byte ratelimit instead; afterall I can send GB of data in a single message and that wouldn't be rejected by bytesocks, but I cant send ten 1mb frames
(moved here on request, and it does fit here better)
Where is the practical use of having literally 500+ users on a web app?
You really gonna manually scroll to edit that many users?
because if you have a server that has more than 500 unique users, the ability to search a specific user and not only fetch 500 of them is very important
like what if I want to edit emily, but the 500 users fetched aren't emily
I want emily, not some clippy
(clippy we love you)
Is /lp user (username) editor not a command?
uhm? if we have websockets why not make use of it?
Just because a method exists doesn't mean we can't implement a much better way
websockets should be utilized, not just a way for saving multiple times
I disagree that needing to go through a massive list of 500+ accounts is a better way

like who wants to open a new web editor because they get a ticket for emily
add a search box to the editor lol? that should exist anyways
aber have you ever used the web editor?
you don't have to scroll through a bajillion users to find one
for example, say I'm an admin who's going through my servers support tickets; being an admin the issues promoted to my level would primarily be permissions (example)
I should be able to open a single web editor, trust it once, and put it on my second monitor. Then, I can solve tickets with that single editor, searching the user in question, updating their permission, and hitting "Apply". Afterwards, I close the ticket and move on to the next
with the method you propose, either the server has to have <500 users who have permissions, or I need to reopen a web editor for each ticket/user with a problem?
we have bytesocks now, and we don't need to publish the entire database to bytebin and load that all on the client, instead we can lazy-load users on scroll, or request users by filtered name through the search bar (only the usernames). Then, we can request the user data if and only if you click on the user
plus, it decreases the size of the initial frame sent, and keeps it that way if you never edit a user in your session
i actually think it's not a bad idea, having the list of all users and getting the data when you click on it
I mean, the downside to a websocket as proposed in #general is maintaining a socket connection
we already maintain the connection in the first place
Do we?
I mean do we reconnect each time we apply data?
I highly doubt that's the case, and if we do that's terrible
(by the way, this is for the new websocket implementation, the age-old editor uses bytebin and doesnt have any websocket to speak of)
Ahhhh!
My bad
That's where my confusion was. I was thinking of the bytebin editor
My apologies
no problem aha
also would like to suggest moving bytesocks' ratelimit from number of messages to size of messages
since the number of frames doesn't really matter, it's the amount of traffic you accept and pass back to other connected clients that really has a toll
if the lazy-fetch user suggestion is implemented, then the current ratelimit would be detrimental
It rate limits both
The bytesocks code enforces number of messages sent
And the library has a limit on message size
As for the 500 user limit - the reason for that is because the editor couldn’t handle more users
The user list doesn’t use anything clever, it just renders them all, that’s the problem iirc
Don’t… click? That’s a new link.
Wh
Obviously don’t do this
No
That’s not very cash money of you
but @wispy wigeon why limit the number of messages sent, wouldn't it be better to just say like a few mb every x minute instead of messages every minute
Hey Itzdlg! Please don't tag helpful/staff members directly.
as for the user list, you could sent just a list of users, or implement a lazy-load where it only requests users in like batches of 1000 and loads them as you scroll into them, then fetches when it needs more
and then when you search, you could ask the server to do filtering on the server-side and send you the user list
luckperms is the only software using the system, a "number of messages" rate limit works just fine and could reuse the code I've already written - that's why
re: user list, yes I know lazy loading is possible, but it hasn't been implemented
@placid totem
so true
what
@misty gyro
Hey YouSeeMeRunning! Please don't tag helpful/staff members directly.
👢
Ñ
Don’t spam
Hey turbo, don't suppose the notif about the new translations could be moved, at least on the editor? Already got someone wondering why they couldn't save, just because the bloody notif was blocking it
https://cdn.discordapp.com/attachments/241667244927483904/943248373476102155/unknown.png
PR
Dismiss automatically after ~5 seconds?
Also once people are aware of the feature we can probably remove entirely? Idk 😛
yeah the idea was to keep it up for a few weeks
is this suitable for luckperms?
Pretty sure luckperms already uses that lib
ok
Yes, Luckperms already uses that.
perhaps a verbose-viewer socket impl. as well?
I kinda thought about that as well. I'm not sure how well that'd work especially with very busy servers with tons of permission checks
@slim vaultLets not post that scam rubbish
thats not very cash money of you
In the words of Aberdeener, that’s not very cash money of you.
@noble cape
Hey Tim203! Please don't tag helpful/staff members directly.
Would be nice if there was a @Report abuse role
Notified the mods :)
@pale flint
gibthub xD okaaayyy
Totally legit
He done for
@placid totem
plus rep
@placid totem
Do I get A translator roll if i contributed on Crowdin?
what your username on there?
added the role for you :)
and to anyone else who wants the role, just let us know the username of your Crowdin account and we can check the activity if you've made contributions. there's no automation unfortunately so we won't know to add the role unless you ask.

They’re notified
Ty
thats not very cash money of you
@bright sable 
i do love getting airdropped money though
omg give me the fast dollars pls
@broken karma pretty sure you got hacked, maybe sort that out x
ah sorry! i'm checking my account.

@glossy wigeon got a sec?^
Hey Zeromaniac! Please don't tag helpful/staff members directly.
@noble cape ^
Hey Zeromaniac! Please don't tag helpful/staff members directly.
Larry is not available at this moment, please try again later.
neither is emily bot :P
what in the...
@glossy wigeon
Hey Zero if(msg().hasPing){ignore};! Please don't tag helpful/staff members directly.
Shut it clippy
no thank you
Zpeed
@gritty valley
No advertising @shell pumice !
Tobi pls check support
thanks for the PR @placid totem!
I was expecting to find a phishing link when I saw the ping, lmao, np 😆
i hope this is the correct channel
QSL is getting a port of lucko's fabric permission api. it's pretty much the same as lucko's, except based on Identifiers. We'd appreciate reviews so that we can know that it would be good enough for use in a Quilt version of LuckPerms, or if there are any other general recommendations for it.
sure, I've made a comment on GH :)
thank you!
Obviously don’t click this
I’m gonna click it
Hey BoredManPlays! Please don't tag helpful/staff members directly.

bet omega is faster :P
@glossy wigeon
Hey BoredManPlays! Please don't tag helpful/staff members directly.
Hi Jay
@acoustic oasis I appreciate you've contributed to the project in the past but please do not post scam / nitro links etc, this is your only warning :)
what i can do when i get hacked? 🙂
not get hacked
I understand that, that's why you've not been banned & it's just a warning - But at the end of the day your discord account security and any actions taken on it are your own responsibility
i understand, i updated the safety on my account. 🙂
that's not very cash money of you
Tobi is typing...
No @wanton geyser.
Please don't paste scam links, it's against the #rules
Jay was typing...
no this is patrick
@placid totem
Hey Zero ♤ [stop pinging!]! Please don't tag helpful/staff members directly.
hey @restive mica I suggest you change your account's password ASAP, don't paste phishing site links 😄
Why is it always this channel btw
prolly cuz it's the first one alphabetically?
it's also the last channel that was added so idk
Do the algorithms go by alphapet? C for contributors coming before s for support
Lmao
Interested to know for sure ngl xD
it would be cool if one day there was a new message in this channel that wasnt a scam
That’s not very cash money of your
#swag
Not scam 🪗
Should rename this channel to #scam-links-do-not-click
And make a new #contributors
No scams today
@dense ermine ^

did you mean @placid totem 
damn this channel looking a bit sad lol
we need more contributors😔
We need more stuff to be able to contribute to to begin with
how do you mean?
well, theres code. not everyone speaks java, or vue or whatever. then theres the translations, mostly done, but also usually one person is limited to 2-3 languages at max, and the popular ones are, once again, already done
so what else is there to contribute for the average person
ideas or suggestions about features are always good and help spark discussion. anything to do with the plugin itself or the website/web tools, the wiki, clippy, how we handle the discord.
well then have a look at the lp placeholders^^
evident and i also have had the heart attack scare with the groups in the editor where he made a lil line around the dropdown
i think that should become a thing bc legit it scared me shitless for a minute
other than that i really do think lp is kinda perfect xD
got a link to those things?
pretty sure you remember this conversation here #luckperms-web message
as for placeholders, my idea was static ones https://github.com/LuckPerms/placeholders/issues/32 im aware that prefixes are being pulled by user->group bla bla so might be a bit meh to get them directly?
unfortunately its impossible to display prefix placeholders in lets say deluxemenus or otherwise if the viewer is not in any way affiliated with the group. i get why. imagine this wasnt the case lmao. big f. but static ones might be a nice addition?
oh, oh, one thing. i just remembered. it seems that editors do time out faster these days. i had a talk with evident about that as well. seems to be at the 3-ish hour mark while really they should be good for 7 days, no? im wondering if thats due to the socket stuff
Like a week late, but yk
Shouldnt have anything to do with websockets since the data is removed from bytebin.
has 1.19 been released for luckperms?
delete
@pale flint @misty gyro
Hey iiMilan! Please don't tag helpful/staff members directly.
Thanks for reporting :)
That’s not very cash money of you
Uhm guys I can someone put a PR for this?
synchronized is needed
Cause I have a private fork cannot PR, so if anyone can ❤️
Make an issue, or even just use the built in github edit button to make a pr
or... make a public fork
i thought you couldnt make private forks on github 🤔
if you download the src, and re-upload it as a private repo, it doesn't get counted as a fork, but it's still a fork.
I needed an standalone platform
And that had to be implemented within our infrastructure
imma patch it up rq
Okay opened one 😄
We need to fix versions for fabric on other language-selected download sites <.<
version listing should probably be language independent
Mhm
that's not very cash money of you
disrcord
bruh
why does luckperms use paper api, not spigot api?
since luckperms supports spigot, won't it be using spigot api?
Because the PaperAPI has a lot of improvements and stuff that aren't in the SpigotAPI.
though luckperms supports spigot, which means it can't use paper's feature
If you're using a paper, server then you can. Which most people are these days, or should be,
but, luckperms supports spigot, doesn't it?
=> can't use paper's feature => no need to use paper api
Yes, of course it does.
am i wrong? please correct me
The PaperAPI has a not of improvements and includes a few libraries that make it a much more sustainable option. The PaperAPI will still run perfectly fine on Spigot servers as the PaperAPI was built off the SpigotAPI. While Spigot servers cannot use the Paper Only features, It still has a not of improvements for Spigot servers as well. An to be honest, most people should be using Paper by now for servers.
Well, yeah, i agree with that everyone should use paper, but still some people use spigot. Anyway, i can't still use, for example, adventure api things (like component) on spigot. How can i know some features that on paper api work on spigot?
i can't just try everything
Seems like there is vulnerabilities related to paper 1.15.2 api which luckperms has for dependencies.
Provides transitive vulnerable dependency com.google.guava:guava:21.0 CVE-2018-10237 5.9 Allocation of Resources Without Limits or Throttling vulnerability with medium severity found CVE-2020-8908 3.3 Incorrect Permission Assignment for Critical Resource vulnerability with low severity found Results powered by Checkmarx(c)
it’s only for the api, i don’t think LP uses anything from paper
maybe on the bukkit module /shrug
oh thanks for information
i was actually using that dependencies too and had some worries about it
LuckPerms doesn't ship the dependency, it's in the server people run, so simply having it added in the build tool as a compile-time only doesn't affect it
ah yeah it makes sense
i didn't thought enough.
Thank you so much
that is a thing now?



