Skip to content

Commit

Permalink
It works, but at what cost
Browse files Browse the repository at this point in the history
  • Loading branch information
Zaprit committed Apr 23, 2022
1 parent 51355d1 commit d3697d2
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 15 deletions.
2 changes: 1 addition & 1 deletion discord/ServerStatus.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ func RefreshServerStatus(s *discordgo.Session) {

embedFields = append(embedFields, &discordgo.MessageEmbedField{
Name: "Players",
Value: strconv.Itoa(len(resp.Players)) + "/" + maxPlayers,
Value: strconv.Itoa(resp.Players) + "/" + maxPlayers,
Inline: true,
})
if !server.HideMap {
Expand Down
73 changes: 60 additions & 13 deletions gamequery/gamequery.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ import (
)

type Query struct {
Name string `json:"name,omitempty"`
Map string `json:"map,omitempty"`
Password bool `json:"password,omitempty"`
Desc string `json:"desc,omitempty"`
MaxPlayers int `json:"maxplayers,omitempty"`
Players []GameDigPlayers `json:"players,omitempty"`
Bots []GameDigPlayers `json:"bots,omitempty"`
Connect string `json:"connect,omitempty"`
Ping int `json:"ping,omitempty"`
Error string `json:"error,omitempty"`
Name string `json:"name,omitempty"`
Map string `json:"map,omitempty"`
Password bool `json:"password,omitempty"`
Desc string `json:"desc,omitempty"`
MaxPlayers int `json:"maxplayers,omitempty"`
Players int `json:"players,omitempty"`
Bots int `json:"bots,omitempty"`
Connect string `json:"connect,omitempty"`
Ping int `json:"ping,omitempty"`
Error string `json:"error,omitempty"`
}

type GameDigPlayers struct {
Expand All @@ -34,15 +34,62 @@ func ServerQuery(query *config.Server) (Query, error) {
if err != nil {
return Query{}, err
}
var response Query
er2 := json.Unmarshal(out, &response)
var rawJsonData map[string]interface{}
er2 := json.Unmarshal(out, &rawJsonData)
if er2 != nil {
return Query{}, er2
}

if response.Error == "Failed all 1 attempts" {
if rawJsonData["error"] == "Failed all 1 attempts" {
return Query{}, ErrServerNotFound
}

var response Query

if rawJsonData["name"] != nil {
response.Name = rawJsonData["name"].(string)
}

if rawJsonData["map"] != nil {
response.Map = rawJsonData["map"].(string)
}

if rawJsonData["password"] == true {
response.Password = true
} else {
response.Password = false
}

if rawJsonData["desc"] != nil {
response.Desc = rawJsonData["desc"].(string)
}

if rawJsonData["maxplayers"] != nil {
response.MaxPlayers = int(rawJsonData["maxplayers"].(float64))
}

switch rawJsonData["players"].(type) {
case []interface{}:
response.Players = len(rawJsonData["players"].([]interface{}))
case int:
response.Players = int(rawJsonData["players"].(float64))
}

if rawJsonData["bots"] != nil {
response.Bots = len(rawJsonData["bots"].([]interface{}))
}

if rawJsonData["connect"] != nil {
response.Connect = rawJsonData["connect"].(string)
}

if rawJsonData["ping"] != nil {
response.Ping = int(rawJsonData["ping"].(float64))
}

if rawJsonData["error"] != nil {
response.Error = rawJsonData["error"].(string)
}

return response, nil
}
10 changes: 9 additions & 1 deletion make.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,20 @@
OSES=("windows" "darwin" "linux")
ARCHES=("386" "amd64" "arm64")

rm -rf build/
mkdir -p build

for os in ${OSES[@]}
do
for arch in ${ARCHES[@]}
do
echo "Building for $os/$arch..."
GOOS=$os GOARCH=$arch go build -o GoGSM-$os-$arch .
if [ "$os" == "windows" ]
then
GOOS=$os GOARCH=$arch go build -o build/GoGSM-$os-$arch.exe .
else
GOOS=$os GOARCH=$arch go build -o build/GoGSM-$os-$arch .
fi
echo "Done!"
echo
done
Expand Down

0 comments on commit d3697d2

Please sign in to comment.