LuckPerms

LuckPerms

41.4k Downloads

Add fabric support

Martmists-GH opened this issue ยท 10 comments

commented
commented

Give me a few days and I'll have a possible prototype.

commented

Alright I have a mostly functional draft in progress but a few things still need to be done:

Fix command completions.
Possibly make brigadier completions work (I wouldn't very much prefer that).
Fix the build (shadowed and relocated libraries aren't on the output jar)
Verify the code works on 1.15.2 and possibly the latest snapshot (20w08a as of now, should be possible due to the lack of technical changes in mostly recent versions)
Ask the config format question. Fabric doesn't have a config api nor an official standard, so YAML, hocon, json, some other subset of json is on the table. (the current branch uses hocon just for testing and since I am comfortable with it)
Obviously every style violation in the books is in the repo so I'll have to go back to that.
Fix server shutdown issue where one thread doesn't stop, basically stalking the jvm.
Do we want to include the 4 fabric api modules we use in the built jar (the community reccomendation is no but nothing bad will happen if we do it (minus the jar being a few hundred kb larger and standalone).

Some fabric specific additions:
A new processor to handle giving console like permissions to the owner of a singleplayer world (yes LP works in singleplayer), this can be configured of course.
Runs on both client and server.

Here you go (it won't run properly in any prod environment, so good luck). I would not reccomend use in any production server, this is for testing only so far.
https://github.com/i509VCB/LuckPerms/tree/fabric?files=1

commented

Awesome work!

commented

Agree, this is quite awesome. Fabric seems to become more popular.

commented

One of the things I want to integrate is the richer brigadier tab completions which fabric does support (since it's almost 100% vanilla internally). Of course you already have the tree built already for the bukkit module so I just need the parser for commodore files which I have mentioned in this issue:
lucko/commodore#8

I'll try to parse this a bit more smartly so I can actually use Player selector argument.

Edit: I could lazily copy the parser but I want to avoid duplicate code

commented

Lazily copying the parser is what I'd do. ;)

If down the road I (or someone else) has time to properly modularize commodore and split the parser off, we can always refactor.

commented

I would love to try my hands on that.... But issue is, that I don't quite get how to make a gradle project with multiple modules in IntelliJ (Without the default src/main path)

commented

Have any progress updates been made on this?

commented

Yes - see here: #2029

commented

Closing this issue in favour of the current PR.