File tree Expand file tree Collapse file tree 2 files changed +16
-6
lines changed Expand file tree Collapse file tree 2 files changed +16
-6
lines changed Original file line number Diff line number Diff line change @@ -402,6 +402,20 @@ def _unload_module(self, loaded_module: LoadedModule):
402402 [loaded_module .name ,
403403 ", " .join ([str (referrer ) for referrer in referrers ])])
404404
405+ def try_reload_module (self , bot : "IRCBot.Bot" , name : str ):
406+ loaded_module = self .modules .pop (name )
407+ loaded_module .module .on_pause ()
408+
409+ new_definition = self .find_module (name )
410+ try :
411+ self .load_module (bot , new_definition )
412+ except :
413+ loaded_module .module .on_resume ()
414+ self .modules [name ] = loaded_module
415+ raise
416+
417+ self ._unload_module (loaded_module )
418+
405419 def try_reload_modules (self , bot : "IRCBot.Bot" ,
406420 whitelist : typing .List [str ], blacklist : typing .List [str ]):
407421 loadable , nonloadable = self ._list_valid_modules (
Original file line number Diff line number Diff line change @@ -68,18 +68,14 @@ def unload(self, event):
6868 self ._catch (name , lambda : self .bot .modules .unload_module (name ))
6969 event ["stdout" ].write ("Unloaded '%s'" % name )
7070
71- def _reload (self , name ):
72- self .bot .modules .unload_module (name )
73- definition = self ._catch (name ,
74- lambda : self .bot .modules .find_module (name ))
75- self .bot .modules .load_module (self .bot , definition )
7671 @utils .hook ("received.command.reloadmodule" )
7772 @utils .kwarg ("help" , "Reload a module" )
7873 @utils .kwarg ("permission" , "reloadmodule" )
7974 @utils .spec ("!<name>wordlower" )
8075 def reload (self , event ):
8176 name = event ["spec" ][0 ]
82- self ._catch (name , lambda : self ._reload (name ))
77+ self ._catch (name ,
78+ lambda : self .bot .modules .try_reload_module (self .bot , name ))
8379 event ["stdout" ].write ("Reloaded '%s'" % name )
8480
8581 @utils .hook ("received.command.reloadallmodules" )
You can’t perform that action at this time.
0 commit comments