package mc // import ( // "sync" // "tg-mc/models" // "time" // ) // type Auth interface { // IsAuthed(u models.User, expireMode bool) bool // Auth(u models.User) // Reject(u models.User) // } // type Authcator struct { // UserMap *sync.Map // } // var authcator *Authcator // func GetAuthcator() Auth { // if authcator == nil { // authcator = &Authcator{ // UserMap: &sync.Map{}, // } // } // return authcator // } // func (a *Authcator) IsAuthed(u models.User, expireMode bool) bool { // return true // // if u.MCName != "VaalaCat" { // // return true // // } // if approveTime, ok := a.UserMap.Load(u.MCName); ok { // if !expireMode { // return true // } else if time.Since(approveTime.(time.Time)) < 30*time.Second { // return true // } else { // return false // } // } // return false // } // func (a *Authcator) Auth(u models.User) { // a.UserMap.Store(u.MCName, time.Now()) // } // func (a *Authcator) Reject(u models.User) { // a.UserMap.Delete(u.MCName) // }