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:
+11
-1
@@ -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<>();
|
||||
|
||||
+2
-1
@@ -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;
|
||||
|
||||
|
||||
+2
-1
@@ -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) {
|
||||
|
||||
+2
-1
@@ -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;
|
||||
|
||||
|
||||
+2
-1
@@ -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;
|
||||
|
||||
+2
-1
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user