From c8fe351dd3468a4a4078024a20148468fe3bee8d Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 29 Jul 2022 02:38:53 -0700 Subject: [PATCH] Extract packets --- .../java/dev/_00a/valence_extractor/Main.java | 3 +- .../valence_extractor/extractors/Packets.java | 48 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 extractor/src/main/java/dev/_00a/valence_extractor/extractors/Packets.java diff --git a/extractor/src/main/java/dev/_00a/valence_extractor/Main.java b/extractor/src/main/java/dev/_00a/valence_extractor/Main.java index 01a9fc6..b4049cc 100644 --- a/extractor/src/main/java/dev/_00a/valence_extractor/Main.java +++ b/extractor/src/main/java/dev/_00a/valence_extractor/Main.java @@ -5,6 +5,7 @@ import com.google.gson.JsonElement; import dev._00a.valence_extractor.extractors.Blocks; import dev._00a.valence_extractor.extractors.Entities; import dev._00a.valence_extractor.extractors.EntityData; +import dev._00a.valence_extractor.extractors.Packets; import net.fabricmc.api.ModInitializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,7 +40,7 @@ public class Main implements ModInitializer { public void onInitialize() { LOGGER.info("Starting extractors..."); - var extractors = new Extractor[]{new Blocks(), new Entities(), new EntityData(),}; + var extractors = new Extractor[]{new Blocks(), new Entities(), new EntityData(), new Packets()}; Path outputDirectory; try { diff --git a/extractor/src/main/java/dev/_00a/valence_extractor/extractors/Packets.java b/extractor/src/main/java/dev/_00a/valence_extractor/extractors/Packets.java new file mode 100644 index 0000000..fcfeda6 --- /dev/null +++ b/extractor/src/main/java/dev/_00a/valence_extractor/extractors/Packets.java @@ -0,0 +1,48 @@ +package dev._00a.valence_extractor.extractors; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev._00a.valence_extractor.Main; +import net.minecraft.network.NetworkSide; +import net.minecraft.network.NetworkState; + +import java.util.Locale; +import java.util.TreeSet; + +public class Packets implements Main.Extractor { + @Override + public String fileName() { + return "packets.json"; + } + + @Override + public JsonElement extract() throws Exception { + var packetsJson = new JsonObject(); + + for (var side : NetworkSide.values()) { + var sideJson = new JsonObject(); + + for (var state : NetworkState.values()) { + var stateJson = new JsonArray(); + + var map = state.getPacketIdToPacketMap(side); + + for (var id : new TreeSet<>(map.keySet())) { + var packetJson = new JsonObject(); + + packetJson.addProperty("name", map.get(id.intValue()).getSimpleName()); + packetJson.addProperty("id", id); + + stateJson.add(packetJson); + } + + sideJson.add(state.name().toLowerCase(Locale.ROOT), stateJson); + } + + packetsJson.add(side.name().toLowerCase(Locale.ROOT), sideJson); + } + + return packetsJson; + } +}