@@ -205,28 +205,30 @@ async def handle_command_error(self, context, ex):
205205 self .dispatch ("command_error" , context , ex )
206206
207207 def load_addons (self , * addons : typing .Type ["Addon" ]):
208- for x in addons :
209- if x .name in self .addon_names :
210- raise AddonAlreadyLoaded (name = x .name )
211- self .addon_names .append (x .name )
212- loaded = x (self )
213- self .addons .append (loaded )
214- for c in loaded .commands :
215- c .register_addon (loaded )
216- self .add_command (c )
217- for e in loaded .listeners :
218- e .register_addon (loaded )
219- self .on_ (e .event , e .func )
208+ self .register_addons (* [addon (self ) for addon in addons ])
209+
210+ def register_addons (self , * addons : "Addon" ):
211+ for addon in addons :
212+ if addon .name in self .addon_names :
213+ raise AddonAlreadyLoaded (name = addon .name )
214+ self .addon_names .append (addon .name )
215+ self .addons .append (addon )
216+ for command in addon .commands :
217+ command .register_addon (addon )
218+ self .add_command (command )
219+ for event in addon .listeners :
220+ event .register_addon (addon )
221+ self .on_ (event .event , event .func )
220222 if hasattr (self , "interaction" ):
221- for t in loaded .interactions :
222- t .register_self_or_cls (loaded )
223- self .interaction .add_command (t )
224- for cc in loaded .callbacks :
225- cc .register_self_or_cls (loaded )
226- self .interaction .add_callback (cc )
227- for ac in loaded .autocompletes :
228- ac .register_self_or_cls (loaded )
229- self .interaction .add_autocomplete (ac )
223+ for interaction in addon .interactions :
224+ interaction .register_self_or_cls (addon )
225+ self .interaction .add_command (interaction )
226+ for callback in addon .callbacks :
227+ callback .register_self_or_cls (addon )
228+ self .interaction .add_callback (callback )
229+ for autocomplete in addon .autocompletes :
230+ autocomplete .register_self_or_cls (addon )
231+ self .interaction .add_autocomplete (autocomplete )
230232
231233 def unload_addons (self , * addons : typing .Union [str , typing .Type ["Addon" ]]):
232234 for x in addons :
0 commit comments