Reduce user lookups for LuckPerms contexts #4869
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Information
Resolves some performance issues with Essentials permission contexts.
Apologies, I have misplaced the profiles, but was prompted to fix these issues by LuckPerms/LuckPerms#3346
The issues stem from the call to
ess.getUser()
and the usermap.Firstly, this call is repeated multiple times - once for each context. I have refactored so it is only called once, and the context functions accept a User instead.
Secondly, in some edge cases, it seems that Ess will not have a User object cached in memory, and the call to ess.getUser will result in i/o as the config file has to be queried.
This is a big issue, the calculators are called very frequently and often in hot code paths in the server/game.
Environments tested:
OS: macos
Java version:
Demonstration: