mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
Fix Advancements packet parsing: sendsTelemetryEvent added in 1.20, deduplicate requirements reading
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/5da0ec37-35e2-4aae-b165-66ddd82df985 Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
This commit is contained in:
parent
7b3e5ee492
commit
5705df43bd
1 changed files with 14 additions and 24 deletions
|
|
@ -3204,37 +3204,27 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
if (protocolVersion < MC_1_20_6_Version)
|
||||
{
|
||||
// Builder-based: criteria names list, then requirements
|
||||
// Builder-based (pre-1.20.6): criteria names list, then requirements
|
||||
int criteriaCount = dataTypes.ReadNextVarInt(packetData);
|
||||
for (int c = 0; c < criteriaCount; c++)
|
||||
dataTypes.ReadNextString(packetData); // criterion name only, no trigger data
|
||||
|
||||
int reqGroupCount = dataTypes.ReadNextVarInt(packetData);
|
||||
for (int g = 0; g < reqGroupCount; g++)
|
||||
{
|
||||
int groupSize = dataTypes.ReadNextVarInt(packetData);
|
||||
var group = new List<string>(groupSize);
|
||||
for (int s = 0; s < groupSize; s++)
|
||||
group.Add(dataTypes.ReadNextString(packetData));
|
||||
requirements.Add(group);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
// Requirements (all versions)
|
||||
int reqGroupCount = dataTypes.ReadNextVarInt(packetData);
|
||||
for (int g = 0; g < reqGroupCount; g++)
|
||||
{
|
||||
// AdvancementHolder-based (1.20.6+): requirements only, then sendsTelemetryEvent
|
||||
int reqGroupCount = dataTypes.ReadNextVarInt(packetData);
|
||||
for (int g = 0; g < reqGroupCount; g++)
|
||||
{
|
||||
int groupSize = dataTypes.ReadNextVarInt(packetData);
|
||||
var group = new List<string>(groupSize);
|
||||
for (int s = 0; s < groupSize; s++)
|
||||
group.Add(dataTypes.ReadNextString(packetData));
|
||||
requirements.Add(group);
|
||||
}
|
||||
|
||||
dataTypes.ReadNextBool(packetData); // sendsTelemetryEvent
|
||||
int groupSize = dataTypes.ReadNextVarInt(packetData);
|
||||
var group = new List<string>(groupSize);
|
||||
for (int s = 0; s < groupSize; s++)
|
||||
group.Add(dataTypes.ReadNextString(packetData));
|
||||
requirements.Add(group);
|
||||
}
|
||||
|
||||
// sendsTelemetryEvent (added in 1.20, present in all versions since)
|
||||
if (protocolVersion >= MC_1_20_Version)
|
||||
dataTypes.ReadNextBool(packetData);
|
||||
|
||||
addedDefinitions[id] = (title, description, type, isHidden, requirements);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue