diff options
Diffstat (limited to 'spark-sponge')
3 files changed, 21 insertions, 11 deletions
diff --git a/spark-sponge/build.gradle b/spark-sponge/build.gradle index 89a6a09..7336065 100644 --- a/spark-sponge/build.gradle +++ b/spark-sponge/build.gradle @@ -4,9 +4,9 @@ plugins { dependencies { compile project(':spark-common') - compile('net.kyori:text-adapter-spongeapi:3.0.5') { - exclude(module: 'text-api') - exclude(module: 'text-serializer-gson') + compile ('net.kyori:adventure-platform-spongeapi:4.0.0-SNAPSHOT') { + exclude(module: 'adventure-api') + exclude(module: 'adventure-text-serializer-gson') } compileOnly 'org.spongepowered:spongeapi:7.3.0' annotationProcessor 'org.spongepowered:spongeapi:7.3.0' diff --git a/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeCommandSender.java b/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeCommandSender.java index ba0e5df..03766d2 100644 --- a/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeCommandSender.java +++ b/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeCommandSender.java @@ -21,16 +21,20 @@ package me.lucko.spark.sponge; import me.lucko.spark.common.command.sender.AbstractCommandSender; -import net.kyori.text.Component; -import net.kyori.text.adapter.spongeapi.TextAdapter; +import net.kyori.adventure.audience.Audience; +import net.kyori.adventure.platform.spongeapi.SpongeAudiences; +import net.kyori.adventure.text.Component; import org.spongepowered.api.command.CommandSource; import org.spongepowered.api.entity.living.player.Player; import java.util.UUID; public class SpongeCommandSender extends AbstractCommandSender<CommandSource> { - public SpongeCommandSender(CommandSource source) { + private final Audience audience; + + public SpongeCommandSender(CommandSource source, SpongeAudiences audienceFactory) { super(source); + this.audience = audienceFactory.receiver(source); } @Override @@ -48,7 +52,7 @@ public class SpongeCommandSender extends AbstractCommandSender<CommandSource> { @Override public void sendMessage(Component message) { - TextAdapter.sendMessage(super.delegate, message); + this.audience.sendMessage(message); } @Override diff --git a/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeSparkPlugin.java b/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeSparkPlugin.java index d2c842a..5f9a3ef 100644 --- a/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeSparkPlugin.java +++ b/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeSparkPlugin.java @@ -26,6 +26,7 @@ import me.lucko.spark.common.SparkPlugin; import me.lucko.spark.common.platform.PlatformInfo; import me.lucko.spark.common.sampler.ThreadDumper; import me.lucko.spark.common.sampler.tick.TickHook; +import net.kyori.adventure.platform.spongeapi.SpongeAudiences; import org.spongepowered.api.Game; import org.spongepowered.api.command.CommandCallable; import org.spongepowered.api.command.CommandResult; @@ -36,6 +37,7 @@ import org.spongepowered.api.event.game.state.GameStartedServerEvent; import org.spongepowered.api.event.game.state.GameStoppingServerEvent; import org.spongepowered.api.plugin.Dependency; 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.text.Text; @@ -62,14 +64,17 @@ import javax.annotation.Nullable; ) public class SpongeSparkPlugin implements SparkPlugin { + private final PluginContainer pluginContainer; private final Game game; private final Path configDirectory; private final SpongeExecutorService asyncExecutor; + private SpongeAudiences audienceFactory; private SparkPlatform platform; @Inject - public SpongeSparkPlugin(Game game, @ConfigDir(sharedRoot = false) Path configDirectory, @AsynchronousExecutor SpongeExecutorService asyncExecutor) { + public SpongeSparkPlugin(PluginContainer pluginContainer, Game game, @ConfigDir(sharedRoot = false) Path configDirectory, @AsynchronousExecutor SpongeExecutorService asyncExecutor) { + this.pluginContainer = pluginContainer; this.game = game; this.configDirectory = configDirectory; this.asyncExecutor = asyncExecutor; @@ -77,6 +82,7 @@ public class SpongeSparkPlugin implements SparkPlugin { @Listener public void onEnable(GameStartedServerEvent event) { + this.audienceFactory = SpongeAudiences.create(this.pluginContainer, this.game); this.platform = new SparkPlatform(this); this.platform.enable(); this.game.getCommandManager().register(this, new SparkCommand(this), "spark"); @@ -107,7 +113,7 @@ public class SpongeSparkPlugin implements SparkPlugin { return Stream.concat( this.game.getServer().getOnlinePlayers().stream().filter(player -> player.hasPermission(permission)), Stream.of(this.game.getServer().getConsole()) - ).map(SpongeCommandSender::new); + ).map((CommandSource source) -> new SpongeCommandSender(source, this.audienceFactory)); } @Override @@ -139,13 +145,13 @@ public class SpongeSparkPlugin implements SparkPlugin { @Override public CommandResult process(CommandSource source, String arguments) { - this.plugin.platform.executeCommand(new SpongeCommandSender(source), arguments.split(" ")); + this.plugin.platform.executeCommand(new SpongeCommandSender(source, this.plugin.audienceFactory), arguments.split(" ")); return CommandResult.empty(); } @Override public List<String> getSuggestions(CommandSource source, String arguments, @Nullable Location<World> targetPosition) { - return this.plugin.platform.tabCompleteCommand(new SpongeCommandSender(source), arguments.split(" ")); + return this.plugin.platform.tabCompleteCommand(new SpongeCommandSender(source, this.plugin.audienceFactory), arguments.split(" ")); } @Override |