aboutsummaryrefslogtreecommitdiff
path: root/spark-sponge/src/main/java/me
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2018-12-31 18:15:39 +0000
committerLuck <git@lucko.me>2018-12-31 18:15:39 +0000
commit9bed6177ddf94f67aaad5ee2504721cf0b957a94 (patch)
treea830407555e458bc02f220b09b4b40386321eb9c /spark-sponge/src/main/java/me
parent66a8afab99efb7ac7669961eb2e67e2244d494e5 (diff)
downloadspark-9bed6177ddf94f67aaad5ee2504721cf0b957a94.tar.gz
spark-9bed6177ddf94f67aaad5ee2504721cf0b957a94.tar.bz2
spark-9bed6177ddf94f67aaad5ee2504721cf0b957a94.zip
Add '/spark heapdump' command
Diffstat (limited to 'spark-sponge/src/main/java/me')
-rw-r--r--spark-sponge/src/main/java/me/lucko/spark/sponge/SparkSpongePlugin.java26
1 files changed, 18 insertions, 8 deletions
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
index 01052cb..2abaf3f 100644
--- a/spark-sponge/src/main/java/me/lucko/spark/sponge/SparkSpongePlugin.java
+++ b/spark-sponge/src/main/java/me/lucko/spark/sponge/SparkSpongePlugin.java
@@ -27,10 +27,10 @@ import me.lucko.spark.sampler.ThreadDumper;
import me.lucko.spark.sampler.TickCounter;
import org.spongepowered.api.Game;
-import org.spongepowered.api.Sponge;
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.entity.living.player.Player;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameStartedServerEvent;
@@ -47,6 +47,7 @@ import org.spongepowered.api.world.World;
import java.net.MalformedURLException;
import java.net.URL;
+import java.nio.file.Path;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@@ -66,14 +67,18 @@ import javax.annotation.Nullable;
)
public class SparkSpongePlugin implements CommandCallable {
+ private final Game game;
+ private final Path configDirectory;
+ private final SpongeExecutorService asyncExecutor;
+
private final SparkPlatform<CommandSource> sparkPlatform = new SparkPlatform<CommandSource>() {
private Text colorize(String message) {
return TextSerializers.FORMATTING_CODE.deserialize(message);
}
private void broadcast(Text msg) {
- Sponge.getServer().getConsole().sendMessage(msg);
- for (Player player : Sponge.getServer().getOnlinePlayers()) {
+ SparkSpongePlugin.this.game.getServer().getConsole().sendMessage(msg);
+ for (Player player : SparkSpongePlugin.this.game.getServer().getOnlinePlayers()) {
if (player.hasPermission("spark")) {
player.sendMessage(msg);
}
@@ -86,6 +91,11 @@ public class SparkSpongePlugin implements CommandCallable {
}
@Override
+ public Path getPluginFolder() {
+ return SparkSpongePlugin.this.configDirectory;
+ }
+
+ @Override
public String getLabel() {
return "spark";
}
@@ -131,11 +141,11 @@ public class SparkSpongePlugin implements CommandCallable {
};
@Inject
- @AsynchronousExecutor
- private SpongeExecutorService asyncExecutor;
-
- @Inject
- private Game game;
+ public SparkSpongePlugin(Game game, @ConfigDir(sharedRoot = false) Path configDirectory, @AsynchronousExecutor SpongeExecutorService asyncExecutor) {
+ this.game = game;
+ this.configDirectory = configDirectory;
+ this.asyncExecutor = asyncExecutor;
+ }
@Listener
public void onServerStart(GameStartedServerEvent event) {