From a5c7c22d54d330a5e7855bad13ab3839aba6919c Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Sat, 24 Sep 2022 15:15:06 +0300 Subject: [PATCH] add ERR_ERRONEUSNICKNAME handler --- src/irc.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/irc.ts b/src/irc.ts index 560fb9b..2e4cda0 100644 --- a/src/irc.ts +++ b/src/irc.ts @@ -248,7 +248,28 @@ export class IRCConnectionWrapper } break; } - case '433': // ERR_NICKNAMEINUSE + case '432': { + // ERR_ERRONEUSNICKNAME + // No backing away from this, we don't know what is wrong exactly. + if (!this.authenticated) { + this.emit('error', { + error: new Error('Invalid nickname'), + fatal: true, + }); + this.connection?.destroy(); + return; + } + + const resetNick = line.arguments[0]; + this.emit('nick', { + oldNick: this.options.nick, + newNick: resetNick, + }); + this.options.nick = resetNick; + break; + } + case '433': { + // ERR_NICKNAMEINUSE const newNick = this.options.nick + '_'; this.write('NICK %s', newNick); @@ -259,6 +280,7 @@ export class IRCConnectionWrapper this.options.nick = newNick; break; + } case '902': // ERR_NICKLOCKED case '904': // ERR_SASLFAIL case '905': // ERR_SASLTOOLONG