From c533446ab0fec46a1a6299bf11d8642ade26a9dd Mon Sep 17 00:00:00 2001 From: Luck Date: Wed, 7 Apr 2021 20:56:51 +0100 Subject: [PATCH] Fabric fix compat with fake players https://github.com/lucko/fabric-permissions-api/issues/3 --- .../luckperms/fabric/mixin/ServerPlayerEntityMixin.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fabric/src/main/java/me/lucko/luckperms/fabric/mixin/ServerPlayerEntityMixin.java b/fabric/src/main/java/me/lucko/luckperms/fabric/mixin/ServerPlayerEntityMixin.java index aa262396e..d7b5c3a21 100644 --- a/fabric/src/main/java/me/lucko/luckperms/fabric/mixin/ServerPlayerEntityMixin.java +++ b/fabric/src/main/java/me/lucko/luckperms/fabric/mixin/ServerPlayerEntityMixin.java @@ -110,6 +110,10 @@ public abstract class ServerPlayerEntityMixin implements MixinUser { if (permission == null) { throw new NullPointerException("permission"); } + if (this.luckperms$user == null || this.luckperms$queryOptions == null) { + // "fake" players will have our mixin, but won't have been initialised. + return Tristate.UNDEFINED; + } return hasPermission(permission, this.luckperms$queryOptions.getQueryOptions()); } @@ -123,8 +127,9 @@ public abstract class ServerPlayerEntityMixin implements MixinUser { } final User user = this.luckperms$user; - if (user == null) { - throw new IllegalStateException("Permissions have not been initialised for this player yet."); + if (user == null || this.luckperms$queryOptions == null) { + // "fake" players will have our mixin, but won't have been initialised. + return Tristate.UNDEFINED; } PermissionCache data = user.getCachedData().getPermissionData(queryOptions);