diff --git a/api/src/main/java/me/lucko/luckperms/api/context/ContextManager.java b/api/src/main/java/me/lucko/luckperms/api/context/ContextManager.java
index 558c60768..116dd5e29 100644
--- a/api/src/main/java/me/lucko/luckperms/api/context/ContextManager.java
+++ b/api/src/main/java/me/lucko/luckperms/api/context/ContextManager.java
@@ -47,6 +47,8 @@ import java.util.Optional;
*
{@code org.bukkit.entity.Player}
* {@code net.md_5.bungee.api.connection.ProxiedPlayer}
* {@code org.spongepowered.api.service.permission.Subject}
+ * {@code cn.nukkit.Player}
+ * {@code com.velocitypowered.api.proxy.Player}
*
*
* @since 4.0
diff --git a/common/src/main/java/me/lucko/luckperms/common/calculator/PermissionCalculator.java b/common/src/main/java/me/lucko/luckperms/common/calculator/PermissionCalculator.java
index df5bf68bf..ec7e0142c 100644
--- a/common/src/main/java/me/lucko/luckperms/common/calculator/PermissionCalculator.java
+++ b/common/src/main/java/me/lucko/luckperms/common/calculator/PermissionCalculator.java
@@ -81,10 +81,6 @@ public class PermissionCalculator implements Function {
* @return the result
*/
public Tristate getPermissionValue(String permission, PermissionCheckEvent.Origin origin) {
- // convert the permission to lowercase, as all values in the backing map are also lowercase.
- // this allows fast case insensitive lookups
- permission = permission.toLowerCase();
-
// get the result
Tristate result = this.lookupCache.get(permission);
@@ -97,6 +93,10 @@ public class PermissionCalculator implements Function {
@Override
public Tristate apply(@NonNull String permission) {
+ // convert the permission to lowercase, as all values in the backing map are also lowercase.
+ // this allows fast case insensitive lookups
+ permission = permission.toLowerCase();
+
// offer the permission to the permission vault
// we only need to do this once per permission, so it doesn't matter
// that this call is behind the cache.