diff --git a/core/irc.py b/core/irc.py index 33bc234..c073f33 100755 --- a/core/irc.py +++ b/core/irc.py @@ -185,7 +185,6 @@ class IRC(object): def set_nick(self, nick): self.cmd("NICK", [nick]) - self.nick = nick def join(self, channel): """ makes the bot join a channel """ diff --git a/plugins/misc.py b/plugins/misc.py index 29d748c..4fb082f 100755 --- a/plugins/misc.py +++ b/plugins/misc.py @@ -1,10 +1,13 @@ import socket import time +import re from util import hook socket.setdefaulttimeout(10) +nick_re = re.compile(":(.+?)!") + # Auto-join on Invite (Configurable, defaults to True) @hook.event('INVITE') @@ -50,6 +53,15 @@ def onkick(paraml, conn=None, chan=None): conn.join(paraml[0]) +@hook.event("NICK") +def onnick(paraml, conn=None, raw=None): + old_nick = nick_re.search(raw).group(1) + new_nick = str(paraml[0]) + if old_nick == conn.nick: + conn.nick = new_nick + print "Bot nick changed from '{}' to '{}'.".format(old_nick, new_nick) + + @hook.singlethread @hook.event('004') def keep_alive(paraml, conn=None):