diff --git a/src/main/java/minevalley/chestluck/api/core/Lockable.java b/src/main/java/minevalley/chestluck/api/core/Lockable.java index a4d5958..e92ee69 100644 --- a/src/main/java/minevalley/chestluck/api/core/Lockable.java +++ b/src/main/java/minevalley/chestluck/api/core/Lockable.java @@ -1,5 +1,6 @@ package minevalley.chestluck.api.core; +import minevalley.chestluck.api.core.capabilities.Capability; import minevalley.core.api.Registrant; import org.bukkit.Location; import org.jetbrains.annotations.Contract; @@ -90,7 +91,7 @@ public interface Lockable { */ @Nonnull @Contract(pure = true) - default Optional as(@Nonnull Class capability) throws IllegalArgumentException { + default Optional as(@Nonnull Class capability) throws IllegalArgumentException { if (capability == null) throw new IllegalArgumentException("Capability class cannot be null"); return capability.isInstance(this) ? Optional.of(capability.cast(this)) : Optional.empty(); } diff --git a/src/main/java/minevalley/chestluck/api/core/capabilities/AutoCloseable.java b/src/main/java/minevalley/chestluck/api/core/capabilities/AutoCloseable.java index 59e0232..50e611f 100644 --- a/src/main/java/minevalley/chestluck/api/core/capabilities/AutoCloseable.java +++ b/src/main/java/minevalley/chestluck/api/core/capabilities/AutoCloseable.java @@ -6,7 +6,7 @@ import javax.annotation.Nonnull; @SuppressWarnings("unused") -public interface AutoCloseable { +public interface AutoCloseable extends Capability{ /** * Checks whether the AutoCloseable should automatically close after it has been opened diff --git a/src/main/java/minevalley/chestluck/api/core/capabilities/AutoOpenable.java b/src/main/java/minevalley/chestluck/api/core/capabilities/AutoOpenable.java index 7f50d4b..d21bbb6 100644 --- a/src/main/java/minevalley/chestluck/api/core/capabilities/AutoOpenable.java +++ b/src/main/java/minevalley/chestluck/api/core/capabilities/AutoOpenable.java @@ -6,7 +6,7 @@ import javax.annotation.Nonnull; @SuppressWarnings("unused") -public interface AutoOpenable { +public interface AutoOpenable extends Capability { /** * Checks whether the AutoOpenable will automatically open for registrants. diff --git a/src/main/java/minevalley/chestluck/api/core/capabilities/Capability.java b/src/main/java/minevalley/chestluck/api/core/capabilities/Capability.java new file mode 100644 index 0000000..6421bdf --- /dev/null +++ b/src/main/java/minevalley/chestluck/api/core/capabilities/Capability.java @@ -0,0 +1,6 @@ +package minevalley.chestluck.api.core.capabilities; + +@SuppressWarnings("unused") +public interface Capability { + +} \ No newline at end of file diff --git a/src/main/java/minevalley/chestluck/api/core/capabilities/ItemReceiver.java b/src/main/java/minevalley/chestluck/api/core/capabilities/ItemReceiver.java index 3f93194..7ff3e9f 100644 --- a/src/main/java/minevalley/chestluck/api/core/capabilities/ItemReceiver.java +++ b/src/main/java/minevalley/chestluck/api/core/capabilities/ItemReceiver.java @@ -6,7 +6,7 @@ import javax.annotation.Nonnull; @SuppressWarnings("unused") -public interface ItemReceiver { +public interface ItemReceiver extends Capability { /** * Checks whether the ItemReceiver can receive items or not. diff --git a/src/main/java/minevalley/chestluck/api/core/capabilities/ItemSupplier.java b/src/main/java/minevalley/chestluck/api/core/capabilities/ItemSupplier.java index 5b2b590..8c2d769 100644 --- a/src/main/java/minevalley/chestluck/api/core/capabilities/ItemSupplier.java +++ b/src/main/java/minevalley/chestluck/api/core/capabilities/ItemSupplier.java @@ -6,7 +6,7 @@ import javax.annotation.Nonnull; @SuppressWarnings("unused") -public interface ItemSupplier { +public interface ItemSupplier extends Capability { /** * Checks whether the ItemReceiver can supply items or not.