diff options
author | embeddedt <42941056+embeddedt@users.noreply.github.com> | 2022-07-11 12:17:35 -0400 |
---|---|---|
committer | embeddedt <42941056+embeddedt@users.noreply.github.com> | 2022-07-11 12:17:35 -0400 |
commit | 9e477ace0acb3ba3f8d48841922b9b1eb2d2bf1e (patch) | |
tree | 799200e997f98da276792f16b6f12e3c6f1483b5 /spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java | |
parent | ecc3714e6441ace0eb78156b2b4475ca050280db (diff) | |
parent | a10f966a443d56845a5efb1e65232e6b87eabb96 (diff) | |
download | spark-9e477ace0acb3ba3f8d48841922b9b1eb2d2bf1e.tar.gz spark-9e477ace0acb3ba3f8d48841922b9b1eb2d2bf1e.tar.bz2 spark-9e477ace0acb3ba3f8d48841922b9b1eb2d2bf1e.zip |
Merge remote-tracking branch 'lucko/master' into forge-1.7.10
Diffstat (limited to 'spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java')
-rw-r--r-- | spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java b/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java index 670e0c5..324e242 100644 --- a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java +++ b/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java @@ -27,6 +27,7 @@ import me.lucko.spark.common.SparkPlatform; import me.lucko.spark.common.SparkPlugin; import me.lucko.spark.common.monitor.ping.PlayerPingProvider; import me.lucko.spark.common.platform.PlatformInfo; +import me.lucko.spark.common.platform.world.WorldInfoProvider; import me.lucko.spark.common.sampler.ThreadDumper; import me.lucko.spark.common.tick.TickHook; import me.lucko.spark.common.util.ClassSourceLookup; @@ -44,6 +45,7 @@ import org.spongepowered.api.plugin.Plugin; import org.spongepowered.api.plugin.PluginContainer; import org.spongepowered.api.scheduler.AsynchronousExecutor; import org.spongepowered.api.scheduler.SpongeExecutorService; +import org.spongepowered.api.scheduler.SynchronousExecutor; import org.spongepowered.api.text.Text; import org.spongepowered.api.world.Location; import org.spongepowered.api.world.World; @@ -70,17 +72,19 @@ public class Sponge7SparkPlugin implements SparkPlugin { private final Game game; private final Path configDirectory; private final SpongeExecutorService asyncExecutor; + private final SpongeExecutorService syncExecutor; private SparkPlatform platform; private final ThreadDumper.GameThread threadDumper = new ThreadDumper.GameThread(); @Inject - public Sponge7SparkPlugin(PluginContainer pluginContainer, Logger logger, Game game, @ConfigDir(sharedRoot = false) Path configDirectory, @AsynchronousExecutor SpongeExecutorService asyncExecutor) { + public Sponge7SparkPlugin(PluginContainer pluginContainer, Logger logger, Game game, @ConfigDir(sharedRoot = false) Path configDirectory, @AsynchronousExecutor SpongeExecutorService asyncExecutor, @SynchronousExecutor SpongeExecutorService syncExecutor) { this.pluginContainer = pluginContainer; this.logger = logger; this.game = game; this.configDirectory = configDirectory; this.asyncExecutor = asyncExecutor; + this.syncExecutor = syncExecutor; } @Listener @@ -112,10 +116,14 @@ public class Sponge7SparkPlugin implements SparkPlugin { @Override public Stream<Sponge7CommandSender> getCommandSenders() { - return Stream.concat( - this.game.getServer().getOnlinePlayers().stream(), - Stream.of(this.game.getServer().getConsole()) - ).map(Sponge7CommandSender::new); + if (this.game.isServerAvailable()) { + return Stream.concat( + this.game.getServer().getOnlinePlayers().stream(), + Stream.of(this.game.getServer().getConsole()) + ).map(Sponge7CommandSender::new); + } else { + return Stream.of(this.game.getServer().getConsole()).map(Sponge7CommandSender::new); + } } @Override @@ -124,6 +132,11 @@ public class Sponge7SparkPlugin implements SparkPlugin { } @Override + public void executeSync(Runnable task) { + this.syncExecutor.execute(task); + } + + @Override public void log(Level level, String msg) { if (level == Level.INFO) { this.logger.info(msg); @@ -161,6 +174,15 @@ public class Sponge7SparkPlugin implements SparkPlugin { } @Override + public WorldInfoProvider createWorldInfoProvider() { + if (this.game.isServerAvailable()) { + return new Sponge7WorldInfoProvider(this.game.getServer()); + } else { + return WorldInfoProvider.NO_OP; + } + } + + @Override public PlatformInfo getPlatformInfo() { return new Sponge7PlatformInfo(this.game); } |