aboutsummaryrefslogtreecommitdiff
path: root/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java
diff options
context:
space:
mode:
authorembeddedt <42941056+embeddedt@users.noreply.github.com>2022-07-11 12:17:35 -0400
committerembeddedt <42941056+embeddedt@users.noreply.github.com>2022-07-11 12:17:35 -0400
commit9e477ace0acb3ba3f8d48841922b9b1eb2d2bf1e (patch)
tree799200e997f98da276792f16b6f12e3c6f1483b5 /spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java
parentecc3714e6441ace0eb78156b2b4475ca050280db (diff)
parenta10f966a443d56845a5efb1e65232e6b87eabb96 (diff)
downloadspark-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.java32
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);
}