From 6f8fafb04cb0abe3722304bc39b0bab6069dc240 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Fri, 13 Feb 2004 18:37:13 +0000 Subject: [PATCH] Added error handling for nick changes. --- src/Admin.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/Admin.py b/src/Admin.py index 186973770..389fd366c 100755 --- a/src/Admin.py +++ b/src/Admin.py @@ -61,6 +61,7 @@ class Admin(privmsgs.CapabilityCheckingPrivmsg): def __init__(self): privmsgs.CapabilityCheckingPrivmsg.__init__(self) self.joins = {} + self.pendingNickChanges = {} def do376(self, irc, msg): channels = list(conf.supybot.channels()) @@ -180,6 +181,24 @@ class Admin(privmsgs.CapabilityCheckingPrivmsg): else: irc.reply('I\'m not currently in any channels.') + def do484(self, irc, msg): + irc = self.pendingNickChanges.get(irc, None) + if irc is not None: + irc.error('My connection is restricted, I can\'t change nicks.') + else: + self.log.debug('Got 484 without Admin.nick being called.') + + def do433(self, irc, msg): + irc = self.pendingNickChanges.get(irc, None) + if irc is not None: + irc.error('Someone else is already using that nick.') + else: + self.log.debug('Got 433 without Admin.nick being called.') + + def doNick(self, irc, msg): + if msg.nick == irc.nick or msg.args[0] == irc.nick: + del self.pendingNickChanges[irc] + def nick(self, irc, msg, args): """ @@ -188,6 +207,7 @@ class Admin(privmsgs.CapabilityCheckingPrivmsg): if ircutils.isNick(nick): conf.supybot.nick.setValue(nick) irc.queueMsg(ircmsgs.nick(nick)) + self.pendingNickChanges[irc.getRealIrc()] = irc else: irc.error('That\'s not a valid nick.')