PurpurMC / Purpur

Purpur is a drop-in replacement for Paper servers designed for configurability, and new fun and exciting gameplay features.
https://purpurmc.org
MIT License
2.05k stars 363 forks source link

permission 'purpur.joinfullserver' is not checked on join. #1604

Open ThijsjeboyGaming opened 3 weeks ago

ThijsjeboyGaming commented 3 weeks ago

Spark link

https://spark.lucko.me/DSRzKkf9x7

Expected behavior

The player with the permission "purpur.joinfullserver" can actually join the full server.

Observed/Actual behavior

I only have luckperms installed, just clean purpur server install with no configs changed. (Only thing changed is: max-players=1 in server.properties for testing purposes)

I have the luckperms permission set: purpur.joinfullserver for my user lp user <user> permission set purpur.joinfullserver true also tried adding the permission to my users group "default", no difference. lp group default permission set purpur.joinfullserver true I also tried creating a new group and adding the permission in there with no luck.

When running lp verbose record <user> and joining the server (with open slots otherwise "server full" kick), these permissions are te the only permissions starting with purpur. :

[LP] VB > thijsjeboygaming - purpur.debug.f3n - false
[LP] VB > thijsjeboygaming - purpur.portal.instant - false

See full verbose log export

When running lp verbose record <user> and joining the server when it is full, the verbose command outputs nothing.

So i presume that it does not check the purpur.joinfullserver permission on join?

When running lp user <user> permission check purpur.joinfullserver:

[LP] Permission information for purpur.joinfullserver:
[LP] - thijsjeboygaming has purpur.joinfullserver set to true in context global.
[LP] - thijsjeboygaming inherits purpur.joinfullserver set to true from default in context global.
[LP] 
[LP] Permission check for purpur.joinfullserver:
[LP]     Result: true
[LP]     Processor: common.DirectProcessor
[LP]     Cause: 7847c8cb-0adb-4fcb-980b-a879536d6a0a has purpur.joinfullserver set to true in context global
[LP]     Context: None

I am running the latest 1.21.1 Purpur version, and I can't seem to find anything in the configs.

The user can join the full server if they have OP.

Steps/models to reproduce

  1. Install the latest version of Purpur
  2. Install the Luckperms plugin
  3. Edit the server.properties file and set max-players=1 (assuming you have 2 accounts to test this with)
  4. Use the Luckperms command: lp user <user> permission set purpur.joinfullserver true in console
  5. Join the server with the account that does not have this permission first.
  6. Join the server with the account that does have the permission as last.

You will see a The server is full! kick message on the account that has the purpur.joinfullserver = true permission.

Purpur version

version
[19:48:56 INFO]: Checking version, please wait...
[19:48:56 INFO]: Current Purpur Version: 1.21.1-2328-d49ca07 (MC: 1.21.1)*
* You are running the latest version

Agreements

Other

Other people in the Discord server also have the same problem that I have described.

My initial message in the Discord server.

Message of a individual that also tested this.

granny commented 1 day ago

Can confirm that it's still an issue on 1.21.3.

LuckPerms doesn't get around to loading the player's perms in time for the check to process. Will look into this more at a later date.