9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-19 15:09:15 +00:00

重构网络包ID查找逻辑

This commit is contained in:
jhqwqmc
2025-10-23 05:30:45 +08:00
parent fbf9744afb
commit e98ebe424d
3 changed files with 6 additions and 23 deletions

View File

@@ -187,6 +187,6 @@ public class PacketIds1_20_5 implements PacketIds {
@Override
public int serverboundCustomPayloadPacket() {
return PlayPacketIdHelper.byName("custom_payload", PacketFlow.SERVERBOUND);
return PlayPacketIdHelper.byName("minecraft:custom_payload", PacketFlow.SERVERBOUND);
}
}

View File

@@ -1,10 +1,8 @@
package net.momirealms.craftengine.bukkit.plugin.network.id;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import net.momirealms.craftengine.bukkit.nms.FastNMS;
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflections;
import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.plugin.network.ConnectionState;
import net.momirealms.craftengine.core.plugin.network.PacketFlow;
import net.momirealms.craftengine.core.util.VersionHelper;
@@ -19,25 +17,10 @@ public class PlayPacketIdHelper {
static {
try {
if (VersionHelper.isOrAbove1_21()) {
Object packetReport = CoreReflections.constructor$PacketReport.newInstance((Object) null);
JsonObject packetReportData = ((JsonElement) CoreReflections.method$PacketReport$serializePackets.invoke(packetReport)).getAsJsonObject();
JsonObject playData = packetReportData.get("play").getAsJsonObject();
for (Map.Entry<String, JsonElement> entry : playData.entrySet()) {
Map<String, Integer> ids = new HashMap<>();
byName.put(PacketFlow.valueOf(entry.getKey().toUpperCase(Locale.ROOT)), ids);
for (var entry2 : entry.getValue().getAsJsonObject().entrySet()) {
ids.put(entry2.getKey(), entry2.getValue().getAsJsonObject().get("protocol_id").getAsInt());
}
}
} else if (VersionHelper.isOrAbove1_20_5()) {
for (Map.Entry<String, Map<String, Integer>> entry : FastNMS.INSTANCE.gamePacketIdsByName().entrySet()) {
byName.put(PacketFlow.valueOf(entry.getKey().toUpperCase(Locale.ROOT)), entry.getValue());
}
if (VersionHelper.isOrAbove1_20_5()) {
byName.putAll(FastNMS.INSTANCE.gamePacketIdsByName().get(ConnectionState.PLAY));
} else {
for (Map.Entry<String, Map<Class<?>, Integer>> entry : FastNMS.INSTANCE.gamePacketIdsByClazz().entrySet()) {
byClazz.put(PacketFlow.valueOf(entry.getKey().toUpperCase(Locale.ROOT)), entry.getValue());
}
byClazz.putAll(FastNMS.INSTANCE.gamePacketIdsByClazz().get(ConnectionState.PLAY));
}
if (!byName.isEmpty()) {
for (Map.Entry<PacketFlow, Map<String, Integer>> entry : byName.entrySet()) {

View File

@@ -50,7 +50,7 @@ byte_buddy_version=1.17.8
ahocorasick_version=0.6.3
snake_yaml_version=2.5
anti_grief_version=1.0.4
nms_helper_version=1.0.119
nms_helper_version=1.0.120
evalex_version=3.5.0
reactive_streams_version=1.0.4
amazon_awssdk_version=2.34.5