From 2a03b547c7714a130b2bc1407b12a8abd58a9069 Mon Sep 17 00:00:00 2001 From: Luck Date: Sat, 3 Aug 2019 22:04:20 +0100 Subject: Some more reorganising --- .../me/lucko/spark/sponge/SparkSpongePlugin.java | 164 --------------------- .../me/lucko/spark/sponge/SpongeSparkPlugin.java | 164 +++++++++++++++++++++ .../me/lucko/spark/sponge/SpongeTickCounter.java | 4 +- 3 files changed, 166 insertions(+), 166 deletions(-) delete mode 100644 spark-sponge/src/main/java/me/lucko/spark/sponge/SparkSpongePlugin.java create mode 100644 spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeSparkPlugin.java (limited to 'spark-sponge/src/main/java/me/lucko/spark') diff --git a/spark-sponge/src/main/java/me/lucko/spark/sponge/SparkSpongePlugin.java b/spark-sponge/src/main/java/me/lucko/spark/sponge/SparkSpongePlugin.java deleted file mode 100644 index ae312a0..0000000 --- a/spark-sponge/src/main/java/me/lucko/spark/sponge/SparkSpongePlugin.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * This file is part of spark. - * - * Copyright (c) lucko (Luck) - * Copyright (c) contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package me.lucko.spark.sponge; - -import com.google.inject.Inject; -import me.lucko.spark.common.SparkPlatform; -import me.lucko.spark.common.SparkPlugin; -import me.lucko.spark.common.sampler.ThreadDumper; -import me.lucko.spark.common.sampler.TickCounter; -import org.spongepowered.api.Game; -import org.spongepowered.api.command.CommandCallable; -import org.spongepowered.api.command.CommandResult; -import org.spongepowered.api.command.CommandSource; -import org.spongepowered.api.config.ConfigDir; -import org.spongepowered.api.event.Listener; -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.scheduler.AsynchronousExecutor; -import org.spongepowered.api.scheduler.SpongeExecutorService; -import org.spongepowered.api.text.Text; -import org.spongepowered.api.world.Location; -import org.spongepowered.api.world.World; - -import javax.annotation.Nullable; -import java.nio.file.Path; -import java.util.List; -import java.util.Optional; -import java.util.stream.Stream; - -@Plugin( - id = "spark", - name = "spark", - version = "@version@", - description = "@desc@", - authors = {"Luck", "sk89q"}, - dependencies = { - // explicit dependency on spongeapi with no defined API version - @Dependency(id = "spongeapi") - } -) -public class SparkSpongePlugin implements SparkPlugin { - - private final Game game; - private final Path configDirectory; - private final SpongeExecutorService asyncExecutor; - - private SparkPlatform platform; - - @Inject - public SparkSpongePlugin(Game game, @ConfigDir(sharedRoot = false) Path configDirectory, @AsynchronousExecutor SpongeExecutorService asyncExecutor) { - this.game = game; - this.configDirectory = configDirectory; - this.asyncExecutor = asyncExecutor; - } - - @Listener - public void onEnable(GameStartedServerEvent event) { - this.platform = new SparkPlatform(this); - this.platform.enable(); - this.game.getCommandManager().register(this, new SparkCommand(this), "spark"); - } - - @Listener - public void onDisable(GameStoppingServerEvent event) { - this.platform.disable(); - } - - @Override - public String getVersion() { - return SparkSpongePlugin.class.getAnnotation(Plugin.class).version(); - } - - @Override - public Path getPluginFolder() { - return this.configDirectory; - } - - @Override - public String getLabel() { - return "spark"; - } - - @Override - public Stream getSendersWithPermission(String permission) { - return Stream.concat( - this.game.getServer().getOnlinePlayers().stream().filter(player -> player.hasPermission(permission)), - Stream.of(this.game.getServer().getConsole()) - ).map(SpongeCommandSender::new); - } - - @Override - public void runAsync(Runnable r) { - this.asyncExecutor.execute(r); - } - - @Override - public ThreadDumper getDefaultThreadDumper() { - return new ThreadDumper.Specific(new long[]{Thread.currentThread().getId()}); - } - - @Override - public TickCounter createTickCounter() { - return new SpongeTickCounter(this); - } - - private static final class SparkCommand implements CommandCallable { - private final SparkSpongePlugin plugin; - - private SparkCommand(SparkSpongePlugin plugin) { - this.plugin = plugin; - } - - @Override - public CommandResult process(CommandSource source, String arguments) { - this.plugin.platform.executeCommand(new SpongeCommandSender(source), arguments.split(" ")); - return CommandResult.empty(); - } - - @Override - public List getSuggestions(CommandSource source, String arguments, @Nullable Location targetPosition) { - return this.plugin.platform.tabCompleteCommand(new SpongeCommandSender(source), arguments.split(" ")); - } - - @Override - public boolean testPermission(CommandSource source) { - return source.hasPermission("spark"); - } - - @Override - public Optional getShortDescription(CommandSource source) { - return Optional.of(Text.of("Main spark plugin command")); - } - - @Override - public Optional getHelp(CommandSource source) { - return Optional.of(Text.of("Run '/spark' to view usage.")); - } - - @Override - public Text getUsage(CommandSource source) { - return Text.of("Run '/spark' to view usage."); - } - } -} 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 new file mode 100644 index 0000000..d221f04 --- /dev/null +++ b/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeSparkPlugin.java @@ -0,0 +1,164 @@ +/* + * This file is part of spark. + * + * Copyright (c) lucko (Luck) + * Copyright (c) contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package me.lucko.spark.sponge; + +import com.google.inject.Inject; +import me.lucko.spark.common.SparkPlatform; +import me.lucko.spark.common.SparkPlugin; +import me.lucko.spark.common.sampler.ThreadDumper; +import me.lucko.spark.common.sampler.TickCounter; +import org.spongepowered.api.Game; +import org.spongepowered.api.command.CommandCallable; +import org.spongepowered.api.command.CommandResult; +import org.spongepowered.api.command.CommandSource; +import org.spongepowered.api.config.ConfigDir; +import org.spongepowered.api.event.Listener; +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.scheduler.AsynchronousExecutor; +import org.spongepowered.api.scheduler.SpongeExecutorService; +import org.spongepowered.api.text.Text; +import org.spongepowered.api.world.Location; +import org.spongepowered.api.world.World; + +import javax.annotation.Nullable; +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; + +@Plugin( + id = "spark", + name = "spark", + version = "@version@", + description = "@desc@", + authors = {"Luck", "sk89q"}, + dependencies = { + // explicit dependency on spongeapi with no defined API version + @Dependency(id = "spongeapi") + } +) +public class SpongeSparkPlugin implements SparkPlugin { + + private final Game game; + private final Path configDirectory; + private final SpongeExecutorService asyncExecutor; + + private SparkPlatform platform; + + @Inject + public SpongeSparkPlugin(Game game, @ConfigDir(sharedRoot = false) Path configDirectory, @AsynchronousExecutor SpongeExecutorService asyncExecutor) { + this.game = game; + this.configDirectory = configDirectory; + this.asyncExecutor = asyncExecutor; + } + + @Listener + public void onEnable(GameStartedServerEvent event) { + this.platform = new SparkPlatform(this); + this.platform.enable(); + this.game.getCommandManager().register(this, new SparkCommand(this), "spark"); + } + + @Listener + public void onDisable(GameStoppingServerEvent event) { + this.platform.disable(); + } + + @Override + public String getVersion() { + return SpongeSparkPlugin.class.getAnnotation(Plugin.class).version(); + } + + @Override + public Path getPluginDirectory() { + return this.configDirectory; + } + + @Override + public String getCommandName() { + return "spark"; + } + + @Override + public Stream getSendersWithPermission(String permission) { + return Stream.concat( + this.game.getServer().getOnlinePlayers().stream().filter(player -> player.hasPermission(permission)), + Stream.of(this.game.getServer().getConsole()) + ).map(SpongeCommandSender::new); + } + + @Override + public void executeAsync(Runnable task) { + this.asyncExecutor.execute(task); + } + + @Override + public ThreadDumper getDefaultThreadDumper() { + return new ThreadDumper.Specific(new long[]{Thread.currentThread().getId()}); + } + + @Override + public TickCounter createTickCounter() { + return new SpongeTickCounter(this); + } + + private static final class SparkCommand implements CommandCallable { + private final SpongeSparkPlugin plugin; + + private SparkCommand(SpongeSparkPlugin plugin) { + this.plugin = plugin; + } + + @Override + public CommandResult process(CommandSource source, String arguments) { + this.plugin.platform.executeCommand(new SpongeCommandSender(source), arguments.split(" ")); + return CommandResult.empty(); + } + + @Override + public List getSuggestions(CommandSource source, String arguments, @Nullable Location targetPosition) { + return this.plugin.platform.tabCompleteCommand(new SpongeCommandSender(source), arguments.split(" ")); + } + + @Override + public boolean testPermission(CommandSource source) { + return source.hasPermission("spark"); + } + + @Override + public Optional getShortDescription(CommandSource source) { + return Optional.of(Text.of("Main spark plugin command")); + } + + @Override + public Optional getHelp(CommandSource source) { + return Optional.of(Text.of("Run '/spark' to view usage.")); + } + + @Override + public Text getUsage(CommandSource source) { + return Text.of("Run '/spark' to view usage."); + } + } +} diff --git a/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeTickCounter.java b/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeTickCounter.java index 187f301..3c5db06 100644 --- a/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeTickCounter.java +++ b/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeTickCounter.java @@ -26,13 +26,13 @@ import java.util.HashSet; import java.util.Set; public class SpongeTickCounter implements TickCounter, Runnable { - private final SparkSpongePlugin plugin; + private final SpongeSparkPlugin plugin; private org.spongepowered.api.scheduler.Task task; private final Set tasks = new HashSet<>(); private int tick = 0; - public SpongeTickCounter(SparkSpongePlugin plugin) { + public SpongeTickCounter(SpongeSparkPlugin plugin) { this.plugin = plugin; } -- cgit