diff --git a/discord.go b/discord.go index 194e57f..e340a9b 100644 --- a/discord.go +++ b/discord.go @@ -196,11 +196,13 @@ func (s *Session) AddHandler(handler interface{}) func() { // handle calls any handlers that match the event type and any handlers of // interface{}. func (s *Session) handle(event interface{}) { - s.initialize() - s.handlersMu.RLock() defer s.handlersMu.RUnlock() + if s.handlers == nil { + return + } + handlerParameters := []reflect.Value{reflect.ValueOf(s), reflect.ValueOf(event)} if handlers, ok := s.handlers[reflect.TypeOf(event)]; ok { diff --git a/wsapi.go b/wsapi.go index a2bbef5..7dc320a 100644 --- a/wsapi.go +++ b/wsapi.go @@ -88,6 +88,7 @@ func (s *Session) Open() (err error) { s.Unlock() + s.initialize() s.handle(&Connect{}) return