squelch-client
Version:
An IRC client for Node.js
49 lines (43 loc) • 1.34 kB
JavaScript
// Generated by CoffeeScript 1.10.0
(function() {
var Promise, getReplyCode, getSender;
getSender = require('../../util').getSender;
getReplyCode = require('../../replies').getReplyCode;
Promise = require('bluebird');
module.exports = function() {
return function(client) {
client.nick = function(desiredNick) {
if (desiredNick == null) {
return this._.nick;
}
return this.raw("NICK " + desiredNick);
};
return client._.internalEmitter.on('raw', function(reply) {
var me, newNick, oldNick;
if (reply.command === 'NICK') {
oldNick = getSender(reply);
newNick = reply.params[0];
me = oldNick === client.nick();
if (me) {
client._.nick = newNick;
}
return client.emit('nick', {
oldNick: oldNick,
newNick: newNick,
me: me
});
} else if (reply.command === getReplyCode('ERR_NICKNAMEINUSE')) {
if (client.isConnected()) {
return;
}
if (client.opt.autoNickChange) {
client._.numRetries++;
return client.nick(client.opt.nick + client._.numRetries);
} else {
return client.disconnect();
}
}
});
};
};
}).call(this);