fix...
This commit is contained in:
@@ -21,6 +21,7 @@ var (
|
||||
// must be set to true if you're using Dragonfly.
|
||||
func All(dragonflyMapping bool) []minecraft.Protocol {
|
||||
return []minecraft.Protocol{
|
||||
New859(dragonflyMapping),
|
||||
New844(dragonflyMapping),
|
||||
New827(dragonflyMapping),
|
||||
New819(dragonflyMapping),
|
||||
|
||||
@@ -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]{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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]{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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]{}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,11 +28,13 @@ func (x *FullContainerName) Marshal(r protocol.IO) {
|
||||
r.Uint8(&x.ContainerID)
|
||||
if IsProtoGTE(r, ID729) {
|
||||
protocol.OptionalFunc(r, &x.DynamicContainerID, r.Uint32)
|
||||
} else if IsProtoGTE(r, 712) {
|
||||
} else if IsProtoGTE(r, ID712) {
|
||||
dynamicContainerID, _ := x.DynamicContainerID.Value()
|
||||
r.Uint32(&dynamicContainerID)
|
||||
if dynamicContainerID != 0 {
|
||||
x.DynamicContainerID = protocol.Option(dynamicContainerID)
|
||||
} else {
|
||||
x.DynamicContainerID = protocol.Optional[uint32]{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user