@@ -144,23 +144,59 @@ async def mit_check(self, inter: disnake.ApplicationCommandInteraction, p_debug:
144144 source_year = source_role .name
145145 target_year = target_role .name
146146 target_ids = [member .id for member in target_members ]
147- if (
148- # presun bakalaru do 1MIT
149- "BIT" in source_year and target_year == "1MIT"
150- ):
151- await message .reply (
152- MessagesCZ .role_check_move (
153- people_count = len (target_members ), target_year = target_year , source_year = source_year
154- )
147+ if not ("BIT" in source_year and target_year == "1MIT" ):
148+ continue
149+ # presun bakalaru do 1MIT
150+ await message .reply (
151+ MessagesCZ .role_check_move (
152+ people_count = len (target_members ), target_year = target_year , source_year = source_year
155153 )
156- await features .send_masstag_messages (inter , "" , target_ids )
157- if p_debug :
158- await message .reply (MessagesCZ .role_check_debug_mode )
159- continue
154+ )
155+ await features .send_masstag_messages (inter , "" , target_ids )
156+ if p_debug :
157+ await message .reply (MessagesCZ .role_check_debug_mode )
158+ continue
160159
161- for member in target_members :
162- await member .add_roles (target_role )
163- await member .remove_roles (source_role )
160+ for member in target_members :
161+ await member .add_roles (target_role )
162+ await member .remove_roles (source_role )
163+
164+ await message .reply (MessagesCZ .role_check_end )
165+
166+ @cooldowns .default_cooldown
167+ @PermissionsCheck .is_bot_admin ()
168+ @PermissionsCheck .is_in_modroom ()
169+ @commands .slash_command (name = "vut_check" , description = MessagesCZ .vut_check_brief )
170+ async def vut_check (self , inter : disnake .ApplicationCommandInteraction , p_debug : bool = True ):
171+ await inter .send (MessagesCZ .role_check_start )
172+ message = await inter .original_response ()
173+ guild = inter .guild
174+
175+ unmatching_members = await features .get_members_with_unmatching_year (guild )
176+
177+ for source_role , target_data in unmatching_members .items ():
178+ for target_role , target_members in target_data .items ():
179+ if len (target_members ) == 0 :
180+ continue
181+ source_year = source_role .name
182+ target_year = target_role .name
183+ target_ids = [member .id for member in target_members ]
184+ if source_year != "VUT" and target_year != "VUT" :
185+ continue
186+ # presun z/do VUT role
187+ await message .reply (
188+ MessagesCZ .role_check_move (
189+ people_count = len (target_members ), target_year = target_year , source_year = source_year
190+ )
191+ )
192+ await features .send_masstag_messages (inter , "" , target_ids )
193+ if p_debug :
194+ await message .reply (MessagesCZ .role_check_debug_mode )
195+ continue
196+
197+ for member in target_members :
198+ await member .add_roles (target_role )
199+ await member .remove_roles (source_role )
164200
165201 await message .reply (MessagesCZ .role_check_end )
166202
0 commit comments