This commit is contained in:
AkmalFairuz
2025-12-11 08:08:58 +07:00
parent 1d40d3c7e9
commit 151816f18d
8 changed files with 79 additions and 12 deletions

View File

@@ -52,7 +52,11 @@ func (pk *CommandOutput) Marshal(io protocol.IO) {
} else {
v, _ := pk.DataSet.Value()
io.String(&v)
pk.DataSet = protocol.Option(v)
if v != "" {
pk.DataSet = protocol.Option(v)
} else {
pk.DataSet = protocol.Optional[string]{}
}
}
}

View File

@@ -32,9 +32,13 @@ func (pk *Interact) Marshal(io protocol.IO) {
io.Varuint64(&pk.TargetEntityRuntimeID)
if proto.IsProtoGTE(io, proto.ID898) {
protocol.OptionalFunc(io, &pk.Position, io.Vec3)
} else {
} else if pk.ActionType == packet.InteractActionMouseOverEntity || pk.ActionType == packet.InteractActionLeaveVehicle {
pos, _ := pk.Position.Value()
io.Vec3(&pos)
pk.Position = protocol.Option(pos)
if pos != (mgl32.Vec3{}) {
pk.Position = protocol.Option(pos)
} else {
pk.Position = protocol.Optional[mgl32.Vec3]{}
}
}
}

View File

@@ -73,6 +73,7 @@ func (pk *Text) Marshal(io protocol.IO) {
categoryType = protocol.TextCategoryMessageWithParameters
}
io.TextCategory(&categoryType)
io.Uint8(&pk.TextType)
}
switch pk.TextType {
case TextTypeChat, TextTypeWhisper, TextTypeAnnouncement:
@@ -84,6 +85,11 @@ func (pk *Text) Marshal(io protocol.IO) {
io.String(&pk.Message)
protocol.FuncSlice(io, &pk.Parameters, io.String)
}
if proto.IsProtoGTE(io, proto.ID898) {
if len(pk.Message) == 0 {
io.InvalidValue(pk.Message, "message", "string cannot be empty")
}
}
io.String(&pk.XUID)
io.String(&pk.PlatformChatID)
if proto.IsProtoGTE(io, proto.ID685) {
@@ -92,7 +98,11 @@ func (pk *Text) Marshal(io protocol.IO) {
} else {
v, _ := pk.FilteredMessage.Value()
io.String(&v)
pk.FilteredMessage = protocol.Option(v)
if v != "" {
pk.FilteredMessage = protocol.Option(v)
} else {
pk.FilteredMessage = protocol.Optional[string]{}
}
}
}
}