diff options
Diffstat (limited to 'spark-neoforge/src')
5 files changed, 43 insertions, 88 deletions
diff --git a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/NeoForgeExtraMetadataProvider.java b/spark-neoforge/src/main/java/me/lucko/spark/neoforge/NeoForgeExtraMetadataProvider.java deleted file mode 100644 index e18b3d3..0000000 --- a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/NeoForgeExtraMetadataProvider.java +++ /dev/null @@ -1,73 +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.neoforge; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import me.lucko.spark.common.platform.MetadataProvider; -import net.minecraft.server.packs.repository.Pack; -import net.minecraft.server.packs.repository.PackRepository; -import net.minecraft.server.packs.repository.PackSource; - -import java.util.LinkedHashMap; -import java.util.Map; - -public class NeoForgeExtraMetadataProvider implements MetadataProvider { - - private final PackRepository resourcePackManager; - - public NeoForgeExtraMetadataProvider(PackRepository resourcePackManager) { - this.resourcePackManager = resourcePackManager; - } - - @Override - public Map<String, JsonElement> get() { - Map<String, JsonElement> metadata = new LinkedHashMap<>(); - metadata.put("datapacks", datapackMetadata()); - return metadata; - } - - private JsonElement datapackMetadata() { - JsonObject datapacks = new JsonObject(); - for (Pack profile : this.resourcePackManager.getSelectedPacks()) { - JsonObject obj = new JsonObject(); - obj.addProperty("name", profile.getTitle().getString()); - obj.addProperty("description", profile.getDescription().getString()); - obj.addProperty("source", resourcePackSource(profile.getPackSource())); - datapacks.add(profile.getId(), obj); - } - return datapacks; - } - - private static String resourcePackSource(PackSource source) { - if (source == PackSource.DEFAULT) { - return "none"; - } else if (source == PackSource.BUILT_IN) { - return "builtin"; - } else if (source == PackSource.WORLD) { - return "world"; - } else if (source == PackSource.SERVER) { - return "server"; - } else { - return "unknown"; - } - } -} diff --git a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/NeoForgeWorldInfoProvider.java b/spark-neoforge/src/main/java/me/lucko/spark/neoforge/NeoForgeWorldInfoProvider.java index 96a90c2..a234bc8 100644 --- a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/NeoForgeWorldInfoProvider.java +++ b/spark-neoforge/src/main/java/me/lucko/spark/neoforge/NeoForgeWorldInfoProvider.java @@ -28,6 +28,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.packs.repository.PackRepository; +import net.minecraft.server.packs.repository.PackSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.ChunkPos; @@ -39,11 +41,40 @@ import net.minecraft.world.level.entity.TransientEntitySectionManager; import net.neoforged.fml.ModList; import java.lang.reflect.Method; +import java.util.Collection; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; public abstract class NeoForgeWorldInfoProvider implements WorldInfoProvider { + protected abstract PackRepository getPackRepository(); + + @Override + public Collection<DataPackInfo> pollDataPacks() { + return getPackRepository().getSelectedPacks().stream() + .map(pack -> new DataPackInfo( + pack.getId(), + pack.getDescription().getString(), + resourcePackSource(pack.getPackSource()) + )) + .collect(Collectors.toList()); + } + + private static String resourcePackSource(PackSource source) { + if (source == PackSource.DEFAULT) { + return "none"; + } else if (source == PackSource.BUILT_IN) { + return "builtin"; + } else if (source == PackSource.WORLD) { + return "world"; + } else if (source == PackSource.SERVER) { + return "server"; + } else { + return "unknown"; + } + } + public static final class Server extends NeoForgeWorldInfoProvider { private final MinecraftServer server; @@ -114,6 +145,11 @@ public abstract class NeoForgeWorldInfoProvider implements WorldInfoProvider { return data; } + + @Override + protected PackRepository getPackRepository() { + return this.server.getPackRepository(); + } } public static final class Client extends NeoForgeWorldInfoProvider { @@ -190,6 +226,11 @@ public abstract class NeoForgeWorldInfoProvider implements WorldInfoProvider { return data; } + + @Override + protected PackRepository getPackRepository() { + return this.client.getResourcePackRepository(); + } } public static final class ForgeChunkInfo extends AbstractChunkInfo<EntityType<?>> { diff --git a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeClientSparkPlugin.java b/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeClientSparkPlugin.java index afc718d..b779af8 100644 --- a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeClientSparkPlugin.java +++ b/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeClientSparkPlugin.java @@ -26,14 +26,12 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; -import me.lucko.spark.common.platform.MetadataProvider; 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.neoforge.NeoForgeCommandSender; -import me.lucko.spark.neoforge.NeoForgeExtraMetadataProvider; import me.lucko.spark.neoforge.NeoForgePlatformInfo; import me.lucko.spark.neoforge.NeoForgeSparkMod; import me.lucko.spark.neoforge.NeoForgeTickHook; @@ -136,11 +134,6 @@ public class NeoForgeClientSparkPlugin extends NeoForgeSparkPlugin implements Co } @Override - public MetadataProvider createExtraMetadataProvider() { - return new NeoForgeExtraMetadataProvider(this.minecraft.getResourcePackRepository()); - } - - @Override public PlatformInfo getPlatformInfo() { return new NeoForgePlatformInfo(PlatformInfo.Type.CLIENT); } diff --git a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeServerSparkPlugin.java b/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeServerSparkPlugin.java index 28b6c26..5a573a0 100644 --- a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeServerSparkPlugin.java +++ b/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeServerSparkPlugin.java @@ -29,7 +29,6 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import me.lucko.spark.common.monitor.ping.PlayerPingProvider; -import me.lucko.spark.common.platform.MetadataProvider; import me.lucko.spark.common.platform.PlatformInfo; import me.lucko.spark.common.platform.serverconfig.ServerConfigProvider; import me.lucko.spark.common.platform.world.WorldInfoProvider; @@ -37,7 +36,6 @@ 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.neoforge.NeoForgeCommandSender; -import me.lucko.spark.neoforge.NeoForgeExtraMetadataProvider; import me.lucko.spark.neoforge.NeoForgePlatformInfo; import me.lucko.spark.neoforge.NeoForgePlayerPingProvider; import me.lucko.spark.neoforge.NeoForgeServerConfigProvider; @@ -244,11 +242,6 @@ public class NeoForgeServerSparkPlugin extends NeoForgeSparkPlugin implements Co } @Override - public MetadataProvider createExtraMetadataProvider() { - return new NeoForgeExtraMetadataProvider(this.server.getPackRepository()); - } - - @Override public WorldInfoProvider createWorldInfoProvider() { return new NeoForgeWorldInfoProvider.Server(this.server); } diff --git a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeSparkPlugin.java b/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeSparkPlugin.java index 43d77a1..256f90a 100644 --- a/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeSparkPlugin.java +++ b/spark-neoforge/src/main/java/me/lucko/spark/neoforge/plugin/NeoForgeSparkPlugin.java @@ -117,7 +117,8 @@ public abstract class NeoForgeSparkPlugin implements SparkPlugin { ModList.get().getMods(), IModInfo::getModId, mod -> mod.getVersion().toString(), - mod -> null // ? + mod -> null, // ? + IModInfo::getDescription ); } |