From 2ce19ee877e9bace821825b6e2abb69e32dabcb4 Mon Sep 17 00:00:00 2001 From: adator <85586985+adator85@users.noreply.github.com> Date: Sun, 1 Sep 2024 17:29:33 +0200 Subject: [PATCH] mod_command update --- mods/mod_clone.py | 67 --------------------------------------------- mods/mod_command.py | 34 +++++++++++++++++++++-- 2 files changed, 31 insertions(+), 70 deletions(-) diff --git a/mods/mod_clone.py b/mods/mod_clone.py index d146d4d..d7bb0fe 100644 --- a/mods/mod_clone.py +++ b/mods/mod_clone.py @@ -302,70 +302,3 @@ class Clone(): self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :/msg {dnickname} clone join [all | nickname] #channel') self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :/msg {dnickname} clone say [clone_nickname] #channel [message]') self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :/msg {dnickname} clone list') - - # case 'clone_connect': - # # clone_connect 25 - # # clone connect 25 - # try: - # number_of_clones = int(cmd[1]) - # for i in range(number_of_clones): - # nickname, username = self.generate_names() - # self.Base.create_thread( - # self.thread_create_clones, - # (nickname, username, [], 6697, True) - # ) - - # self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :{str(number_of_clones)} clones joined the network') - - # except Exception as err: - # self.Logs.error(f'{err}') - # self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :/msg {dnickname} clone_connect [number of clone you want to connect]') - # self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :Exemple /msg {dnickname} clone_kill 6') - - # case 'clone_kill': - # try: - # clone_name = str(cmd[1]) - # clone_to_kill: list[str] = [] - - # if clone_name.lower() == 'all': - # for clone in self.Clone.UID_CLONE_DB: - # self.Irc.send2socket(f':{dnickname} PRIVMSG {clone.nickname} :KILL') - # clone_to_kill.append(clone.nickname) - # clone.alive = False - - # for clone_nickname in clone_to_kill: - # self.Clone.delete(clone_nickname) - - # del clone_to_kill - - # else: - # if self.Clone.exists(clone_name): - # self.Irc.send2socket(f':{dnickname} PRIVMSG {clone_name} :KILL') - # self.Clone.kill(clone_name) - # self.Clone.delete(clone_name) - - # except Exception as err: - # self.Logs.error(f'{err}') - # self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :/msg {dnickname} clone_kill all') - # self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :/msg {dnickname} clone_kill [clone_name]') - - # case 'clone_join': - # try: - # # clone_join nickname #channel - # clone_name = str(cmd[1]) - # clone_channel_to_join = cmd[2] - - # if clone_name.lower() == 'all': - # self.Base.create_thread(self.thread_join_channels, (clone_channel_to_join, 2)) - # else: - # self.Base.create_thread(self.thread_join_channels, (clone_channel_to_join, 2, clone_name)) - - # except Exception as err: - # self.Logs.error(f'{err}') - # self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :/msg {dnickname} clone_join all #channel') - # self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :/msg {dnickname} clone_join clone_nickname #channel') - - # case 'clone_list': - - # for clone_name in self.Clone.UID_CLONE_DB: - # self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :>> {clone_name.nickname} | {clone_name.username}') diff --git a/mods/mod_command.py b/mods/mod_command.py index 7baee47..3ca0972 100644 --- a/mods/mod_command.py +++ b/mods/mod_command.py @@ -35,7 +35,7 @@ class Command(): # Create module commands (Mandatory) self.commands_level = { 1: ['join', 'part'], - 2: ['owner', 'deowner', 'op', 'deop', 'halfop', 'dehalfop', 'voice', 'devoice', 'deopall', 'devoiceall', 'voiceall', 'ban', 'unban','kick', 'kickban', 'umode'] + 2: ['owner', 'deowner', 'op', 'deop', 'halfop', 'dehalfop', 'voice', 'devoice', 'opall', 'deopall', 'devoiceall', 'voiceall', 'ban', 'unban','kick', 'kickban', 'umode'] } # Init the module @@ -188,9 +188,37 @@ class Command(): case 'voiceall': chan_info = self.Channel.get_Channel(fromchannel) - for uid in chan_info.uids: - self.Irc.send2socket(f":{service_id} MODE {fromchannel} +v {self.User.get_nickname(self.Base.clean_uid(uid))}") + set_mode = 'v' + mode:str = '' + users:str = '' + uids_split = [chan_info.uids[i:i + 6] for i in range(0, len(chan_info.uids), 6)] + self.Irc.send2socket(f":{service_id} MODE {fromchannel} +{set_mode} {dnickname}") + for uid in uids_split: + for i in range(0, len(uid)): + mode += set_mode + users += f'{self.User.get_nickname(self.Base.clean_uid(uid[i]))} ' + if i == len(uid) - 1: + self.Irc.send2socket(f":{service_id} MODE {fromchannel} +{mode} {users}") + mode = '' + users = '' + + case 'opall': + chan_info = self.Channel.get_Channel(fromchannel) + set_mode = 'o' + mode:str = '' + users:str = '' + uids_split = [chan_info.uids[i:i + 6] for i in range(0, len(chan_info.uids), 6)] + + self.Irc.send2socket(f":{service_id} MODE {fromchannel} +{set_mode} {dnickname}") + for uid in uids_split: + for i in range(0, len(uid)): + mode += set_mode + users += f'{self.User.get_nickname(self.Base.clean_uid(uid[i]))} ' + if i == len(uid) - 1: + self.Irc.send2socket(f":{service_id} MODE {fromchannel} +{mode} {users}") + mode = '' + users = '' case 'op': # /mode #channel +o user