소스 검색

Handle nil errors and default handler properly.

Chris Rhodes 9 년 전
부모
커밋
7858f999b1
1개의 변경된 파일12개의 추가작업 그리고 4개의 파일을 삭제
  1. 12 4
      wsapi.go

+ 12 - 4
wsapi.go

@@ -319,16 +319,24 @@ func (s *Session) event(messageType int, message []byte) {
 		var st *VoiceServerUpdate
 		if err = unmarshalEvent(e, &st); err == nil {
 			s.onVoiceServerUpdate(st)
-			s.OnVoiceServerUpdate(s, st)
+			if s.OnVoiceServerUpdate != nil {
+				s.OnVoiceServerUpdate(s, st)
+			}
+		}
+		if s.OnVoiceServerUpdate != nil {
+			return
 		}
-		return
 	case "VOICE_STATE_UPDATE":
 		var st *VoiceState
 		if err = unmarshalEvent(e, &st); err == nil {
 			s.onVoiceStateUpdate(st)
-			s.OnVoiceStateUpdate(s, st)
+			if s.OnVoiceStateUpdate != nil {
+				s.OnVoiceStateUpdate(s, st)
+			}
+		}
+		if s.OnVoiceStateUpdate != nil {
+			return
 		}
-		return
 	case "USER_UPDATE":
 		if s.OnUserUpdate != nil {
 			var st *User