diff --git a/src/Client.ts b/src/Client.ts index 822ea65..770c1ec 100644 --- a/src/Client.ts +++ b/src/Client.ts @@ -87,7 +87,7 @@ export class Client { const capsToChange = (message.params[1].indexOf(' ') === -1) ? [message.params[1]] : message.params[1].split(' '); const capsEnabled: string[] = []; capsToChange.forEach(cap => { - if (cap in this.allCaps) { + if (this.allCaps.get(cap)) { this.enabledCaps.set(cap, ''); capsEnabled.push(cap); } @@ -126,14 +126,19 @@ export class Client { } else { this.user = thisIRCUser; + this.sendMessage(this.server.name, '900', numerics['900'](this.user.getMask(), this.user.nick), new Map()); + this.sendMessage(this.server.name, '903', numerics['903'](this.user.nick), new Map()); } } + this.user = thisIRCUser; + this.sendMessage(this.server.name, '900', numerics['900'](this.user.getMask(), this.user.nick), new Map()); + this.sendMessage(this.server.name, '903', numerics['903'](this.user.nick), new Map()); } } doRegistration(message: IRCMessage) { if (this.user === null) { - this.closeConnectionWithError('Authentication failed'); + this.closeConnectionWithError("You must use SASL to connect to this server"); return; } this.sendMessage(this.server.name, '001', numerics['001'](this.user.nick, this.server.name), message.tags); diff --git a/src/IRCUser.ts b/src/IRCUser.ts index 6b8b026..8c999a8 100644 --- a/src/IRCUser.ts +++ b/src/IRCUser.ts @@ -32,4 +32,8 @@ export class IRCUser { verifyCredentials(accessToken: string): boolean { return accessToken === this.accessToken; } + + getMask(): string { + return `${this.nick}!${this.ident}@${this.hostname}`; + } } \ No newline at end of file