-
Notifications
You must be signed in to change notification settings - Fork 59
/
server_login_start.go
59 lines (55 loc) · 1.3 KB
/
server_login_start.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package v1193
import (
"github.com/LilyPad/GoLilyPad/packet"
"github.com/LilyPad/GoLilyPad/packet/minecraft"
"github.com/satori/go.uuid"
"io"
)
type CodecServerLoginStart struct {
IdMap *minecraft.IdMap
}
func (this *CodecServerLoginStart) Decode(reader io.Reader) (decode packet.Packet, err error) {
packetServerLoginStart := new(minecraft.PacketServerLoginStart)
packetServerLoginStart.IdFrom(this.IdMap)
packetServerLoginStart.Name, err = packet.ReadString(reader)
if err != nil {
return
}
uuidPresent, err := packet.ReadBool(reader)
if err != nil {
return
}
if uuidPresent {
var uuid uuid.UUID
uuid, err = packet.ReadUUID(reader)
if err != nil {
return
}
packetServerLoginStart.UUID = &uuid
}
decode = packetServerLoginStart
return
}
func (this *CodecServerLoginStart) Encode(writer io.Writer, encode packet.Packet) (err error) {
packetServerLoginStart := encode.(*minecraft.PacketServerLoginStart)
err = packet.WriteString(writer, packetServerLoginStart.Name)
if err != nil {
return
}
if packetServerLoginStart.UUID == nil {
err = packet.WriteBool(writer, false)
if err != nil {
return
}
} else {
err = packet.WriteBool(writer, true)
if err != nil {
return
}
err = packet.WriteUUID(writer, *packetServerLoginStart.UUID)
if err != nil {
return
}
}
return
}