aboutsummaryrefslogtreecommitdiff
path: root/spark-forge1710/src/main
diff options
context:
space:
mode:
authoru9g <43508353+u9g@users.noreply.github.com>2022-10-02 14:48:39 -0400
committernea <nea@nea.moe>2023-07-24 20:18:48 +0200
commitc61ed93aa03504dcf23eab3228191be93d331afd (patch)
treeddca24ab28041d9a9280172db25326858dd7bac9 /spark-forge1710/src/main
parent7e1fe4231d3b098f08ee9ebb68a551016e345a73 (diff)
downloadspark-c61ed93aa03504dcf23eab3228191be93d331afd.tar.gz
spark-c61ed93aa03504dcf23eab3228191be93d331afd.tar.bz2
spark-c61ed93aa03504dcf23eab3228191be93d331afd.zip
1.8.9 support
Diffstat (limited to 'spark-forge1710/src/main')
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710CommandSender.java92
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710PlatformInfo.java52
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710PlayerPingProvider.java48
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710SparkMod.java82
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710TickHook.java59
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710TickReporter.java65
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710WorldInfoProvider.java150
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710ClientSparkPlugin.java104
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710ServerSparkPlugin.java149
-rw-r--r--spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710SparkPlugin.java145
-rw-r--r--spark-forge1710/src/main/resources/mcmod.info7
11 files changed, 0 insertions, 953 deletions
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710CommandSender.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710CommandSender.java
deleted file mode 100644
index 71344a3..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710CommandSender.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge;
-
-import me.lucko.spark.common.command.sender.AbstractCommandSender;
-import me.lucko.spark.forge.plugin.Forge1710SparkPlugin;
-import net.kyori.adventure.text.Component;
-import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
-import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.network.rcon.RConConsoleSource;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.util.ChatComponentText;
-import net.minecraft.util.IChatComponent;
-import net.minecraftforge.common.ForgeHooks;
-
-import java.util.UUID;
-
-public class Forge1710CommandSender extends AbstractCommandSender<ICommandSender> {
- private final Forge1710SparkPlugin plugin;
-
- public Forge1710CommandSender(ICommandSender source, Forge1710SparkPlugin plugin) {
- super(source);
- this.plugin = plugin;
- }
-
- @Override
- public String getName() {
- if (super.delegate instanceof EntityPlayer) {
- return ((EntityPlayer) super.delegate).getGameProfile().getName();
- } else if (super.delegate instanceof MinecraftServer) {
- return "Console";
- } else if (super.delegate instanceof RConConsoleSource) {
- return "RCON Console";
- } else {
- return "unknown:" + super.delegate.getClass().getSimpleName();
- }
- }
-
- @Override
- public UUID getUniqueId() {
- if (super.delegate instanceof EntityPlayer) {
- return ((EntityPlayer) super.delegate).getUniqueID();
- }
- return null;
- }
-
- @Override
- public void sendMessage(Component message) {
- /*
- * Due to limitations in 1.7.10, messages with \n render incorrectly on the client.
- * To work around this, we convert the message to a string first, split it by newline,
- * and send each line individually.
- *
- * This adds a performance penalty, but avoids any weirdness with this old client.
- */
- LegacyComponentSerializer serializer = LegacyComponentSerializer.builder()
- .character(LegacyComponentSerializer.SECTION_CHAR)
- .extractUrls()
- .build();
- String output = serializer.serialize(message);
- for(String line : output.split("\n")) {
- Component deserialized = serializer.deserialize(line);
- IChatComponent mcComponent = IChatComponent.Serializer.jsonToComponent(GsonComponentSerializer.gson().serialize(deserialized));
- super.delegate.addChatMessage(mcComponent);
- }
- }
-
- @Override
- public boolean hasPermission(String permission) {
- return this.plugin.hasPermission(super.delegate, permission);
- }
-}
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710PlatformInfo.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710PlatformInfo.java
deleted file mode 100644
index d9c8351..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710PlatformInfo.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge;
-
-import me.lucko.spark.common.platform.PlatformInfo;
-import net.minecraftforge.common.ForgeVersion;
-
-public class Forge1710PlatformInfo implements PlatformInfo {
- private final Type type;
-
- public Forge1710PlatformInfo(Type type) {
- this.type = type;
- }
-
- @Override
- public Type getType() {
- return this.type;
- }
-
- @Override
- public String getName() {
- return "Forge";
- }
-
- @Override
- public String getVersion() {
- return ForgeVersion.getVersion();
- }
-
- @Override
- public String getMinecraftVersion() {
- return "1.7.10";
- }
-}
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710PlayerPingProvider.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710PlayerPingProvider.java
deleted file mode 100644
index 11ee45a..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710PlayerPingProvider.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge;
-
-import com.google.common.collect.ImmutableMap;
-
-import me.lucko.spark.common.monitor.ping.PlayerPingProvider;
-
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.server.MinecraftServer;
-
-import java.util.List;
-import java.util.Map;
-
-public class Forge1710PlayerPingProvider implements PlayerPingProvider {
- private final MinecraftServer server;
-
- public Forge1710PlayerPingProvider(MinecraftServer server) {
- this.server = server;
- }
-
- @Override
- public Map<String, Integer> poll() {
- ImmutableMap.Builder<String, Integer> builder = ImmutableMap.builder();
- for (EntityPlayerMP player : (List<EntityPlayerMP>)this.server.getConfigurationManager().playerEntityList) {
- builder.put(player.getGameProfile().getName(), player.ping);
- }
- return builder.build();
- }
-}
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710SparkMod.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710SparkMod.java
deleted file mode 100644
index 5cdd62e..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710SparkMod.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge;
-
-import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.Mod;
-import cpw.mods.fml.common.Mod.EventHandler;
-import cpw.mods.fml.common.event.FMLInitializationEvent;
-import cpw.mods.fml.common.event.FMLPreInitializationEvent;
-import cpw.mods.fml.common.event.FMLServerStartingEvent;
-import cpw.mods.fml.common.event.FMLServerStoppingEvent;
-import cpw.mods.fml.relauncher.Side;
-import me.lucko.spark.forge.plugin.Forge1710ClientSparkPlugin;
-import me.lucko.spark.forge.plugin.Forge1710ServerSparkPlugin;
-
-import java.nio.file.Path;
-
-@Mod(
- modid = "spark",
- name = "spark",
- version = "@version@",
- acceptableRemoteVersions = "*"
-)
-public class Forge1710SparkMod {
-
- private Path configDirectory;
- private Forge1710ServerSparkPlugin activeServerPlugin;
-
- public String getVersion() {
- return Forge1710SparkMod.class.getAnnotation(Mod.class).version();
- }
-
- @EventHandler
- public void preInit(FMLPreInitializationEvent e) {
- this.configDirectory = e.getModConfigurationDirectory().toPath();
- }
-
- @EventHandler
- public void clientInit(FMLInitializationEvent e) {
- if (FMLCommonHandler.instance().getSide() == Side.CLIENT) {
- Forge1710ClientSparkPlugin.register(this);
- }
- }
-
- @EventHandler
- public void serverInit(FMLServerStartingEvent e) {
- this.activeServerPlugin = Forge1710ServerSparkPlugin.register(this, e);
- }
-
- @EventHandler
- public void serverStop(FMLServerStoppingEvent e) {
- if (this.activeServerPlugin != null) {
- this.activeServerPlugin.disable();
- this.activeServerPlugin = null;
- }
- }
-
- public Path getConfigDirectory() {
- if (this.configDirectory == null) {
- throw new IllegalStateException("Config directory not set");
- }
- return this.configDirectory;
- }
-}
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710TickHook.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710TickHook.java
deleted file mode 100644
index 44cb11a..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710TickHook.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge;
-
-import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.eventhandler.SubscribeEvent;
-import cpw.mods.fml.common.gameevent.TickEvent;
-import me.lucko.spark.common.tick.AbstractTickHook;
-import me.lucko.spark.common.tick.TickHook;
-
-public class Forge1710TickHook extends AbstractTickHook implements TickHook {
- private final TickEvent.Type type;
-
- public Forge1710TickHook(TickEvent.Type type) {
- this.type = type;
- }
-
- @SubscribeEvent
- public void onTick(TickEvent e) {
- if (e.phase != TickEvent.Phase.START) {
- return;
- }
-
- if (e.type != this.type) {
- return;
- }
-
- onTick();
- }
-
- @Override
- public void start() {
- FMLCommonHandler.instance().bus().register(this);
- }
-
- @Override
- public void close() {
- FMLCommonHandler.instance().bus().unregister(this);
- }
-
-}
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710TickReporter.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710TickReporter.java
deleted file mode 100644
index d46c4d6..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710TickReporter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge;
-
-import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.eventhandler.SubscribeEvent;
-import cpw.mods.fml.common.gameevent.TickEvent;
-import me.lucko.spark.common.tick.SimpleTickReporter;
-import me.lucko.spark.common.tick.TickReporter;
-
-public class Forge1710TickReporter extends SimpleTickReporter implements TickReporter {
- private final TickEvent.Type type;
-
- public Forge1710TickReporter(TickEvent.Type type) {
- this.type = type;
- }
-
- @SubscribeEvent
- public void onTick(TickEvent e) {
- if (e.type != this.type) {
- return;
- }
-
- switch (e.phase) {
- case START:
- onStart();
- break;
- case END:
- onEnd();
- break;
- default:
- throw new AssertionError(e.phase);
- }
- }
-
- @Override
- public void start() {
- FMLCommonHandler.instance().bus().register(this);
- }
-
- @Override
- public void close() {
- FMLCommonHandler.instance().bus().unregister(this);
- super.close();
- }
-
-}
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710WorldInfoProvider.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710WorldInfoProvider.java
deleted file mode 100644
index 232f88b..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/Forge1710WorldInfoProvider.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge;
-
-import cpw.mods.fml.relauncher.ReflectionHelper;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import me.lucko.spark.common.platform.world.AbstractChunkInfo;
-import me.lucko.spark.common.platform.world.CountMap;
-import me.lucko.spark.common.platform.world.WorldInfoProvider;
-
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.multiplayer.ChunkProviderClient;
-import net.minecraft.client.multiplayer.WorldClient;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityList;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.world.WorldServer;
-import net.minecraft.world.chunk.Chunk;
-import net.minecraft.world.chunk.IChunkProvider;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public abstract class Forge1710WorldInfoProvider implements WorldInfoProvider {
- public static final class Server extends Forge1710WorldInfoProvider {
- private final MinecraftServer server;
-
- public Server(MinecraftServer server) {
- this.server = server;
- }
-
- @Override
- public ChunksResult<ForgeChunkInfo> pollChunks() {
- ChunksResult<ForgeChunkInfo> data = new ChunksResult<>();
-
- for (WorldServer level : this.server.worldServers) {
- ArrayList<ForgeChunkInfo> list = new ArrayList<>();
- for(Chunk chunk : (List<Chunk>)level.theChunkProviderServer.loadedChunks) {
- list.add(new ForgeChunkInfo(chunk));
- }
- data.put(level.provider.getDimensionName(), list);
- }
-
- return data;
- }
-
- @Override
- public CountsResult pollCounts() {
- int players = this.server.getCurrentPlayerCount();
- int entities = 0;
- int chunks = 0;
-
- for (WorldServer level : this.server.worldServers) {
- entities += level.loadedEntityList.size();
- chunks += level.getChunkProvider().getLoadedChunkCount();
- }
-
- return new CountsResult(players, entities, -1, chunks);
- }
- }
-
- @SideOnly(Side.CLIENT)
- public static final class Client extends Forge1710WorldInfoProvider {
- private final Minecraft client;
-
- public Client(Minecraft client) {
- this.client = client;
- }
-
- @Override
- public ChunksResult<ForgeChunkInfo> pollChunks() {
- ChunksResult<ForgeChunkInfo> data = new ChunksResult<>();
-
- WorldClient level = this.client.theWorld;
- if (level == null) {
- return null;
- }
-
- ArrayList<ForgeChunkInfo> list = new ArrayList<>();
- IChunkProvider provider = level.getChunkProvider();
- if(provider instanceof ChunkProviderClient) {
- List<Chunk> chunks = ReflectionHelper.getPrivateValue(ChunkProviderClient.class, (ChunkProviderClient)provider, "chunkListing", "field_73237_c");
- for(Chunk chunk : chunks) {
- list.add(new ForgeChunkInfo(chunk));
- }
- }
-
- data.put(level.provider.getDimensionName(), list);
-
- return data;
- }
-
- @Override
- public CountsResult pollCounts() {
- WorldClient level = this.client.theWorld;
- if (level == null) {
- return null;
- }
-
- return new CountsResult(-1, level.loadedEntityList.size(), -1, level.getChunkProvider().getLoadedChunkCount());
- }
- }
-
- static final class ForgeChunkInfo extends AbstractChunkInfo<Class<? extends Entity>> {
- private final CountMap<Class<? extends Entity>> entityCounts;
-
- ForgeChunkInfo(Chunk chunk) {
- super(chunk.xPosition, chunk.zPosition);
-
- this.entityCounts = new CountMap.Simple<>(new HashMap<>());
- for(List<Entity> entityList : chunk.entityLists) {
- entityList.forEach(entity -> {
- this.entityCounts.increment(entity.getClass());
- });
- }
- }
-
- @Override
- public CountMap<Class<? extends Entity>> getEntityCounts() {
- return this.entityCounts;
- }
-
- @Override
- public String entityTypeName(Class<? extends Entity> type) {
- return (String)EntityList.classToStringMapping.get(type);
- }
- }
-
-
-}
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710ClientSparkPlugin.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710ClientSparkPlugin.java
deleted file mode 100644
index 446a0c9..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710ClientSparkPlugin.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge.plugin;
-
-import cpw.mods.fml.common.gameevent.TickEvent;
-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.tick.TickReporter;
-import me.lucko.spark.forge.*;
-import net.minecraft.client.Minecraft;
-import net.minecraft.command.ICommandSender;
-import net.minecraftforge.client.ClientCommandHandler;
-import net.minecraftforge.common.MinecraftForge;
-
-import java.util.stream.Stream;
-
-public class Forge1710ClientSparkPlugin extends Forge1710SparkPlugin {
-
- public static void register(Forge1710SparkMod mod) {
- Forge1710ClientSparkPlugin plugin = new Forge1710ClientSparkPlugin(mod, Minecraft.getMinecraft());
- plugin.enable();
-
- // register listeners
- MinecraftForge.EVENT_BUS.register(plugin);
-
- // register commands
- ClientCommandHandler.instance.registerCommand(plugin);
- }
-
- private final Minecraft minecraft;
- private final ThreadDumper gameThreadDumper;
-
- public Forge1710ClientSparkPlugin(Forge1710SparkMod mod, Minecraft minecraft) {
- super(mod);
- this.minecraft = minecraft;
- this.gameThreadDumper = new ThreadDumper.Specific(minecraft.mcThread);
- }
-
- @Override
- public ThreadDumper getDefaultThreadDumper() {
- return this.gameThreadDumper;
- }
-
- @Override
- public boolean hasPermission(ICommandSender sender, String permission) {
- return true;
- }
-
- @Override
- public Stream<Forge1710CommandSender> getCommandSenders() {
- return Stream.of(new Forge1710CommandSender(this.minecraft.thePlayer, this));
- }
-
- @Override
- public TickHook createTickHook() {
- return new Forge1710TickHook(TickEvent.Type.CLIENT);
- }
-
- @Override
- public TickReporter createTickReporter() {
- return new Forge1710TickReporter(TickEvent.Type.CLIENT);
- }
-
- @Override
- public WorldInfoProvider createWorldInfoProvider() {
- return new Forge1710WorldInfoProvider.Client(Minecraft.getMinecraft());
- }
-
- @Override
- public void executeSync(Runnable task) {
- this.minecraft.addScheduledTask(task);
- }
-
- @Override
- public PlatformInfo getPlatformInfo() {
- return new Forge1710PlatformInfo(PlatformInfo.Type.CLIENT);
- }
-
- @Override
- public String getCommandName() {
- return "sparkc";
- }
-
-}
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710ServerSparkPlugin.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710ServerSparkPlugin.java
deleted file mode 100644
index 03f55d7..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710ServerSparkPlugin.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge.plugin;
-
-import com.google.common.collect.Queues;
-import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.event.FMLServerStartingEvent;
-import cpw.mods.fml.common.eventhandler.SubscribeEvent;
-import cpw.mods.fml.common.gameevent.TickEvent;
-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.tick.TickReporter;
-import me.lucko.spark.forge.*;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.server.MinecraftServer;
-
-import java.util.List;
-import java.util.Queue;
-import java.util.stream.Stream;
-
-public class Forge1710ServerSparkPlugin extends Forge1710SparkPlugin {
- private final Queue<Runnable> scheduledServerTasks = Queues.newArrayDeque();
-
- private final ThreadDumper.GameThread gameThreadDumper;
-
- public static Forge1710ServerSparkPlugin register(Forge1710SparkMod mod, FMLServerStartingEvent event) {
- Forge1710ServerSparkPlugin plugin = new Forge1710ServerSparkPlugin(mod, event.getServer());
- plugin.enable();
-
- FMLCommonHandler.instance().bus().register(plugin);
-
- // register commands & permissions
- event.registerServerCommand(plugin);
-
- return plugin;
- }
-
- @Override
- public void disable() {
- super.disable();
- FMLCommonHandler.instance().bus().unregister(this);
- }
-
- @SubscribeEvent
- public void onServerTickEnd(TickEvent.ServerTickEvent event) {
- if(event.phase == TickEvent.Phase.START) {
- synchronized(scheduledServerTasks) {
- while (!scheduledServerTasks.isEmpty())
- {
- scheduledServerTasks.poll().run();
- }
- }
- }
- }
-
- private final MinecraftServer server;
-
- public Forge1710ServerSparkPlugin(Forge1710SparkMod mod, MinecraftServer server) {
- super(mod);
- this.server = server;
- this.gameThreadDumper = new ThreadDumper.GameThread();
- this.gameThreadDumper.setThread(Thread.currentThread());
- }
-
- @Override
- public ThreadDumper getDefaultThreadDumper() {
- return this.gameThreadDumper.get();
- }
-
- @Override
- public boolean hasPermission(ICommandSender sender, String permission) {
- if (sender instanceof EntityPlayerMP) {
- EntityPlayerMP player = (EntityPlayerMP)sender;
- if(isOp(player))
- return true;
- else {
- String serverOwner = MinecraftServer.getServer().getServerOwner();
- if(player.getGameProfile().getName() != null && serverOwner != null)
- return serverOwner.equals(player.getGameProfile().getName());
- else
- return false;
- }
- } else {
- return true;
- }
- }
-
- @Override
- public Stream<Forge1710CommandSender> getCommandSenders() {
- return Stream.concat(
- ((List<EntityPlayer>)this.server.getConfigurationManager().playerEntityList).stream(),
- Stream.of(this.server)
- ).map(sender -> new Forge1710CommandSender(sender, this));
- }
-
- @Override
- public TickHook createTickHook() {
- return new Forge1710TickHook(TickEvent.Type.SERVER);
- }
-
- @Override
- public TickReporter createTickReporter() {
- return new Forge1710TickReporter(TickEvent.Type.SERVER);
- }
-
- @Override
- public WorldInfoProvider createWorldInfoProvider() {
- return new Forge1710WorldInfoProvider.Server(FMLCommonHandler.instance().getMinecraftServerInstance());
- }
-
- @Override
- public void executeSync(Runnable task) {
- synchronized (scheduledServerTasks) {
- scheduledServerTasks.add(task);
- }
- }
-
- @Override
- public PlatformInfo getPlatformInfo() {
- return new Forge1710PlatformInfo(PlatformInfo.Type.SERVER);
- }
-
- @Override
- public String getCommandName() {
- return "spark";
- }
-}
diff --git a/spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710SparkPlugin.java b/spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710SparkPlugin.java
deleted file mode 100644
index 26e1752..0000000
--- a/spark-forge1710/src/main/java/me/lucko/spark/forge/plugin/Forge1710SparkPlugin.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * This file is part of spark.
- *
- * Copyright (c) lucko (Luck) <luck@lucko.me>
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-package me.lucko.spark.forge.plugin;
-
-import cpw.mods.fml.common.FMLCommonHandler;
-import me.lucko.spark.common.SparkPlatform;
-import me.lucko.spark.common.SparkPlugin;
-import me.lucko.spark.forge.Forge1710CommandSender;
-import me.lucko.spark.forge.Forge1710SparkMod;
-import net.minecraft.command.ICommand;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.nio.file.Path;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.logging.Level;
-
-public abstract class Forge1710SparkPlugin implements SparkPlugin, ICommand {
-
- private final Forge1710SparkMod mod;
- private final Logger logger;
- protected final ScheduledExecutorService scheduler;
- protected final SparkPlatform platform;
-
- protected Forge1710SparkPlugin(Forge1710SparkMod mod) {
- this.mod = mod;
- this.logger = LogManager.getLogger("spark");
- this.scheduler = Executors.newSingleThreadScheduledExecutor(r -> {
- Thread thread = Executors.defaultThreadFactory().newThread(r);
- thread.setName("spark-forge-async-worker");
- thread.setDaemon(true);
- return thread;
- });
- this.platform = new SparkPlatform(this);
- }
-
- public void enable() {
- this.platform.enable();
- }
-
- public void disable() {
- this.platform.disable();
- this.scheduler.shutdown();
- }
-
- public abstract boolean hasPermission(ICommandSender sender, String permission);
-
- @Override
- public String getVersion() {
- return this.mod.getVersion();
- }
-
- @Override
- public Path getPluginDirectory() {
- return this.mod.getConfigDirectory();
- }
-
- @Override
- public void executeAsync(Runnable task) {
- this.scheduler.execute(task);
- }
-
- @Override
- public void log(Level level, String msg) {
- if (level == Level.INFO) {
- this.logger.info(msg);
- } else if (level == Level.WARNING) {
- this.logger.warn(msg);
- } else if (level == Level.SEVERE) {
- this.logger.error(msg);
- } else {
- throw new IllegalArgumentException(level.getName());
- }
- }
-
- // implement ICommand
-
- @Override
- public String getCommandName() {
- return getCommandName();
- }
-
- @Override
- public String getCommandUsage(ICommandSender iCommandSender) {
- return "/" + getCommandName();
- }
-
- @Override
- public List<String> getCommandAliases() {
- return Collections.singletonList(getCommandName());
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) {
- this.platform.executeCommand(new Forge1710CommandSender(sender, this), args);
- }
-
- @Override
- public List<String> addTabCompletionOptions(ICommandSender sender, String[] args) {
- return this.platform.tabCompleteCommand(new Forge1710CommandSender(sender, this), args);
- }
-
- @Override
- public boolean canCommandSenderUseCommand(ICommandSender sender) {
- return this.platform.hasPermissionForAnyCommand(new Forge1710CommandSender(sender, this));
- }
-
- @Override
- public boolean isUsernameIndex(String[] strings, int i) {
- return false;
- }
-
- @Override
- public int compareTo(Object o) {
- return getCommandName().compareTo(((ICommand)o).getCommandName());
- }
-
- protected boolean isOp(EntityPlayer player) {
- return FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().canSendCommands(player.getGameProfile());
- }
-
-}
diff --git a/spark-forge1710/src/main/resources/mcmod.info b/spark-forge1710/src/main/resources/mcmod.info
deleted file mode 100644
index 1c2c241..0000000
--- a/spark-forge1710/src/main/resources/mcmod.info
+++ /dev/null
@@ -1,7 +0,0 @@
-[{
- "modid": "spark",
- "name": "spark",
- "description": "${pluginDescription}",
- "version": "${pluginVersion}",
- "authors": ["Luck"]
-}]