diff --git a/api/build.gradle b/api/build.gradle index f7268878d..eabc5bf12 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -2,7 +2,8 @@ group = 'net.luckperms' project.version = '5.2' dependencies { - compileOnly 'org.checkerframework:checker-qual:2.5.5' + compileOnly 'org.checkerframework:checker-qual:3.8.0' + compileOnly 'org.jetbrains:annotations:20.1.0' } // Only used occasionally for deployment - not needed for normal builds. diff --git a/api/src/main/java/net/luckperms/api/node/Node.java b/api/src/main/java/net/luckperms/api/node/Node.java index e8cd7e7ff..b9013c101 100644 --- a/api/src/main/java/net/luckperms/api/node/Node.java +++ b/api/src/main/java/net/luckperms/api/node/Node.java @@ -39,6 +39,7 @@ import net.luckperms.api.node.types.WeightNode; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.jetbrains.annotations.ApiStatus.NonExtendable; import java.time.Duration; import java.time.Instant; @@ -97,6 +98,7 @@ import java.util.stream.Stream; * *

The core node state must be immutable in all implementations.

*/ +@NonExtendable public interface Node { /** diff --git a/api/src/main/java/net/luckperms/api/node/matcher/NodeMatcher.java b/api/src/main/java/net/luckperms/api/node/matcher/NodeMatcher.java index f735fec8c..0b5ed8029 100644 --- a/api/src/main/java/net/luckperms/api/node/matcher/NodeMatcher.java +++ b/api/src/main/java/net/luckperms/api/node/matcher/NodeMatcher.java @@ -32,15 +32,19 @@ import net.luckperms.api.node.NodeType; import net.luckperms.api.node.types.MetaNode; import org.checkerframework.checker.nullness.qual.NonNull; +import org.jetbrains.annotations.ApiStatus.NonExtendable; import java.util.function.Predicate; /** * A predicate which matches certain {@link Node}s. * + *

API users should not implement this interface directly.

+ * * @param the node type matched * @since 5.1 */ +@NonExtendable public interface NodeMatcher extends Predicate { /** diff --git a/api/src/main/java/net/luckperms/api/node/metadata/NodeMetadataKey.java b/api/src/main/java/net/luckperms/api/node/metadata/NodeMetadataKey.java index 9e14d320b..0717979ba 100644 --- a/api/src/main/java/net/luckperms/api/node/metadata/NodeMetadataKey.java +++ b/api/src/main/java/net/luckperms/api/node/metadata/NodeMetadataKey.java @@ -26,6 +26,7 @@ package net.luckperms.api.node.metadata; import org.checkerframework.checker.nullness.qual.NonNull; +import org.jetbrains.annotations.ApiStatus.NonExtendable; import java.util.Objects; @@ -40,6 +41,7 @@ import java.util.Objects; * * @param the metadata type */ +@NonExtendable public interface NodeMetadataKey { /** diff --git a/api/src/main/java/net/luckperms/api/query/OptionKey.java b/api/src/main/java/net/luckperms/api/query/OptionKey.java index 0ffd1ce89..609a0db52 100644 --- a/api/src/main/java/net/luckperms/api/query/OptionKey.java +++ b/api/src/main/java/net/luckperms/api/query/OptionKey.java @@ -28,6 +28,7 @@ package net.luckperms.api.query; import net.luckperms.api.node.metadata.NodeMetadataKey; import org.checkerframework.checker.nullness.qual.NonNull; +import org.jetbrains.annotations.ApiStatus.NonExtendable; import java.util.Objects; @@ -41,6 +42,7 @@ import java.util.Objects; * * @param the option type */ +@NonExtendable public interface OptionKey { /**