From 15e23dd047d4eb6bc54e4e7f7515918342b94e8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jozef=20Steinh=C3=BCbl=20=28xHyroM=29?= Date: Sat, 2 Sep 2023 23:23:27 +0200 Subject: [PATCH 1/2] feat: sponge 9 --- settings.gradle.kts | 2 +- {sponge-8 => sponge-9}/.gitignore | 0 {sponge-8 => sponge-9}/README.md | 0 {sponge-8 => sponge-9}/build.gradle.kts | 6 +- .../sponge/SpongeLightEcoBootstrap.java | 37 ++++------- .../lighteco/sponge/SpongeLightEcoLoader.java | 33 ++++++++++ .../lighteco/sponge/SpongeLightEcoPlugin.java | 0 .../sponge/SpongeSchedulerAdapter.java | 43 +++++++++++++ .../lighteco/sponge/logger/SpongeLogger.java | 62 +++++++++++++++++++ .../resources/META-INF/sponge_plugins.json | 0 10 files changed, 153 insertions(+), 30 deletions(-) rename {sponge-8 => sponge-9}/.gitignore (100%) rename {sponge-8 => sponge-9}/README.md (100%) rename {sponge-8 => sponge-9}/build.gradle.kts (82%) rename {sponge-8 => sponge-9}/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java (65%) create mode 100644 sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoLoader.java rename {sponge-8 => sponge-9}/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoPlugin.java (100%) create mode 100644 sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeSchedulerAdapter.java create mode 100644 sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/logger/SpongeLogger.java rename {sponge-8 => sponge-9}/src/main/resources/META-INF/sponge_plugins.json (100%) diff --git a/settings.gradle.kts b/settings.gradle.kts index 854271b..327bd3f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -5,7 +5,7 @@ sequenceOf( "common", "bukkit", "bukkittest", - "sponge-8", + "sponge-9", "currency-money" ).forEach { include("lighteco-$it") diff --git a/sponge-8/.gitignore b/sponge-9/.gitignore similarity index 100% rename from sponge-8/.gitignore rename to sponge-9/.gitignore diff --git a/sponge-8/README.md b/sponge-9/README.md similarity index 100% rename from sponge-8/README.md rename to sponge-9/README.md diff --git a/sponge-8/build.gradle.kts b/sponge-9/build.gradle.kts similarity index 82% rename from sponge-8/build.gradle.kts rename to sponge-9/build.gradle.kts index 0984a16..1eb08fb 100644 --- a/sponge-8/build.gradle.kts +++ b/sponge-9/build.gradle.kts @@ -5,9 +5,7 @@ plugins { dependencies { implementation(project(":lighteco-common")) - compileOnly("org.spongepowered:spongeapi:8.0.0") - - //implementation("dev.jorel:commandapi-sponge-shade:9.1.0") + compileOnly("org.spongepowered:spongeapi:9.0.0") compileOnly("org.projectlombok:lombok:1.18.28") annotationProcessor("org.projectlombok:lombok:1.18.28") @@ -17,8 +15,6 @@ dependencies { } tasks.shadowJar { - relocate("dev.jorel.commandapi", "dev.xhyrom.lighteco.libraries.commandapi") - // common relocate("eu.okaeri.configs", "dev.xhyrom.lighteco.libraries.okaeri.configs") relocate("eu.okaeri.validator", "dev.xhyrom.lighteco.libraries.okaeri.validator") diff --git a/sponge-8/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java similarity index 65% rename from sponge-8/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java rename to sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java index 469ab9f..307e62e 100644 --- a/sponge-8/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java @@ -1,27 +1,31 @@ package dev.xhyrom.lighteco.sponge; -import com.google.inject.Inject; import dev.xhyrom.lighteco.common.plugin.bootstrap.LightEcoBootstrap; import dev.xhyrom.lighteco.common.plugin.bootstrap.LoaderBootstrap; import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger; import dev.xhyrom.lighteco.common.plugin.scheduler.SchedulerAdapter; -import org.apache.logging.log4j.Logger; -import org.spongepowered.plugin.builtin.jvm.Plugin; +import dev.xhyrom.lighteco.sponge.logger.SpongeLogger; +import lombok.Getter; import java.io.InputStream; import java.nio.file.Path; import java.util.List; import java.util.UUID; -@Plugin("lighteco-sponge") public class SpongeLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstrap { - private final SpongeLightEcoPlugin plugin; + private final SpongeLightEcoPlugin plugin = new SpongeLightEcoPlugin(this); - @Inject - private Logger logger; + @Getter + private final SpongeLightEcoLoader loader; + @Getter + private final PluginLogger logger; + @Getter + private final SchedulerAdapter scheduler; - public SpongeLightEcoBootstrap() { - this.plugin = new SpongeLightEcoPlugin(this); + public SpongeLightEcoBootstrap(SpongeLightEcoLoader loader) { + this.loader = loader; + this.logger = new SpongeLogger(loader.logger); + this.scheduler = new SpongeSchedulerAdapter(this); } @Override @@ -39,21 +43,6 @@ public class SpongeLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstr this.plugin.disable(); } - @Override - public Object getLoader() { - return null; - } - - @Override - public PluginLogger getLogger() { - return null; - } - - @Override - public SchedulerAdapter getScheduler() { - return null; - } - @Override public Path getDataDirectory() { return null; diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoLoader.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoLoader.java new file mode 100644 index 0000000..e1ecde4 --- /dev/null +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoLoader.java @@ -0,0 +1,33 @@ +package dev.xhyrom.lighteco.sponge; + +import com.google.inject.Inject; +import org.apache.logging.log4j.Logger; +import org.spongepowered.api.Server; +import org.spongepowered.api.event.Listener; +import org.spongepowered.api.event.Order; +import org.spongepowered.api.event.lifecycle.ConstructPluginEvent; +import org.spongepowered.api.event.lifecycle.StoppingEngineEvent; +import org.spongepowered.plugin.builtin.jvm.Plugin; + +@Plugin("lighteco-sponge") +public class SpongeLightEcoLoader { + private final SpongeLightEcoBootstrap bootstrap; + + @Inject + public Logger logger; + + public SpongeLightEcoLoader() { + this.bootstrap = new SpongeLightEcoBootstrap(this); + } + + @Listener(order = Order.FIRST) + public void onEnable(ConstructPluginEvent event) { + this.bootstrap.onLoad(); + this.bootstrap.onEnable(); + } + + @Listener + public void onDisable(StoppingEngineEvent event) { + this.bootstrap.onDisable(); + } +} diff --git a/sponge-8/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoPlugin.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoPlugin.java similarity index 100% rename from sponge-8/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoPlugin.java rename to sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoPlugin.java diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeSchedulerAdapter.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeSchedulerAdapter.java new file mode 100644 index 0000000..98397a9 --- /dev/null +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeSchedulerAdapter.java @@ -0,0 +1,43 @@ +package dev.xhyrom.lighteco.sponge; + +import dev.xhyrom.lighteco.common.plugin.scheduler.SchedulerAdapter; +import dev.xhyrom.lighteco.common.plugin.scheduler.SchedulerTask; +import org.spongepowered.api.Sponge; +import org.spongepowered.api.scheduler.ScheduledTask; +import org.spongepowered.api.scheduler.Task; + +import java.util.concurrent.Executor; +import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; + +public class SpongeSchedulerAdapter implements SchedulerAdapter { + private final Executor async; + + protected SpongeSchedulerAdapter(SpongeLightEcoBootstrap bootstrap) { + this.plugin = bootstrap.getLoader(); + + this.async = runnable -> Sponge.asyncScheduler().submit(Task.builder().execute(runnable).build()); + } + + private SchedulerTask submitAsyncTask(Runnable runnable, Consumer config) { + Task.Builder builder = Task.builder(); + config.accept(builder); + + Task task = builder + .execute(runnable) + .build(); + + ScheduledTask scheduledTask = Sponge.asyncScheduler().submit(task); + return scheduledTask::cancel; + } + + @Override + public SchedulerTask asyncLater(Runnable runnable, long delay, TimeUnit unit) { + return submitAsyncTask(runnable, builder -> builder.delay(delay, unit)); + } + + @Override + public SchedulerTask asyncRepeating(Runnable runnable, long interval, TimeUnit unit) { + return submitAsyncTask(runnable, builder -> builder.delay(interval, unit).interval(interval, unit)); + } +} diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/logger/SpongeLogger.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/logger/SpongeLogger.java new file mode 100644 index 0000000..7cf37a6 --- /dev/null +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/logger/SpongeLogger.java @@ -0,0 +1,62 @@ +package dev.xhyrom.lighteco.sponge.logger; + +import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger; +import org.apache.logging.log4j.Logger; + +public class SpongeLogger implements PluginLogger { + private final Logger logger; + + public SpongeLogger(Logger logger) { + this.logger = logger; + } + + @Override + public void info(String message) { + this.logger.info(message); + } + + @Override + public void info(String message, Object... args) { + this.logger.info(message, args); + } + + @Override + public void warn(String message) { + this.logger.warn(message); + } + + @Override + public void warn(String message, Object... args) { + this.logger.warn(message, args); + } + + @Override + public void warn(String message, Throwable throwable) { + this.logger.warn(message, throwable); + } + + @Override + public void warn(String message, Throwable throwable, Object... args) { + this.logger.warn(String.format(message, args), throwable); + } + + @Override + public void error(String message) { + this.logger.error(message); + } + + @Override + public void error(String message, Object... args) { + this.logger.error(message, args); + } + + @Override + public void error(String message, Throwable throwable) { + this.logger.error(message, throwable); + } + + @Override + public void error(String message, Throwable throwable, Object... args) { + this.logger.error(String.format(message, args), throwable); + } +} diff --git a/sponge-8/src/main/resources/META-INF/sponge_plugins.json b/sponge-9/src/main/resources/META-INF/sponge_plugins.json similarity index 100% rename from sponge-8/src/main/resources/META-INF/sponge_plugins.json rename to sponge-9/src/main/resources/META-INF/sponge_plugins.json From 5b8045236d40da1d28fde8477b81b08fcf30225b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jozef=20Steinh=C3=BCbl?= Date: Tue, 27 Aug 2024 16:22:50 +0200 Subject: [PATCH 2/2] feat: more sponge things --- settings.gradle.kts | 2 +- .../sponge/SpongeLightEcoBootstrap.java | 45 ++++++++++++++----- .../lighteco/sponge/SpongeLightEcoLoader.java | 9 +++- .../lighteco/sponge/SpongeLightEcoPlugin.java | 11 +++-- .../sponge/SpongeSchedulerAdapter.java | 7 ++- .../lighteco/sponge/logger/SpongeLogger.java | 38 +++++++++++----- .../sponge/manager/SpongeCommandManager.java | 10 +++++ .../sponge/manager/SpongeContextManager.java | 19 ++++++++ 8 files changed, 110 insertions(+), 31 deletions(-) create mode 100644 sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/manager/SpongeCommandManager.java create mode 100644 sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/manager/SpongeContextManager.java diff --git a/settings.gradle.kts b/settings.gradle.kts index 1c0f551..d1661eb 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -4,7 +4,7 @@ sequenceOf( "api", "common", "paper", - "sponge-8", + "sponge-9", "currency-money", "test" ).forEach { diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java index 960da94..08a794e 100644 --- a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoBootstrap.java @@ -7,9 +7,14 @@ import dev.xhyrom.lighteco.common.plugin.bootstrap.LoaderBootstrap; import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger; import dev.xhyrom.lighteco.common.plugin.scheduler.SchedulerAdapter; +import dev.xhyrom.lighteco.sponge.logger.SpongeLogger; +import lombok.Getter; import net.kyori.adventure.audience.Audience; import org.apache.logging.log4j.Logger; +import org.spongepowered.api.Game; +import org.spongepowered.api.config.ConfigDir; +import org.spongepowered.plugin.PluginContainer; import org.spongepowered.plugin.builtin.jvm.Plugin; import java.io.InputStream; @@ -18,15 +23,33 @@ import java.util.List; import java.util.Optional; import java.util.UUID; -@Plugin("lighteco-sponge") + public class SpongeLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstrap { - private final SpongeLightEcoPlugin plugin; + private final SpongeLightEcoPlugin plugin = new SpongeLightEcoPlugin(this); + + @Getter + private final SpongeLightEcoLoader loader; + + @Getter + private final PluginLogger logger; + + @Getter + private final SchedulerAdapter scheduler; + + private final Game game; + private final PluginContainer pluginContainer; @Inject - private Logger logger; + @ConfigDir(sharedRoot = false) + private Path configDirectory; - public SpongeLightEcoBootstrap() { - this.plugin = new SpongeLightEcoPlugin(this); + public SpongeLightEcoBootstrap(SpongeLightEcoLoader loader) { + this.loader = loader; + this.logger = new SpongeLogger(this.plugin, loader.getLogger()); + this.scheduler = new SpongeSchedulerAdapter(this); + + this.game = loader.getInjector().getInstance(Game.class); + this.pluginContainer = loader.getInjector().getInstance(PluginContainer.class); } @Override @@ -46,17 +69,17 @@ public class SpongeLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstr @Override public Object getLoader() { - return null; + return this.loader; } @Override public PluginLogger getLogger() { - return null; + return this.logger; } @Override public SchedulerAdapter getScheduler() { - return null; + return this.scheduler; } @Override @@ -66,7 +89,7 @@ public class SpongeLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstr @Override public String getVersion() { - return null; + return this.pluginContainer.metadata().version().toString(); } @Override @@ -81,12 +104,12 @@ public class SpongeLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstr @Override public List getOnlinePlayers() { - return null; + return game.server().onlinePlayers().size(); } @Override public InputStream getResourceStream(String filename) { - return null; + return getClass().getClassLoader().getResourceAsStream(filename); } @Override diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoLoader.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoLoader.java index e1ecde4..1fa157c 100644 --- a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoLoader.java +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoLoader.java @@ -1,6 +1,8 @@ package dev.xhyrom.lighteco.sponge; import com.google.inject.Inject; +import com.google.inject.Injector; +import lombok.Getter; import org.apache.logging.log4j.Logger; import org.spongepowered.api.Server; import org.spongepowered.api.event.Listener; @@ -12,11 +14,16 @@ import org.spongepowered.plugin.builtin.jvm.Plugin; @Plugin("lighteco-sponge") public class SpongeLightEcoLoader { private final SpongeLightEcoBootstrap bootstrap; + @Getter + private final Injector injector; + @Getter @Inject public Logger logger; - public SpongeLightEcoLoader() { + @Inject + public SpongeLightEcoLoader(Injector injector) { + this.injector = injector; this.bootstrap = new SpongeLightEcoBootstrap(this); } diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoPlugin.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoPlugin.java index e1e55e1..15e7870 100644 --- a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoPlugin.java +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeLightEcoPlugin.java @@ -9,6 +9,8 @@ import dev.xhyrom.lighteco.common.manager.user.StandardUserManager; import dev.xhyrom.lighteco.common.messaging.MessagingFactory; import dev.xhyrom.lighteco.common.plugin.AbstractLightEcoPlugin; +import dev.xhyrom.lighteco.sponge.manager.SpongeCommandManager; +import dev.xhyrom.lighteco.sponge.manager.SpongeContextManager; import lombok.Getter; import org.checkerframework.checker.nullness.qual.NonNull; @@ -44,8 +46,8 @@ public class SpongeLightEcoPlugin extends AbstractLightEcoPlugin { public void setupManagers() { this.userManager = new StandardUserManager(this); this.currencyManager = new StandardCurrencyManager(this); - // this.commandManager = new BukkitCommandManager(this); - // this.contextManager = new BukkitContextManager(); + this.commandManager = new SpongeCommandManager(this); + this.contextManager = new SpongeContextManager(); } @Override @@ -54,10 +56,7 @@ public class SpongeLightEcoPlugin extends AbstractLightEcoPlugin { } @Override - protected void registerApiOnPlatform(LightEco api) { - // this.getBootstrap().getServer().getServicesManager().register(LightEco.class, api, - // this.getBootstrap(), ServicePriority.Normal); - } + protected void registerApiOnPlatform(LightEco api) {} @Override protected void registerPlatformHooks() {} diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeSchedulerAdapter.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeSchedulerAdapter.java index 98397a9..0d27190 100644 --- a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeSchedulerAdapter.java +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/SpongeSchedulerAdapter.java @@ -14,8 +14,6 @@ public class SpongeSchedulerAdapter implements SchedulerAdapter { private final Executor async; protected SpongeSchedulerAdapter(SpongeLightEcoBootstrap bootstrap) { - this.plugin = bootstrap.getLoader(); - this.async = runnable -> Sponge.asyncScheduler().submit(Task.builder().execute(runnable).build()); } @@ -31,6 +29,11 @@ public class SpongeSchedulerAdapter implements SchedulerAdapter { return scheduledTask::cancel; } + @Override + public Executor async() { + return this.async; + } + @Override public SchedulerTask asyncLater(Runnable runnable, long delay, TimeUnit unit) { return submitAsyncTask(runnable, builder -> builder.delay(delay, unit)); diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/logger/SpongeLogger.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/logger/SpongeLogger.java index 7cf37a6..c0e5579 100644 --- a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/logger/SpongeLogger.java +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/logger/SpongeLogger.java @@ -1,12 +1,16 @@ package dev.xhyrom.lighteco.sponge.logger; +import dev.xhyrom.lighteco.common.plugin.LightEcoPlugin; import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger; +import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; public class SpongeLogger implements PluginLogger { + private final LightEcoPlugin plugin; private final Logger logger; - public SpongeLogger(Logger logger) { + public SpongeLogger(LightEcoPlugin plugin, Logger logger) { + this.plugin = plugin; this.logger = logger; } @@ -17,27 +21,41 @@ public class SpongeLogger implements PluginLogger { @Override public void info(String message, Object... args) { - this.logger.info(message, args); + this.logger.info(String.format(message, args)); + } + + @Override + public void debug(String message) { + if (!this.plugin.getConfig().debug) return; + + info(message); + } + + @Override + public void debug(String message, Object... args) { + if (!this.plugin.getConfig().debug) return; + + info(message, args); } @Override public void warn(String message) { - this.logger.warn(message); + this.logger.log(Level.WARN, message); } @Override public void warn(String message, Object... args) { - this.logger.warn(message, args); + this.logger.log(Level.WARN, String.format(message, args)); } @Override public void warn(String message, Throwable throwable) { - this.logger.warn(message, throwable); + this.logger.log(Level.WARN, message, throwable); } @Override public void warn(String message, Throwable throwable, Object... args) { - this.logger.warn(String.format(message, args), throwable); + this.logger.log(Level.WARN, String.format(message, args), throwable); } @Override @@ -47,16 +65,16 @@ public class SpongeLogger implements PluginLogger { @Override public void error(String message, Object... args) { - this.logger.error(message, args); + this.logger.error(String.format(message, args)); } @Override public void error(String message, Throwable throwable) { - this.logger.error(message, throwable); + this.logger.log(Level.ERROR, message, throwable); } @Override public void error(String message, Throwable throwable, Object... args) { - this.logger.error(String.format(message, args), throwable); + this.logger.log(Level.ERROR, String.format(message, args), throwable); } -} +} \ No newline at end of file diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/manager/SpongeCommandManager.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/manager/SpongeCommandManager.java new file mode 100644 index 0000000..fbfd19e --- /dev/null +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/manager/SpongeCommandManager.java @@ -0,0 +1,10 @@ +package dev.xhyrom.lighteco.sponge.manager; + +import dev.xhyrom.lighteco.common.command.CommandManager; +import dev.xhyrom.lighteco.common.plugin.LightEcoPlugin; + +public class SpongeCommandManager extends CommandManager { + public SpongeCommandManager(LightEcoPlugin plugin) { + super(plugin); + } +} diff --git a/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/manager/SpongeContextManager.java b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/manager/SpongeContextManager.java new file mode 100644 index 0000000..0c137bc --- /dev/null +++ b/sponge-9/src/main/java/dev/xhyrom/lighteco/sponge/manager/SpongeContextManager.java @@ -0,0 +1,19 @@ +package dev.xhyrom.lighteco.sponge.manager; + +import dev.xhyrom.lighteco.api.manager.ContextManager; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.spongepowered.api.entity.living.player.Player; + +import java.util.UUID; + +public class SpongeContextManager implements ContextManager { + @Override + public @NonNull UUID getPlayerUniqueId(@NonNull Player player) { + return player.uniqueId(); + } + + @Override + public @NonNull Class getPlayerClass() { + return Player.class; + } +}