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 {
return func(nick string) string {
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
}

View File

@ -11,6 +11,10 @@ import (
"github.com/khlieng/dispatch/storage"
)
var excludedErrors = []string{
irc.ErrNicknameInUse,
}
type ircHandler struct {
client *irc.Client
session *Session
@ -53,7 +57,7 @@ func (i *ircHandler) run() {
}
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))
}
@ -322,6 +326,15 @@ func isChannel(s string) bool {
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 {
errMsg := strings.TrimSuffix(msg.LastParam(), ".")
if len(msg.Params) > 2 {