-
Notifications
You must be signed in to change notification settings - Fork 59
/
server_plugin_message.go
45 lines (41 loc) · 1.19 KB
/
server_plugin_message.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
package v17
import (
"github.com/LilyPad/GoLilyPad/packet"
minecraft "github.com/LilyPad/GoLilyPad/packet/minecraft"
"io"
)
type CodecServerPluginMessage struct {
IdMap *minecraft.IdMap
}
func (this *CodecServerPluginMessage) Decode(reader io.Reader) (decode packet.Packet, err error) {
packetServerPluginMessage := new(minecraft.PacketServerPluginMessage)
packetServerPluginMessage.IdFrom(this.IdMap)
packetServerPluginMessage.Channel, err = packet.ReadString(reader)
if err != nil {
return
}
dataLength, err := packet.ReadUint16(reader)
if err != nil {
return
}
packetServerPluginMessage.Data = make([]byte, dataLength)
_, err = reader.Read(packetServerPluginMessage.Data)
if err != nil {
return
}
decode = packetServerPluginMessage
return
}
func (this *CodecServerPluginMessage) Encode(writer io.Writer, encode packet.Packet) (err error) {
packetServerPluginMessage := encode.(*minecraft.PacketServerPluginMessage)
err = packet.WriteString(writer, packetServerPluginMessage.Channel)
if err != nil {
return
}
err = packet.WriteUint16(writer, uint16(len(packetServerPluginMessage.Data)))
if err != nil {
return
}
_, err = writer.Write(packetServerPluginMessage.Data)
return
}