gottdad/def.go

79 lines
1.8 KiB
Go
Raw Normal View History

2020-06-14 16:27:57 +02:00
package main
2020-06-14 16:45:07 +02:00
import (
"bytes"
2020-06-14 17:23:07 +02:00
"encoding/binary"
2020-06-14 16:45:07 +02:00
)
2020-06-14 16:27:57 +02:00
const (
AdminPacketAdminJoin uint8 = 0
AdminPacketAdminQuit
AdminPacketAdminUpdateFrequency
AdminPacketAdminPoll
AdminPacketAdminChat
AdminPacketAdminRCon
AdminPacketAdminGamescript
AdminPacketAdminPing
AdminPacketServerFull = 100
AdminPacketServerBanned
AdminPacketServerError
AdminPacketServerProtocol
AdminPacketServerWelcome
AdminPacketServerNewgame
AdminPacketServerShutdown
AdminPacketServerDate
AdminPacketServerClientJoin
AdminPacketServerClientInfo
AdminPacketServerClientUpdate
AdminPacketServerClientQuit
AdminPacketServerClientError
AdminPacketServerCompanyNew
AdminPacketServerCompanyInfo
AdminPacketServerCompanyUpdate
AdminPacketServerCompanyRemove
AdminPacketServerCompanyEconomy
AdminPacketServerCompanyStats
AdminPacketServerChat
AdminPacketServerRCon
AdminPacketServerConsole
AdminPacketServerCmdNames
AdminPacketServerCmdLogging
AdminPacketServerGamescript
AdminPacketServerRConEnd
AdminPacketServerPong
InvalidAdminPacket = 0xFF
)
2020-06-14 16:45:07 +02:00
type Packet struct {
PLength uint16
PType uint8
}
type PacketAdminJoin struct {
Packet
2020-06-14 17:12:58 +02:00
Password string
AppName string
AppVersion string
2020-06-14 16:45:07 +02:00
}
func (p *PacketAdminJoin) Bytes() []byte {
buf := new(bytes.Buffer)
2020-06-14 17:38:58 +02:00
p.PLength = uint16(len(p.Password) + len(p.AppName) + len(p.AppVersion) + 6)
2020-06-14 17:23:07 +02:00
2020-06-14 17:31:47 +02:00
binary.Write(buf, binary.LittleEndian, p.PLength)
2020-06-14 17:33:05 +02:00
logInfoDebug("len : %d", buf.Len())
2020-06-14 17:31:47 +02:00
binary.Write(buf, binary.LittleEndian, p.PType)
2020-06-14 17:33:05 +02:00
logInfoDebug("len : %d", buf.Len())
2020-06-14 17:23:07 +02:00
buf.WriteString(p.Password)
2020-06-14 17:34:19 +02:00
buf.WriteByte(0)
2020-06-14 17:33:05 +02:00
logInfoDebug("len : %d", buf.Len())
2020-06-14 17:23:07 +02:00
buf.WriteString(p.AppName)
2020-06-14 17:34:19 +02:00
buf.WriteByte(0)
2020-06-14 17:33:05 +02:00
logInfoDebug("len : %d", buf.Len())
2020-06-14 17:23:07 +02:00
buf.WriteString(p.AppVersion)
2020-06-14 17:34:19 +02:00
buf.WriteByte(0)
2020-06-14 17:33:05 +02:00
logInfoDebug("len : %d", buf.Len())
2020-06-14 17:12:58 +02:00
2020-06-14 16:45:07 +02:00
return buf.Bytes()
}