Moved State struct to state.go

This commit is contained in:
Bruce Marriner 2016-04-22 16:53:57 -05:00
parent d69fac5eae
commit bda7434f18
2 changed files with 14 additions and 14 deletions

View file

@ -17,6 +17,18 @@ import "errors"
// ErrNilState is returned when the state is nil.
var ErrNilState = errors.New("State not instantiated, please use discordgo.New() or assign Session.State.")
// A State contains the current known state.
// As discord sends this in a READY blob, it seems reasonable to simply
// use that struct as the data store.
type State struct {
sync.RWMutex
Ready
MaxMessageCount int
guildMap map[string]*Guild
channelMap map[string]*Channel
}
// NewState creates an empty state.
func NewState() *State {
return &State{
@ -105,7 +117,7 @@ func (s *State) GuildRemove(guild *Guild) error {
s.Lock()
defer s.Unlock()
delete(s.guildMap, guild.ID)
for i, g := range s.Guilds {
@ -286,7 +298,7 @@ func (s *State) ChannelRemove(channel *Channel) error {
}
}
}
delete(s.channelMap, channel.ID)
return nil

View file

@ -393,18 +393,6 @@ type UserGuildSettings struct {
ChannelOverrides []*UserGuildSettingsChannelOverride `json:"channel_overrides"`
}
// A State contains the current known state.
// As discord sends this in a READY blob, it seems reasonable to simply
// use that struct as the data store.
type State struct {
sync.RWMutex
Ready
MaxMessageCount int
guildMap map[string]*Guild
channelMap map[string]*Channel
}
// Constants for the different bit offsets of text channel permissions
const (
PermissionReadMessages = 1 << (iota + 10)