Dont forward irc errors that are handled elsewhere

This commit is contained in:
Ken-Håvard Lieng 2017-05-29 00:42:00 +02:00
parent aa59e71745
commit 0689c74101
2 changed files with 15 additions and 2 deletions

View File

@ -13,7 +13,7 @@ import (
func createNickInUseHandler(i *irc.Client, session *Session) func(string) string { func createNickInUseHandler(i *irc.Client, session *Session) func(string) string {
return func(nick string) string { return func(nick string) string {
newNick := nick + "_" newNick := nick + "_"
session.print(i.Host, "Nickname", nick, "is already in use, using", newNick, "instead") session.printError("Nickname", nick, "is already in use, using", newNick, "instead")
return newNick return newNick
} }

View File

@ -11,6 +11,10 @@ import (
"github.com/khlieng/dispatch/storage" "github.com/khlieng/dispatch/storage"
) )
var excludedErrors = []string{
irc.ErrNicknameInUse,
}
type ircHandler struct { type ircHandler struct {
client *irc.Client client *irc.Client
session *Session session *Session
@ -53,7 +57,7 @@ func (i *ircHandler) run() {
} }
func (i *ircHandler) dispatchMessage(msg *irc.Message) { func (i *ircHandler) dispatchMessage(msg *irc.Message) {
if msg.Command[0] == '4' { if msg.Command[0] == '4' && !isExcludedError(msg.Command) {
i.session.printError(formatIRCError(msg)) i.session.printError(formatIRCError(msg))
} }
@ -322,6 +326,15 @@ func isChannel(s string) bool {
return strings.IndexAny(s, "&#+!") == 0 return strings.IndexAny(s, "&#+!") == 0
} }
func isExcludedError(cmd string) bool {
for _, err := range excludedErrors {
if cmd == err {
return true
}
}
return false
}
func formatIRCError(msg *irc.Message) string { func formatIRCError(msg *irc.Message) string {
errMsg := strings.TrimSuffix(msg.LastParam(), ".") errMsg := strings.TrimSuffix(msg.LastParam(), ".")
if len(msg.Params) > 2 { if len(msg.Params) > 2 {