Add API method to get known permissions & improve the way PermissionDescriptions are migrated from existing Sponge services when LP enables

This commit is contained in:
Luck
2018-12-07 14:07:54 +00:00
Unverified
parent b3a028e3ca
commit 757e9d6be6
20 changed files with 116 additions and 18 deletions
@@ -31,6 +31,7 @@ import me.lucko.luckperms.sponge.service.model.LPPermissionDescription;
import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import me.lucko.luckperms.sponge.service.model.LPSubject;
import me.lucko.luckperms.sponge.service.model.LPSubjectCollection;
import me.lucko.luckperms.sponge.service.model.ProxiedServiceObject;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
@@ -43,7 +44,16 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
public final class DescriptionBuilder implements PermissionDescription.Builder {
public final class DescriptionBuilder implements PermissionDescription.Builder, ProxiedServiceObject {
public static LPPermissionDescription registerDescription(LPPermissionService service, PermissionDescription description) {
//noinspection ConstantConditions
if (description.getOwner() == null) {
return null;
}
return service.registerPermissionDescription(description.getId(), description.getDescription(), description.getOwner());
}
private final @NonNull LPPermissionService service;
private final @NonNull PluginContainer container;
private final @NonNull Map<String, Tristate> roles = new HashMap<>();
@@ -28,6 +28,7 @@ package me.lucko.luckperms.sponge.service.proxy.api6;
import me.lucko.luckperms.common.util.ImmutableCollectors;
import me.lucko.luckperms.sponge.service.model.LPPermissionDescription;
import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import me.lucko.luckperms.sponge.service.model.ProxiedServiceObject;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.Sponge;
@@ -38,7 +39,7 @@ import org.spongepowered.api.text.Text;
import java.util.Map;
public final class PermissionDescriptionProxy implements PermissionDescription {
public final class PermissionDescriptionProxy implements PermissionDescription, ProxiedServiceObject {
private final LPPermissionService service;
private final LPPermissionDescription handle;
@@ -28,6 +28,7 @@ package me.lucko.luckperms.sponge.service.proxy.api6;
import me.lucko.luckperms.common.util.ImmutableCollectors;
import me.lucko.luckperms.sponge.service.model.LPPermissionDescription;
import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import me.lucko.luckperms.sponge.service.model.ProxiedServiceObject;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.Sponge;
@@ -42,7 +43,7 @@ import java.util.Collection;
import java.util.Map;
import java.util.Optional;
public final class PermissionServiceProxy implements PermissionService {
public final class PermissionServiceProxy implements PermissionService, ProxiedServiceObject {
private final LPPermissionService handle;
public PermissionServiceProxy(LPPermissionService handle) {
@@ -30,6 +30,7 @@ import me.lucko.luckperms.sponge.service.CompatibilityUtil;
import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import me.lucko.luckperms.sponge.service.model.LPSubject;
import me.lucko.luckperms.sponge.service.model.LPSubjectCollection;
import me.lucko.luckperms.sponge.service.model.ProxiedServiceObject;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.service.context.Context;
@@ -41,7 +42,7 @@ import java.util.Map;
import java.util.Set;
@SuppressWarnings("unchecked")
public final class SubjectCollectionProxy implements SubjectCollection {
public final class SubjectCollectionProxy implements SubjectCollection, ProxiedServiceObject {
private final LPPermissionService service;
private final LPSubjectCollection handle;
@@ -31,6 +31,7 @@ import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import me.lucko.luckperms.sponge.service.model.LPSubject;
import me.lucko.luckperms.sponge.service.model.LPSubjectData;
import me.lucko.luckperms.sponge.service.model.LPSubjectReference;
import me.lucko.luckperms.sponge.service.model.ProxiedServiceObject;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.service.context.Context;
@@ -44,7 +45,7 @@ import java.util.Set;
import java.util.concurrent.CompletableFuture;
@SuppressWarnings("unchecked")
public final class SubjectDataProxy implements SubjectData {
public final class SubjectDataProxy implements SubjectData, ProxiedServiceObject {
private final LPPermissionService service;
private final LPSubjectReference ref;
private final boolean enduring;
@@ -33,6 +33,7 @@ import me.lucko.luckperms.sponge.service.CompatibilityUtil;
import me.lucko.luckperms.sponge.service.model.LPPermissionService;
import me.lucko.luckperms.sponge.service.model.LPSubject;
import me.lucko.luckperms.sponge.service.model.LPSubjectReference;
import me.lucko.luckperms.sponge.service.model.ProxiedServiceObject;
import me.lucko.luckperms.sponge.service.model.ProxiedSubject;
import org.checkerframework.checker.nullness.qual.NonNull;
@@ -49,7 +50,7 @@ import java.util.Set;
import java.util.concurrent.CompletableFuture;
@SuppressWarnings("unchecked")
public final class SubjectProxy implements Subject, ProxiedSubject {
public final class SubjectProxy implements Subject, ProxiedSubject, ProxiedServiceObject {
private final LPPermissionService service;
private final LPSubjectReference ref;