From 1035b3c90f27a4e9e448cc9e3a3bd0799e0e0485 Mon Sep 17 00:00:00 2001 From: Joshua Sing Date: Mon, 18 Sep 2023 22:48:43 +1000 Subject: [PATCH] feat: add platform-api module (fix #287) --- CONTRIBUTING.md | 1 + .../dev/hypera/chameleon/TestChameleon.java | 28 ++----------------- .../chameleon/TestChameleonBootstrap.java | 2 +- .../build.gradle.kts | 21 ++++---------- .../chameleon/platform/PlatformChameleon.java | 0 platform-bukkit/build.gradle.kts | 1 + platform-bungeecord/build.gradle.kts | 1 + platform-nukkit/build.gradle.kts | 1 + platform-sponge/build.gradle.kts | 1 + platform-velocity/build.gradle.kts | 1 + settings.gradle.kts | 1 + 11 files changed, 17 insertions(+), 41 deletions(-) rename api/src/test/java/dev/hypera/chameleon/platform/PlatformChameleonTests.java => platform-api/build.gradle.kts (72%) rename {api => platform-api}/src/main/java/dev/hypera/chameleon/platform/PlatformChameleon.java (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bd446c99..174ea146 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -142,6 +142,7 @@ Additionally, commit message lines should not exceed 100 characters. - `extensions`, when modifying a file that is related to extensions. - `folia`, when modifying a file inside the `platform-folia` module. - `nukkit`, when modifying a file inside the `platform-nukkit` module. +- `platform`, when modifying a file inside the `platform-api` module. - `scheduling`, when modifying a file that is related to scheduling. - `scripts`, when modifying a file inside the `scripts` directory. - `sponge`, when modifying a file inside the `platform-sponge` module. diff --git a/api/src/test/java/dev/hypera/chameleon/TestChameleon.java b/api/src/test/java/dev/hypera/chameleon/TestChameleon.java index 97cc86f6..27c7a5eb 100644 --- a/api/src/test/java/dev/hypera/chameleon/TestChameleon.java +++ b/api/src/test/java/dev/hypera/chameleon/TestChameleon.java @@ -31,7 +31,6 @@ import dev.hypera.chameleon.logger.ChameleonLogger; import dev.hypera.chameleon.logger.DummyChameleonLogger; import dev.hypera.chameleon.platform.Platform; -import dev.hypera.chameleon.platform.PlatformChameleon; import dev.hypera.chameleon.platform.PluginManager; import dev.hypera.chameleon.scheduler.Scheduler; import dev.hypera.chameleon.user.UserManager; @@ -41,7 +40,7 @@ /** * Dummy Chameleon implementation. */ -public final class TestChameleon extends PlatformChameleon { +public final class TestChameleon extends Chameleon { public static final @NotNull String PLATFORM_ID = "Test"; private final @NotNull Platform platform = new TestChameleonPlatform(); @@ -53,32 +52,13 @@ public TestChameleon() { this(new DummyChameleonLogger()); } - /** - * Dummy Chameleon implementation constructor. - * - * @param platformPlugin Platform plugin instance. - */ - public TestChameleon(@NotNull Object platformPlugin) { - this(new DummyChameleonLogger(), platformPlugin); - } - - /** - * Dummy Chameleon implementation constructor. - * - * @param logger Logger. - * @param platformPlugin Platform plugin instance. - */ - public TestChameleon(@NotNull ChameleonLogger logger, @NotNull Object platformPlugin) { - this(TestChameleonPlugin::new, logger, platformPlugin, new EventBusImpl(logger), new ExtensionMap()); - } - /** * Dummy Chameleon implementation constructor. * * @param logger Logger. */ public TestChameleon(@NotNull ChameleonLogger logger) { - this(TestChameleonPlugin::new, logger, 0, new EventBusImpl(logger), new ExtensionMap()); + this(TestChameleonPlugin::new, logger, new EventBusImpl(logger), new ExtensionMap()); } /** @@ -86,18 +66,16 @@ public TestChameleon(@NotNull ChameleonLogger logger) { * * @param pluginBootstrap Chameleon plugin bootstrap. * @param logger Logger. - * @param platformPlugin Platform plugin. * @param eventBus Event bus. * @param extensions Extensions. */ public TestChameleon( @NotNull ChameleonPluginBootstrap pluginBootstrap, @NotNull ChameleonLogger logger, - @NotNull Object platformPlugin, @NotNull EventBus eventBus, @NotNull ExtensionMap extensions ) { - super(pluginBootstrap, platformPlugin, eventBus, logger, extensions); + super(pluginBootstrap, eventBus, logger, extensions); } public static @NotNull ChameleonBootstrap create() { diff --git a/api/src/test/java/dev/hypera/chameleon/TestChameleonBootstrap.java b/api/src/test/java/dev/hypera/chameleon/TestChameleonBootstrap.java index 2c8d1d2b..0ee83dea 100644 --- a/api/src/test/java/dev/hypera/chameleon/TestChameleonBootstrap.java +++ b/api/src/test/java/dev/hypera/chameleon/TestChameleonBootstrap.java @@ -34,7 +34,7 @@ final class TestChameleonBootstrap extends ChameleonBootstrap { @Override protected @NotNull TestChameleon loadPlatform() { - return new TestChameleon(this.pluginBootstrap, this.logger, 0, this.eventBus, this.extensions); + return new TestChameleon(this.pluginBootstrap, this.logger, this.eventBus, this.extensions); } } diff --git a/api/src/test/java/dev/hypera/chameleon/platform/PlatformChameleonTests.java b/platform-api/build.gradle.kts similarity index 72% rename from api/src/test/java/dev/hypera/chameleon/platform/PlatformChameleonTests.java rename to platform-api/build.gradle.kts index 5b852a26..6fed6965 100644 --- a/api/src/test/java/dev/hypera/chameleon/platform/PlatformChameleonTests.java +++ b/platform-api/build.gradle.kts @@ -21,20 +21,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package dev.hypera.chameleon.platform; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import dev.hypera.chameleon.TestChameleon; -import org.junit.jupiter.api.Test; - -final class PlatformChameleonTests { - - @Test - void testPlatformPlugin() { - // Make sure PlatformChameleon stores and returns the platform plugin correctly. - TestChameleon chameleon = new TestChameleon(123); - assertEquals(123, chameleon.getPlatformPlugin()); - } +plugins { + id("chameleon.common") + id("java-library") +} +dependencies { + compileOnlyApi(projects.chameleonApi) } diff --git a/api/src/main/java/dev/hypera/chameleon/platform/PlatformChameleon.java b/platform-api/src/main/java/dev/hypera/chameleon/platform/PlatformChameleon.java similarity index 100% rename from api/src/main/java/dev/hypera/chameleon/platform/PlatformChameleon.java rename to platform-api/src/main/java/dev/hypera/chameleon/platform/PlatformChameleon.java diff --git a/platform-bukkit/build.gradle.kts b/platform-bukkit/build.gradle.kts index 47bdd66b..8cbadb91 100644 --- a/platform-bukkit/build.gradle.kts +++ b/platform-bukkit/build.gradle.kts @@ -32,6 +32,7 @@ repositories { dependencies { compileOnlyApi(projects.chameleonApi) + compileOnlyApi(projects.chameleonPlatformApi) compileOnlyApi(libs.platform.bukkit) implementation(libs.adventure.platform.bukkit) } \ No newline at end of file diff --git a/platform-bungeecord/build.gradle.kts b/platform-bungeecord/build.gradle.kts index e2545fac..40416783 100644 --- a/platform-bungeecord/build.gradle.kts +++ b/platform-bungeecord/build.gradle.kts @@ -32,6 +32,7 @@ repositories { dependencies { compileOnlyApi(projects.chameleonApi) + compileOnlyApi(projects.chameleonPlatformApi) compileOnlyApi(libs.platform.bungeecord) implementation(libs.adventure.platform.bungeecord) } \ No newline at end of file diff --git a/platform-nukkit/build.gradle.kts b/platform-nukkit/build.gradle.kts index 849cd13e..c6d0a4f0 100644 --- a/platform-nukkit/build.gradle.kts +++ b/platform-nukkit/build.gradle.kts @@ -32,5 +32,6 @@ repositories { dependencies { compileOnlyApi(projects.chameleonApi) + compileOnlyApi(projects.chameleonPlatformApi) compileOnlyApi(libs.platform.nukkit) } \ No newline at end of file diff --git a/platform-sponge/build.gradle.kts b/platform-sponge/build.gradle.kts index 128695ea..25e11bea 100644 --- a/platform-sponge/build.gradle.kts +++ b/platform-sponge/build.gradle.kts @@ -32,6 +32,7 @@ repositories { dependencies { compileOnlyApi(projects.chameleonApi) + compileOnlyApi(projects.chameleonPlatformApi) compileOnlyApi(libs.platform.sponge) { exclude(module = "configurate-*") } diff --git a/platform-velocity/build.gradle.kts b/platform-velocity/build.gradle.kts index ffc387a7..d5f0758e 100644 --- a/platform-velocity/build.gradle.kts +++ b/platform-velocity/build.gradle.kts @@ -32,5 +32,6 @@ repositories { dependencies { compileOnlyApi(projects.chameleonApi) + compileOnlyApi(projects.chameleonPlatformApi) compileOnlyApi(libs.platform.velocity) } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index cb03255a..2af1e29c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -41,6 +41,7 @@ sequenceOf( "bom", "annotations", "example", + "platform-api", "platform-bukkit", "platform-bungeecord", "platform-folia",