q3rcon/internal/packet/request.go
onyx-and-iris 35ffa55fb9 -loglevel now of string type
update Logging section in README.

upd CHANGELOG
2025-04-05 22:46:58 +01:00

37 lines
671 B
Go

package packet
import (
"bytes"
"fmt"
log "github.com/sirupsen/logrus"
)
const bufSz = 512
type Request struct {
magic []byte
password string
buf *bytes.Buffer
}
func NewRequest(password string) Request {
return Request{
magic: []byte{'\xff', '\xff', '\xff', '\xff'},
password: password,
buf: bytes.NewBuffer(make([]byte, bufSz)),
}
}
func (r Request) Header() []byte {
return append(r.magic, []byte("rcon")...)
}
func (r Request) Encode(cmd string) []byte {
r.buf.Reset()
r.buf.Write(r.Header())
r.buf.WriteString(fmt.Sprintf(" %s %s", r.password, cmd))
log.Tracef("Encoded request: %s", r.buf.String())
return r.buf.Bytes()
}