As the underlying A2S protocol seldoms ever have changes, this library will not have any changes either, rather than an indication of unmaintained.
An implementation of Source A2S Queries
Godoc is available here: https://godoc.org/github.com/rumblefrog/go-a2s
Note: Only supports Source engine and above, Goldsource is not supported
go get -u github.com/rumblefrog/go-a2spackage main
import (
"github.com/rumblefrog/go-a2s"
)
func main() {
client, err := a2s.NewClient("ServerIP:Port")
if err != nil {
// Handle error
}
defer client.Close()
info, err := client.QueryInfo() // QueryInfo, QueryPlayer, QueryRules
if err != nil {
// Handle error
}
// ...
}package main
import (
"github.com/rumblefrog/go-a2s"
)
func main() {
client, err := a2s.NewClient(
"ServerIP:Port",
a2s.SetMaxPacketSize(14000), // Some engine does not follow the protocol spec, and may require bigger packet buffer
a2s.TimeoutOption(time.Second * 5), // Setting timeout option. Default is 3 seconds
// ... Other options
)
if err != nil {
// Handle error
}
defer client.Close()
// ...
}- Dvander's Blaster for the packet logics
- xPaw's PHP Source Query for query specific logics