@Override
    public QueryOptionsSupplier luckperms$getQueryOptionsCache(FabricContextManager contextManager) {
        if (this.luckperms$queryOptions == null) {
            this.luckperms$queryOptions = contextManager.createQueryOptionsSupplier((ServerPlayerEntity) (Object) this);
        }
        return this.luckperms$queryOptions;
    }
Hold a QueryOptionsCache instance on the player itself, so we can just cast instead of
having to maintain a map of Player->Cache.
fabric/src/main/java/me/lucko/luckperms/fabric/mixin/ServerPlayerEntityMixin.java