diff options
Diffstat (limited to 'src/main/java/org/bukkit/plugin/java/annotation/permission')
3 files changed, 78 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/plugin/java/annotation/permission/ChildPermission.java b/src/main/java/org/bukkit/plugin/java/annotation/permission/ChildPermission.java new file mode 100644 index 0000000..e22789e --- /dev/null +++ b/src/main/java/org/bukkit/plugin/java/annotation/permission/ChildPermission.java @@ -0,0 +1,18 @@ +package org.bukkit.plugin.java.annotation.permission; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Defines a child permission for {@link Permission} + */ +@Documented +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.SOURCE) +public @interface ChildPermission { + boolean inherit() default true; + String name(); +} diff --git a/src/main/java/org/bukkit/plugin/java/annotation/permission/Permission.java b/src/main/java/org/bukkit/plugin/java/annotation/permission/Permission.java new file mode 100644 index 0000000..35a72ab --- /dev/null +++ b/src/main/java/org/bukkit/plugin/java/annotation/permission/Permission.java @@ -0,0 +1,40 @@ +package org.bukkit.plugin.java.annotation.permission; + +import org.bukkit.permissions.PermissionDefault; +import org.bukkit.plugin.java.annotation.plugin.author.Authors; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Defines a plugin permission + */ +@Documented +@Retention(RetentionPolicy.SOURCE) +@Target(ElementType.TYPE) +@Repeatable(Permissions.class) +public @interface Permission { + /** + * This perm's name. + */ + String name(); + + /** + * This perm's description. + */ + String desc() default ""; + + /** + * This perm's default {@link PermissionDefault} + */ + PermissionDefault defaultValue() default PermissionDefault.OP; + + /** + * This permission's child nodes + */ + ChildPermission[] children() default {}; +} diff --git a/src/main/java/org/bukkit/plugin/java/annotation/permission/Permissions.java b/src/main/java/org/bukkit/plugin/java/annotation/permission/Permissions.java new file mode 100644 index 0000000..9557769 --- /dev/null +++ b/src/main/java/org/bukkit/plugin/java/annotation/permission/Permissions.java @@ -0,0 +1,20 @@ +package org.bukkit.plugin.java.annotation.permission; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Part of the plugin annotations framework. + * <p> + * Represents a list of this plugin's registered name. + */ + +@Documented +@Retention(RetentionPolicy.SOURCE) +@Target(ElementType.TYPE) +public @interface Permissions { + Permission[] value() default {}; +} |