diff options
author | Luck <git@lucko.me> | 2018-12-31 18:15:39 +0000 |
---|---|---|
committer | Luck <git@lucko.me> | 2018-12-31 18:15:39 +0000 |
commit | 9bed6177ddf94f67aaad5ee2504721cf0b957a94 (patch) | |
tree | a830407555e458bc02f220b09b4b40386321eb9c /spark-forge/src/main/java | |
parent | 66a8afab99efb7ac7669961eb2e67e2244d494e5 (diff) | |
download | spark-9bed6177ddf94f67aaad5ee2504721cf0b957a94.tar.gz spark-9bed6177ddf94f67aaad5ee2504721cf0b957a94.tar.bz2 spark-9bed6177ddf94f67aaad5ee2504721cf0b957a94.zip |
Add '/spark heapdump' command
Diffstat (limited to 'spark-forge/src/main/java')
4 files changed, 40 insertions, 4 deletions
diff --git a/spark-forge/src/main/java/me/lucko/spark/forge/ForgeClientSparkPlatform.java b/spark-forge/src/main/java/me/lucko/spark/forge/ForgeClientSparkPlatform.java index b56dd70..c383636 100644 --- a/spark-forge/src/main/java/me/lucko/spark/forge/ForgeClientSparkPlatform.java +++ b/spark-forge/src/main/java/me/lucko/spark/forge/ForgeClientSparkPlatform.java @@ -34,8 +34,12 @@ import java.util.List; public class ForgeClientSparkPlatform extends ForgeSparkPlatform { - public static void register() { - ClientCommandHandler.instance.registerCommand(new ForgeClientSparkPlatform()); + public static void register(SparkForgeMod mod) { + ClientCommandHandler.instance.registerCommand(new ForgeClientSparkPlatform(mod)); + } + + public ForgeClientSparkPlatform(SparkForgeMod mod) { + super(mod); } @Override diff --git a/spark-forge/src/main/java/me/lucko/spark/forge/ForgeServerSparkPlatform.java b/spark-forge/src/main/java/me/lucko/spark/forge/ForgeServerSparkPlatform.java index d667234..a5c6c01 100644 --- a/spark-forge/src/main/java/me/lucko/spark/forge/ForgeServerSparkPlatform.java +++ b/spark-forge/src/main/java/me/lucko/spark/forge/ForgeServerSparkPlatform.java @@ -34,6 +34,10 @@ import java.util.List; public class ForgeServerSparkPlatform extends ForgeSparkPlatform { + public ForgeServerSparkPlatform(SparkForgeMod mod) { + super(mod); + } + @Override protected void broadcast(ITextComponent msg) { FMLCommonHandler.instance().getMinecraftServerInstance().sendMessage(msg); diff --git a/spark-forge/src/main/java/me/lucko/spark/forge/ForgeSparkPlatform.java b/spark-forge/src/main/java/me/lucko/spark/forge/ForgeSparkPlatform.java index f5a2c9e..1f4c173 100644 --- a/spark-forge/src/main/java/me/lucko/spark/forge/ForgeSparkPlatform.java +++ b/spark-forge/src/main/java/me/lucko/spark/forge/ForgeSparkPlatform.java @@ -38,6 +38,7 @@ import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.event.ClickEvent; import net.minecraftforge.fml.common.Mod; +import java.nio.file.Path; import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutorService; @@ -48,15 +49,26 @@ import javax.annotation.Nullable; @SuppressWarnings("NullableProblems") public abstract class ForgeSparkPlatform extends SparkPlatform<ICommandSender> implements ICommand { + private final SparkForgeMod mod; + private final ExecutorService worker = Executors.newSingleThreadExecutor( new ThreadFactoryBuilder().setNameFormat("spark-forge-async-worker").build() ); + protected ForgeSparkPlatform(SparkForgeMod mod) { + this.mod = mod; + } + @Override public String getVersion() { return SparkForgeMod.class.getAnnotation(Mod.class).version(); } + @Override + public Path getPluginFolder() { + return this.mod.getConfigDirectory(); + } + @SuppressWarnings("deprecation") protected ITextComponent colorize(String message) { TextComponent component = ComponentSerializers.LEGACY.deserialize(message, '&'); diff --git a/spark-forge/src/main/java/me/lucko/spark/forge/SparkForgeMod.java b/spark-forge/src/main/java/me/lucko/spark/forge/SparkForgeMod.java index 133ec09..aa4f379 100644 --- a/spark-forge/src/main/java/me/lucko/spark/forge/SparkForgeMod.java +++ b/spark-forge/src/main/java/me/lucko/spark/forge/SparkForgeMod.java @@ -24,9 +24,12 @@ import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLServerStartingEvent; import net.minecraftforge.fml.relauncher.Side; +import java.nio.file.Path; + @Mod( modid = "spark", name = "spark", @@ -35,16 +38,29 @@ import net.minecraftforge.fml.relauncher.Side; ) public class SparkForgeMod { + private Path configDirectory = null; + + @EventHandler + public void preInit(FMLPreInitializationEvent e) { + this.configDirectory = e.getModConfigurationDirectory().toPath(); + } + @EventHandler public void init(FMLInitializationEvent e) { if (FMLCommonHandler.instance().getSide() == Side.CLIENT) { - ForgeClientSparkPlatform.register(); + ForgeClientSparkPlatform.register(this); } } @EventHandler public void serverInit(FMLServerStartingEvent e) { - e.registerServerCommand(new ForgeServerSparkPlatform()); + e.registerServerCommand(new ForgeServerSparkPlatform(this)); } + public Path getConfigDirectory() { + if (this.configDirectory == null) { + throw new IllegalStateException("Config directory not set"); + } + return this.configDirectory; + } } |