diff options
| author | 2018-08-30 11:12:48 +0100 | |
|---|---|---|
| committer | 2018-08-30 11:12:48 +0100 | |
| commit | 9b7c7035f9c6a5ee34bf3ca13167176b669a5a18 (patch) | |
| tree | b85793e017b9bbf7d938b077fe8463727d188042 /IRCChannel.py | |
| parent | Only show 2 biggest units in !seen (diff) | |
Refactor handling MODE in IRCLineHandler
Diffstat (limited to 'IRCChannel.py')
| -rw-r--r-- | IRCChannel.py | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/IRCChannel.py b/IRCChannel.py index 2cc46ca4..15d2e5df 100644 --- a/IRCChannel.py +++ b/IRCChannel.py @@ -42,32 +42,33 @@ class Channel(object): def has_user(self, user): return user in self.users - def add_mode(self, mode, args=None): + def add_mode(self, mode, arg=None): if not mode in self.modes: self.modes[mode] = set([]) - if args: + if arg: if mode in self.server.mode_prefixes.values(): - user = self.server.get_user(args) + user = self.server.get_user(arg) if user: self.modes[mode].add(user) else: - self.modes[mode].add(args.lower()) - self.bot.events.on("mode").on("channel").call( - channel=self, mode=mode, args=args, remove=False) - def remove_mode(self, mode, args=None): - if not args: + self.modes[mode].add(arg.lower()) + def remove_mode(self, mode, arg=None): + if not arg: del self.modes[mode] else: if mode in self.server.mode_prefixes.values(): - user = self.server.get_user(args) + user = self.server.get_user(arg) if user: self.modes[mode].discard(user) else: - self.modes[mode].discard(args.lower()) + self.modes[mode].discard(arg.lower()) if not len(self.modes[mode]): del self.modes[mode] - self.bot.events.on("mode").on("channel").call( - channel=self, mode=mode, args=args, remove=True) + def change_mode(self, remove, mode, arg=None): + if remove: + self.remove_mode(mode, arg) + else: + self.add_mode(mode, arg) def set_setting(self, setting, value): self.bot.database.channel_settings.set(self.id, setting, value) |
