aboutsummaryrefslogtreecommitdiff
path: root/src/IRCChannel.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-10-18 21:07:08 +0100
committerGravatar jesopo2018-10-18 21:07:08 +0100
commit6bcfcb60ea86d082810a997aa07cba87054354da (patch)
tree1d57812c95f7f8b7b7951ae19f9c4adf32875781 /src/IRCChannel.py
parentAdd missing `return` in src/IRCServer.py.get_user_setting (diff)
signature
Some networks allow you to remove user modes that don't exist e.g. removing +o
from someone that doesn't have it. wtf.
Diffstat (limited to 'src/IRCChannel.py')
-rw-r--r--src/IRCChannel.py10
1 files 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]):