From 2273add65229270dbe1bafb91e805e547f98b16a Mon Sep 17 00:00:00 2001 From: JRoy <10731363+JRoy@users.noreply.github.com> Date: Sat, 13 Jun 2026 19:49:31 -0700 Subject: [PATCH] Fix LuckPerms sync load for online players Fixes #6519 --- .../earth2me/essentials/perm/impl/LuckPermsHandler.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Essentials/src/main/java/com/earth2me/essentials/perm/impl/LuckPermsHandler.java b/Essentials/src/main/java/com/earth2me/essentials/perm/impl/LuckPermsHandler.java index a3d1d0143ca..2fe32df64c0 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/perm/impl/LuckPermsHandler.java +++ b/Essentials/src/main/java/com/earth2me/essentials/perm/impl/LuckPermsHandler.java @@ -93,7 +93,13 @@ public List getGroups() { @Override public boolean isOfflinePermissionSet(UUID uuid, String node) { - final net.luckperms.api.model.user.User user = this.luckPerms.getUserManager().loadUser(uuid).join(); + // Try to get the user from LuckPerms' cache first to avoid blocking the main + // thread with a database lookup. In the context of a player join (e.g. + // PlayerServerFullCheckEvent), the user should already be loaded. + net.luckperms.api.model.user.User user = this.luckPerms.getUserManager().getUser(uuid); + if (user == null) { + user = this.luckPerms.getUserManager().loadUser(uuid).join(); + } if (user == null) { return false; }