From 6bcfcb60ea86d082810a997aa07cba87054354da Mon Sep 17 00:00:00 2001 From: jesopo Date: Thu, 18 Oct 2018 21:07:08 +0100 Subject: [PATCH] Some networks allow you to remove user modes that don't exist e.g. removing +o from someone that doesn't have it. wtf. --- src/IRCChannel.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/IRCChannel.py b/src/IRCChannel.py index 7dd4dde7..ffe34fa9 100644 --- a/src/IRCChannel.py +++ b/src/IRCChannel.py @@ -66,10 +66,12 @@ class Channel(IRCObject.Object): if mode in self.server.prefix_modes: user = self.server.get_user(arg) if user: - self.modes[mode].discard(user) - self.user_modes[user].discard(mode) - if not self.user_modes[user]: - del self.user_modes[user] + if mode in self.modes: + self.modes[mode].discard(user) + if user in self.user_modes: + self.user_modes[user].discard(mode) + if not self.user_modes[user]: + del self.user_modes[user] else: self.modes[mode].discard(arg.lower()) if not len(self.modes[mode]):