package game import ( petname "github.com/dustinkirkland/golang-petname" ) var lastSessionId int = 0 var sessionStorage []Session = []Session{} var nameToSession map[string]*Session = make(map[string]*Session) type Session struct { id int Name string Users []User } func NewSession() Session { sessionName := petname.Generate(3, "-") s := Session{ id: lastSessionId, Name: sessionName, Users: []User{}, } sessionStorage = append(sessionStorage, s) nameToSession[sessionName] = &s lastSessionId++ return s } func GetSession(name string) *Session { return nameToSession[name] } func (s *Session) AddUser(user User) { s.Users = append(s.Users, user) }