Initial commit
This commit is contained in:
61
net/packets/bedrock/text.go
Normal file
61
net/packets/bedrock/text.go
Normal file
@@ -0,0 +1,61 @@
|
||||
|
||||
package bedrock
|
||||
|
||||
import (
|
||||
"github.com/cubexteam/Frodding/net/info"
|
||||
"github.com/cubexteam/Frodding/net/packets"
|
||||
)
|
||||
|
||||
const (
|
||||
TextTypeRaw = 0
|
||||
TextTypeChat = 1
|
||||
TextTypeTranslation = 2
|
||||
TextTypePopup = 3
|
||||
TextTypeTip = 4
|
||||
TextTypeSystem = 5
|
||||
TextTypeWhisper = 6
|
||||
TextTypeAnnouncement = 7
|
||||
)
|
||||
|
||||
type TextPacket struct {
|
||||
*packets.Packet
|
||||
TextType byte
|
||||
Source string
|
||||
Message string
|
||||
XUID string
|
||||
}
|
||||
|
||||
func NewTextPacket(textType byte, source, message string) *TextPacket {
|
||||
return &TextPacket{
|
||||
Packet: packets.NewPacket(info.IDText),
|
||||
TextType: textType,
|
||||
Source: source,
|
||||
Message: message,
|
||||
}
|
||||
}
|
||||
|
||||
func (pk *TextPacket) Encode() {
|
||||
pk.PutByte(pk.TextType)
|
||||
switch pk.TextType {
|
||||
case TextTypeChat, TextTypeWhisper, TextTypeAnnouncement:
|
||||
pk.PutString(pk.Source)
|
||||
pk.PutString(pk.Message)
|
||||
case TextTypeRaw, TextTypeTip, TextTypeSystem, TextTypePopup:
|
||||
pk.PutString(pk.Message)
|
||||
case TextTypeTranslation:
|
||||
pk.PutString(pk.Message)
|
||||
pk.PutVarInt(0)
|
||||
}
|
||||
pk.PutString(pk.XUID)
|
||||
}
|
||||
|
||||
func (pk *TextPacket) Decode() {
|
||||
pk.TextType = pk.GetByte()
|
||||
switch pk.TextType {
|
||||
case TextTypeChat, TextTypeWhisper, TextTypeAnnouncement:
|
||||
pk.Source = pk.GetString()
|
||||
pk.Message = pk.GetString()
|
||||
default:
|
||||
pk.Message = pk.GetString()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user