Added GameType (#435)

* Added GameType

* Delete useless function
This commit is contained in:
jD91mZM2 2017-10-07 19:54:04 +02:00 committed by Chris Rhodes
parent 7b6a91ac04
commit 9da2c9e76a
2 changed files with 13 additions and 39 deletions

View file

@ -12,9 +12,7 @@
package discordgo package discordgo
import ( import (
"encoding/json"
"net/http" "net/http"
"strconv"
"sync" "sync"
"time" "time"
@ -315,43 +313,19 @@ type Presence struct {
Since *int `json:"since"` Since *int `json:"since"`
} }
// A game type
type GameType int
const (
GameTypeGame GameType = iota
GameTypeStreaming
)
// A Game struct holds the name of the "playing .." game for a user // A Game struct holds the name of the "playing .." game for a user
type Game struct { type Game struct {
Name string `json:"name"` Name string `json:"name"`
Type int `json:"type"` Type GameType `json:"type"`
URL string `json:"url,omitempty"` URL string `json:"url,omitempty"`
}
// UnmarshalJSON unmarshals json to Game struct
func (g *Game) UnmarshalJSON(bytes []byte) error {
temp := &struct {
Name json.Number `json:"name"`
Type json.RawMessage `json:"type"`
URL string `json:"url"`
}{}
err := json.Unmarshal(bytes, temp)
if err != nil {
return err
}
g.URL = temp.URL
g.Name = temp.Name.String()
if temp.Type != nil {
err = json.Unmarshal(temp.Type, &g.Type)
if err == nil {
return nil
}
s := ""
err = json.Unmarshal(temp.Type, &s)
if err == nil {
g.Type, err = strconv.Atoi(s)
}
return err
}
return nil
} }
// A Member stores user information for Guild members. // A Member stores user information for Guild members.

View file

@ -285,9 +285,9 @@ func (s *Session) UpdateStreamingStatus(idle int, game string, url string) (err
} }
if game != "" { if game != "" {
gameType := 0 gameType := GameTypeGame
if url != "" { if url != "" {
gameType = 1 gameType = GameTypeStreaming
} }
usd.Game = &Game{ usd.Game = &Game{
Name: game, Name: game,