diff options
Diffstat (limited to 'spark-sponge7/src')
7 files changed, 0 insertions, 610 deletions
diff --git a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7ClassSourceLookup.java b/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7ClassSourceLookup.java deleted file mode 100644 index 9342f3d..0000000 --- a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7ClassSourceLookup.java +++ /dev/null @@ -1,43 +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.sponge; - -import me.lucko.spark.common.sampler.source.ClassSourceLookup; -import org.spongepowered.api.Game; - -import java.nio.file.Path; - -public class Sponge7ClassSourceLookup extends ClassSourceLookup.ByCodeSource { - private final Path modsDirectory; - - public Sponge7ClassSourceLookup(Game game) { - this.modsDirectory = game.getGameDirectory().resolve("mods").toAbsolutePath().normalize(); - } - - @Override - public String identifyFile(Path path) { - if (!path.startsWith(this.modsDirectory)) { - return null; - } - - return super.identifyFileName(this.modsDirectory.relativize(path).toString()); - } -} diff --git a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7CommandSender.java b/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7CommandSender.java deleted file mode 100644 index f19dfce..0000000 --- a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7CommandSender.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.sponge; - -import me.lucko.spark.common.command.sender.AbstractCommandSender; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import org.spongepowered.api.command.CommandSource; -import org.spongepowered.api.entity.living.player.Player; -import org.spongepowered.api.text.serializer.TextSerializers; - -import java.util.UUID; - -public class Sponge7CommandSender extends AbstractCommandSender<CommandSource> { - public Sponge7CommandSender(CommandSource source) { - super(source); - } - - @Override - public String getName() { - return super.delegate.getName(); - } - - @Override - public UUID getUniqueId() { - if (super.delegate instanceof Player) { - return ((Player) super.delegate).getUniqueId(); - } - return null; - } - - @Override - public void sendMessage(Component message) { - super.delegate.sendMessage(TextSerializers.JSON.deserialize(GsonComponentSerializer.gson().serialize(message))); - } - - @Override - public boolean hasPermission(String permission) { - return super.delegate.hasPermission(permission); - } -} diff --git a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7PlatformInfo.java b/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7PlatformInfo.java deleted file mode 100644 index 37463b1..0000000 --- a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7PlatformInfo.java +++ /dev/null @@ -1,58 +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.sponge; - -import me.lucko.spark.common.platform.PlatformInfo; -import org.spongepowered.api.Game; -import org.spongepowered.api.Platform; - -public class Sponge7PlatformInfo implements PlatformInfo { - private final Game game; - - public Sponge7PlatformInfo(Game game) { - this.game = game; - } - - @Override - public Type getType() { - return Type.SERVER; - } - - @Override - public String getName() { - return "Sponge"; - } - - @Override - public String getBrand() { - return this.game.getPlatform().getContainer(Platform.Component.IMPLEMENTATION).getName(); - } - - @Override - public String getVersion() { - return this.game.getPlatform().getContainer(Platform.Component.IMPLEMENTATION).getVersion().orElse("unknown"); - } - - @Override - public String getMinecraftVersion() { - return this.game.getPlatform().getMinecraftVersion().getName(); - } -} diff --git a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7PlayerPingProvider.java b/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7PlayerPingProvider.java deleted file mode 100644 index 12fff78..0000000 --- a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7PlayerPingProvider.java +++ /dev/null @@ -1,45 +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.sponge; - -import com.google.common.collect.ImmutableMap; -import me.lucko.spark.common.monitor.ping.PlayerPingProvider; -import org.spongepowered.api.Server; -import org.spongepowered.api.entity.living.player.Player; - -import java.util.Map; - -public class Sponge7PlayerPingProvider implements PlayerPingProvider { - private final Server server; - - public Sponge7PlayerPingProvider(Server server) { - this.server = server; - } - - @Override - public Map<String, Integer> poll() { - ImmutableMap.Builder<String, Integer> builder = ImmutableMap.builder(); - for (Player player : this.server.getOnlinePlayers()) { - builder.put(player.getName(), player.getConnection().getLatency()); - } - return builder.build(); - } -} diff --git a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java b/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java deleted file mode 100644 index 7cd73f4..0000000 --- a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7SparkPlugin.java +++ /dev/null @@ -1,232 +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.sponge; - -import com.google.inject.Inject; -import me.lucko.spark.api.Spark; -import me.lucko.spark.common.SparkPlatform; -import me.lucko.spark.common.SparkPlugin; -import me.lucko.spark.common.monitor.ping.PlayerPingProvider; -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.sampler.source.ClassSourceLookup; -import me.lucko.spark.common.tick.TickHook; -import org.slf4j.Logger; -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.Plugin; -import org.spongepowered.api.plugin.PluginContainer; -import org.spongepowered.api.scheduler.AsynchronousExecutor; -import org.spongepowered.api.scheduler.SpongeExecutorService; -import org.spongepowered.api.scheduler.SynchronousExecutor; -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.logging.Level; -import java.util.stream.Stream; - -@Plugin( - id = "spark", - name = "spark", - version = "@version@", - description = "@desc@", - authors = {"Luck"} -) -public class Sponge7SparkPlugin implements SparkPlugin { - - private final PluginContainer pluginContainer; - private final Logger logger; - private final Game game; - private final Path configDirectory; - private final SpongeExecutorService asyncExecutor; - private final SpongeExecutorService syncExecutor; - private final ThreadDumper.GameThread gameThreadDumper = new ThreadDumper.GameThread(); - - private SparkPlatform platform; - - @Inject - public Sponge7SparkPlugin(PluginContainer pluginContainer, Logger logger, Game game, @ConfigDir(sharedRoot = false) Path configDirectory, @AsynchronousExecutor SpongeExecutorService asyncExecutor, @SynchronousExecutor SpongeExecutorService syncExecutor) { - this.pluginContainer = pluginContainer; - this.logger = logger; - this.game = game; - this.configDirectory = configDirectory; - this.asyncExecutor = asyncExecutor; - this.syncExecutor = syncExecutor; - - this.syncExecutor.execute(() -> this.gameThreadDumper.setThread(Thread.currentThread())); - } - - @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 Sponge7SparkPlugin.class.getAnnotation(Plugin.class).version(); - } - - @Override - public Path getPluginDirectory() { - return this.configDirectory; - } - - @Override - public String getCommandName() { - return "spark"; - } - - @Override - public Stream<Sponge7CommandSender> getCommandSenders() { - if (this.game.isServerAvailable()) { - return Stream.concat( - this.game.getServer().getOnlinePlayers().stream(), - Stream.of(this.game.getServer().getConsole()) - ).map(Sponge7CommandSender::new); - } else { - return Stream.of(this.game.getServer().getConsole()).map(Sponge7CommandSender::new); - } - } - - @Override - public void executeAsync(Runnable task) { - this.asyncExecutor.execute(task); - } - - @Override - public void executeSync(Runnable task) { - this.syncExecutor.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()); - } - } - - @Override - public ThreadDumper getDefaultThreadDumper() { - return this.gameThreadDumper.get(); - } - - @Override - public TickHook createTickHook() { - return new Sponge7TickHook(this); - } - - @Override - public ClassSourceLookup createClassSourceLookup() { - return new Sponge7ClassSourceLookup(this.game); - } - - @Override - public PlayerPingProvider createPlayerPingProvider() { - if (this.game.isServerAvailable()) { - return new Sponge7PlayerPingProvider(this.game.getServer()); - } else { - return null; - } - } - - @Override - public WorldInfoProvider createWorldInfoProvider() { - if (this.game.isServerAvailable()) { - return new Sponge7WorldInfoProvider(this.game.getServer()); - } else { - return WorldInfoProvider.NO_OP; - } - } - - @Override - public PlatformInfo getPlatformInfo() { - return new Sponge7PlatformInfo(this.game); - } - - @Override - public void registerApi(Spark api) { - this.game.getServiceManager().setProvider(this, Spark.class, api); - } - - private static final class SparkCommand implements CommandCallable { - private final Sponge7SparkPlugin plugin; - - private SparkCommand(Sponge7SparkPlugin plugin) { - this.plugin = plugin; - } - - @Override - public CommandResult process(CommandSource source, String arguments) { - this.plugin.platform.executeCommand(new Sponge7CommandSender(source), arguments.split(" ")); - return CommandResult.empty(); - } - - @Override - public List<String> getSuggestions(CommandSource source, String arguments, @Nullable Location<World> targetPosition) { - return this.plugin.platform.tabCompleteCommand(new Sponge7CommandSender(source), arguments.split(" ")); - } - - @Override - public boolean testPermission(CommandSource source) { - return this.plugin.platform.hasPermissionForAnyCommand(new Sponge7CommandSender(source)); - } - - @Override - public Optional<Text> getShortDescription(CommandSource source) { - return Optional.of(Text.of("Main spark plugin command")); - } - - @Override - public Optional<Text> 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-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7TickHook.java b/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7TickHook.java deleted file mode 100644 index c2b1483..0000000 --- a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7TickHook.java +++ /dev/null @@ -1,50 +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.sponge; - -import me.lucko.spark.common.tick.AbstractTickHook; -import me.lucko.spark.common.tick.TickHook; -import org.spongepowered.api.scheduler.Task; - -public class Sponge7TickHook extends AbstractTickHook implements TickHook, Runnable { - private final Sponge7SparkPlugin plugin; - private Task task; - - public Sponge7TickHook(Sponge7SparkPlugin plugin) { - this.plugin = plugin; - } - - @Override - public void run() { - onTick(); - } - - @Override - public void start() { - this.task = Task.builder().intervalTicks(1).name("spark-ticker").execute(this).submit(this.plugin); - } - - @Override - public void close() { - this.task.cancel(); - } - -} diff --git a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7WorldInfoProvider.java b/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7WorldInfoProvider.java deleted file mode 100644 index fd26bfa..0000000 --- a/spark-sponge7/src/main/java/me/lucko/spark/sponge/Sponge7WorldInfoProvider.java +++ /dev/null @@ -1,123 +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.sponge; - -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; -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 org.spongepowered.api.Server; -import org.spongepowered.api.entity.Entity; -import org.spongepowered.api.entity.EntityType; -import org.spongepowered.api.world.Chunk; -import org.spongepowered.api.world.World; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; - -public class Sponge7WorldInfoProvider implements WorldInfoProvider { - private final Server server; - - public Sponge7WorldInfoProvider(Server server) { - this.server = server; - } - - @Override - public CountsResult pollCounts() { - int players = this.server.getOnlinePlayers().size(); - int entities = 0; - int tileEntities = 0; - int chunks = 0; - - for (World world : this.server.getWorlds()) { - entities += world.getEntities().size(); - tileEntities += world.getTileEntities().size(); - chunks += Iterables.size(world.getLoadedChunks()); - } - - return new CountsResult(players, entities, tileEntities, chunks); - } - - @Override - public ChunksResult<Sponge7ChunkInfo> pollChunks() { - ChunksResult<Sponge7ChunkInfo> data = new ChunksResult<>(); - - for (World world : this.server.getWorlds()) { - List<Chunk> chunks = Lists.newArrayList(world.getLoadedChunks()); - - List<Sponge7ChunkInfo> list = new ArrayList<>(chunks.size()); - for (Chunk chunk : chunks) { - list.add(new Sponge7ChunkInfo(chunk)); - } - - data.put(world.getName(), list); - } - - return data; - } - - @Override - public GameRulesResult pollGameRules() { - // No way to get defaults info on sponge API 7 :( - - // GameRulesResult data = new GameRulesResult(); - // for (World world : this.server.getWorlds()) { - // for (Map.Entry<String, String> entry : world.getGameRules().entrySet()) { - // data.put(entry.getKey(), world.getName(), entry.getValue()); - // } - // } - // return data; - - return null; - } - - @Override - public Collection<DataPackInfo> pollDataPacks() { - return null; - } - - static final class Sponge7ChunkInfo extends AbstractChunkInfo<EntityType> { - private final CountMap<EntityType> entityCounts; - - Sponge7ChunkInfo(Chunk chunk) { - super(chunk.getPosition().getX(), chunk.getPosition().getZ()); - - this.entityCounts = new CountMap.Simple<>(new HashMap<>()); - for (Entity entity : chunk.getEntities()) { - this.entityCounts.increment(entity.getType()); - } - } - - @Override - public CountMap<EntityType> getEntityCounts() { - return this.entityCounts; - } - - @Override - public String entityTypeName(EntityType type) { - return type.getName(); - } - - } -} |