From d37e2290276956c05dbb829950ed510887a5597f Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Wed, 9 Apr 2003 17:49:55 +0000 Subject: [PATCH] Fixed non-relaying of QUITs. --- plugins/Relay.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/Relay.py b/plugins/Relay.py index d312cb59a..c13026dd3 100644 --- a/plugins/Relay.py +++ b/plugins/Relay.py @@ -43,6 +43,7 @@ Commands include: from baseplugin import * import re +import copy import ircdb import debug @@ -98,8 +99,15 @@ class Relay(callbacks.Privmsg): self.ircs = {} self.started = False self.channels = set() + self.ircstates = {} self.abbreviations = {} + def inFilter(self, irc, msg): + if not isinstance(irc, irclib.Irc): + irc = irc.getRealIrc() + self.ircstates[irc] = copy.copy(irc.state) + return msg + def startrelay(self, irc, msg, args): """ @@ -298,7 +306,7 @@ class Relay(callbacks.Privmsg): else: s = '%s/%s has quit.' % (msg.nick, network) for channel in self.channels: - if msg.nick in irc.state.channels[channel].users: + if msg.nick in self.ircstates.channels[channel].users: for otherIrc in self.ircs.itervalues(): if otherIrc != irc: otherIrc.queueMsg(ircmsgs.privmsg(channel, s))