77from mcdreforged .api .all import *
88
99import hooks .config as cfg
10- import hooks .schedule_task as schedule_task
10+ import hooks .mount as mount
11+ import hooks .schedule_tasks as schedule_tasks
1112import hooks .tasks as tasks
1213import hooks .utils as utils
1314from hooks .utils import process_arg_server
1415
1516scripts_folder : str = ''
1617
1718
18- def stop_all_schedule_daemon_threads ():
19- if len (cfg .temp_config .schedule_daemon_threads ) == 0 :
20- return
21-
22- for thr in cfg .temp_config .schedule_daemon_threads :
23- thr .break_thread ()
24- cfg .temp_config .schedule_daemon_threads .remove (thr )
25-
26-
27- def trigger_hooks (hook : tasks .Hooks , server : PluginServerInterface , objects_dict : dict [str , Any ] = None ):
19+ def trigger_hooks (hook : mount .Hooks , server : PluginServerInterface , objects_dict : dict [str , Any ] = None ):
2820 if not cfg .config .automatically :
2921 return
3022
@@ -38,7 +30,7 @@ def trigger_hooks(hook: tasks.Hooks, server: PluginServerInterface, objects_dict
3830
3931
4032@new_thread ('hooks - trigger' )
41- def _trigger_hooks (hook : tasks .Hooks , server : PluginServerInterface , objects_dict : dict [str , Any ] = None ):
33+ def _trigger_hooks (hook : mount .Hooks , server : PluginServerInterface , objects_dict : dict [str , Any ] = None ):
4234 # 初始化最终变量字典
4335 finally_var_dict = dict ()
4436
@@ -78,89 +70,6 @@ def _trigger_hooks(hook: tasks.Hooks, server: PluginServerInterface, objects_dic
7870 e )
7971
8072
81- def mount_task (hook : str , task : str , src : CommandSource , server : PluginServerInterface ):
82- h = cfg .temp_config .hooks .get (hook )
83-
84- if h is None :
85- src .reply (RTextMCDRTranslation ('hooks.mount.hook_not_exist' , hook ))
86- return
87-
88- if task in h :
89- src .reply (RTextMCDRTranslation ('hooks.mount.task_already_exist' , task , hook ))
90- return
91-
92- h .append (task )
93- server .logger .info (f'Successfully mounted task { task } ' )
94- src .reply (RTextMCDRTranslation ('hooks.mount.success' , task , hook ))
95-
96-
97- def unmount_task (hook : str , task : str , src : CommandSource , server : PluginServerInterface ):
98- h = cfg .temp_config .hooks .get (hook )
99-
100- if h is None :
101- src .reply (RTextMCDRTranslation ('hooks.mount.hook_not_exist' , hook ))
102- return
103-
104- if task not in h :
105- src .reply (RTextMCDRTranslation ('hooks.mount.task_not_exist' , task ))
106- return
107-
108- h .remove (task )
109- server .logger .info (f'Successfully unmounted task { task } ' )
110- src .reply (RTextMCDRTranslation ('hooks.mount.unmount' , hook , task ))
111-
112-
113- def create_task (task_type : str , command : str , name : str , src : CommandSource , server : PluginServerInterface ,
114- is_schedule = False , exec_interval = 0 , created_by = None ):
115- if name in cfg .temp_config .task :
116- src .reply (RTextMCDRTranslation ('hooks.create.already_exist' ))
117- return
118-
119- if name is None or len (name ) == 0 :
120- return
121-
122- try :
123- tsk_type = tasks .TaskType (task_type )
124- except ValueError :
125- src .reply (RTextMCDRTranslation ('hooks.create.task_type_wrong' , task_type ))
126- return
127-
128- if created_by is None :
129- created_by = str (src )
130-
131- if not is_schedule :
132- cfg .temp_config .task [name ] = tasks .Task (name = name , task_type = tsk_type , command = command , created_by = created_by )
133- else :
134- var1 = schedule_task .ScheduleTask (name = name , task_type = tsk_type , command = command , created_by = created_by ,
135- server_inst = server , exec_interval = exec_interval )
136- cfg .temp_config .task [name ] = var1
137- var1 .start ()
138-
139- server .logger .info (f'Successfully created task { name } ' )
140- src .reply (RTextMCDRTranslation ('hooks.create.success' , name ))
141-
142-
143- def delete_task (name : str , src : CommandSource , server : PluginServerInterface ):
144- if name not in cfg .temp_config .task .keys ():
145- src .reply (RTextMCDRTranslation ('hooks.mount.task_not_exist' , name ))
146- return
147-
148- for hook in cfg .temp_config .hooks .keys ():
149- for tasks_in_hook in cfg .temp_config .hooks .get (hook ):
150- if tasks_in_hook == name :
151- unmount_task (hook , name , src , server )
152-
153- var1 = cfg .temp_config .task .get (name )
154- if isinstance (var1 , schedule_task .ScheduleTask ):
155- var1 .break_thread ()
156- cfg .temp_config .schedule_daemon_threads .remove (var1 )
157-
158- cfg .temp_config .task .pop (name )
159-
160- server .logger .info (f'Successfully deleted task { name } ' )
161- src .reply (RTextMCDRTranslation ('hooks.delete.success' , name ))
162-
163-
16473@new_thread ('hooks - list' )
16574def list_task (src : CommandSource ):
16675 rtext_list = RTextList ()
@@ -183,7 +92,7 @@ def list_task(src: CommandSource):
18392def list_mount (src : CommandSource ):
18493 list_hooks : list = list ()
18594
186- for hk in dict (tasks .Hooks .__members__ ).keys ():
95+ for hk in dict (mount .Hooks .__members__ ).keys ():
18796 list_hooks .append (str (cfg .temp_config .hooks .get (str (hk ))))
18897
18998 src .reply (RTextMCDRTranslation ('hooks.list.mount' , * list_hooks ))
@@ -203,7 +112,7 @@ def list_scripts(src: CommandSource):
203112
204113
205114def reload_config (src : CommandSource , server : PluginServerInterface ):
206- stop_all_schedule_daemon_threads ()
115+ schedule_tasks . stop_all_schedule_daemon_threads ()
207116
208117 cfg .temp_config = cfg .TempConfig ()
209118 cfg .config = server .load_config_simple (target_class = cfg .Configuration )
@@ -225,12 +134,12 @@ def man_run_task(task: str, env_str: str, src: CommandSource, server: PluginServ
225134 return
226135
227136 try :
228- cfg .temp_config .task .get (task ).execute_task (server , tasks .Hooks .undefined .value , var_dict = env_dict ,
137+ cfg .temp_config .task .get (task ).execute_task (server , mount .Hooks .undefined .value , var_dict = env_dict ,
229138 obj_dict = env_dict )
230139 src .reply (RTextMCDRTranslation ('hooks.man_run.success' , task ))
231140 except Exception as e :
232141 server .logger .exception (
233- f'Unexpected exception when executing task { task } , hook { tasks .Hooks .undefined .value } , '
142+ f'Unexpected exception when executing task { task } , hook { mount .Hooks .undefined .value } , '
234143 f'task_type { cfg .temp_config .task .get (task ).task_type } , command { cfg .temp_config .task .get (task ).command } ' ,
235144 e )
236145
@@ -263,20 +172,20 @@ def _parse_and_apply_scripts(script: str, server: PluginServerInterface):
263172 with open (cmd_file_path , 'r' ) as command_file :
264173 command_file_content = command_file .read ()
265174 # 创建task
266- create_task (task .get ('task_type' ), command_file_content , task .get ('name' ),
267- server .get_plugin_command_source (),
268- server , created_by = script )
175+ tasks . create_task (task .get ('task_type' ), command_file_content , task .get ('name' ),
176+ server .get_plugin_command_source (),
177+ server , created_by = script )
269178 else :
270179 # 创建task
271- create_task (task .get ('task_type' ), task .get ('command' ), task .get ('name' ),
272- server .get_plugin_command_source (),
273- server , created_by = script )
180+ tasks . create_task (task .get ('task_type' ), task .get ('command' ), task .get ('name' ),
181+ server .get_plugin_command_source (),
182+ server , created_by = script )
274183
275184 if task .get ('hooks' ) is None :
276185 continue
277186 for hook in task .get ('hooks' ):
278187 # 挂载
279- mount_task (hook , task .get ('name' ), server .get_plugin_command_source (), server )
188+ mount . mount_task (hook , task .get ('name' ), server .get_plugin_command_source (), server )
280189
281190 if content .get ('schedule_tasks' ) is not None :
282191 for schedule in content .get ('schedule_tasks' ):
@@ -302,22 +211,22 @@ def _parse_and_apply_scripts(script: str, server: PluginServerInterface):
302211 with open (cmd_file_path , 'r' ) as command_file :
303212 command_file_content = command_file .read ()
304213 # 创建task
305- create_task (schedule .get ('task_type' ), command_file_content , schedule .get ('name' ),
306- server .get_plugin_command_source (),
307- server , created_by = script , is_schedule = True ,
308- exec_interval = schedule .get ('exec_interval' ))
214+ tasks . create_task (schedule .get ('task_type' ), command_file_content , schedule .get ('name' ),
215+ server .get_plugin_command_source (),
216+ server , created_by = script , is_schedule = True ,
217+ exec_interval = schedule .get ('exec_interval' ))
309218 else :
310219 # 创建task
311- create_task (schedule .get ('task_type' ), schedule .get ('command' ), schedule .get ('name' ),
312- server .get_plugin_command_source (),
313- server , created_by = script , is_schedule = True ,
314- exec_interval = schedule .get ('exec_interval' ))
220+ tasks . create_task (schedule .get ('task_type' ), schedule .get ('command' ), schedule .get ('name' ),
221+ server .get_plugin_command_source (),
222+ server , created_by = script , is_schedule = True ,
223+ exec_interval = schedule .get ('exec_interval' ))
315224
316225 if schedule .get ('hooks' ) is None :
317226 continue
318227 for hook in schedule .get ('hooks' ):
319228 # 挂载
320- mount_task (hook , schedule .get ('name' ), server .get_plugin_command_source (), server )
229+ mount . mount_task (hook , schedule .get ('name' ), server .get_plugin_command_source (), server )
321230 except Exception as e :
322231 server .logger .exception (f'Unexpected exception when parse or apply scripts { os .path .basename (script )} ! Please '
323232 f'check your scripts.' , e )
@@ -380,7 +289,8 @@ def on_load(server: PluginServerInterface, old_module):
380289 .then (
381290 GreedyText ('command' )
382291 .requires (lambda src : src .has_permission (3 ))
383- .runs (lambda src , ctx : create_task (ctx ['task_type' ], ctx ['command' ], ctx ['name' ], src , server ))
292+ .runs (lambda src , ctx : tasks .create_task (ctx ['task_type' ], ctx ['command' ], ctx ['name' ], src ,
293+ server ))
384294 )
385295 )
386296 )
@@ -396,9 +306,9 @@ def on_load(server: PluginServerInterface, old_module):
396306 .then (
397307 GreedyText ('command' )
398308 .requires (lambda src : src .has_permission (3 ))
399- .runs (lambda src , ctx : create_task (ctx ['task_type' ], ctx ['command' ], ctx ['name' ], src ,
400- server , is_schedule = True ,
401- exec_interval = ctx ['exec_interval' ]))
309+ .runs (lambda src , ctx : tasks . create_task (ctx ['task_type' ], ctx ['command' ], ctx ['name' ], src ,
310+ server , is_schedule = True ,
311+ exec_interval = ctx ['exec_interval' ]))
402312 )
403313 )
404314 )
@@ -411,7 +321,7 @@ def on_load(server: PluginServerInterface, old_module):
411321 .then (
412322 Text ('hook' )
413323 .requires (lambda src : src .has_permission (3 ))
414- .runs (lambda src , ctx : mount_task (ctx ['hook' ], ctx ['task' ], src , server ))
324+ .runs (lambda src , ctx : mount . mount_task (ctx ['hook' ], ctx ['task' ], src , server ))
415325 )
416326 )
417327 )
@@ -422,7 +332,7 @@ def on_load(server: PluginServerInterface, old_module):
422332 .then (
423333 Text ('hook' )
424334 .requires (lambda src : src .has_permission (3 ))
425- .runs (lambda src , ctx : unmount_task (ctx ['hook' ], ctx ['task' ], src , server ))
335+ .runs (lambda src , ctx : mount . unmount_task (ctx ['hook' ], ctx ['task' ], src , server ))
426336 )
427337 )
428338 )
@@ -431,7 +341,7 @@ def on_load(server: PluginServerInterface, old_module):
431341 .then (
432342 Text ('task' )
433343 .requires (lambda src : src .has_permission (3 ))
434- .runs (lambda src , ctx : delete_task (ctx ['task' ], src , server ))
344+ .runs (lambda src , ctx : tasks . delete_task (ctx ['task' ], src , server ))
435345 )
436346 )
437347 .then (
@@ -470,55 +380,55 @@ def on_load(server: PluginServerInterface, old_module):
470380 )
471381 )
472382
473- trigger_hooks (tasks .Hooks .on_plugin_loaded , server ,
383+ trigger_hooks (mount .Hooks .on_plugin_loaded , server ,
474384 {'server' : process_arg_server (server ), 'old_module' : old_module })
475385
476386
477387def on_unload (server : PluginServerInterface ):
478- stop_all_schedule_daemon_threads ()
388+ schedule_tasks . stop_all_schedule_daemon_threads ()
479389
480- trigger_hooks (tasks .Hooks .on_plugin_unloaded , server , {'server' : process_arg_server (server )})
390+ trigger_hooks (mount .Hooks .on_plugin_unloaded , server , {'server' : process_arg_server (server )})
481391
482392 server .save_config_simple (cfg .config )
483393
484394
485395def on_info (server : PluginServerInterface , info : Info ):
486- trigger_hooks (tasks .Hooks .on_info , server , {'server' : process_arg_server (server ), 'info' : info })
396+ trigger_hooks (mount .Hooks .on_info , server , {'server' : process_arg_server (server ), 'info' : info })
487397
488398
489399def on_user_info (server : PluginServerInterface , info : Info ):
490- trigger_hooks (tasks .Hooks .on_user_info , server , {'server' : process_arg_server (server ), 'info' : info })
400+ trigger_hooks (mount .Hooks .on_user_info , server , {'server' : process_arg_server (server ), 'info' : info })
491401
492402
493403def on_player_joined (server : PluginServerInterface , player : str , info : Info ):
494- trigger_hooks (tasks .Hooks .on_player_joined , server ,
404+ trigger_hooks (mount .Hooks .on_player_joined , server ,
495405 {'server' : process_arg_server (server ), 'info' : info , 'player' : player })
496406
497407
498408def on_player_left (server : PluginServerInterface , player : str ):
499- trigger_hooks (tasks .Hooks .on_player_left , server , {'server' : process_arg_server (server ), 'player' : player })
409+ trigger_hooks (mount .Hooks .on_player_left , server , {'server' : process_arg_server (server ), 'player' : player })
500410
501411
502412def on_server_start (server : PluginServerInterface ):
503- trigger_hooks (tasks .Hooks .on_server_starting , server , {'server' : process_arg_server (server )})
413+ trigger_hooks (mount .Hooks .on_server_starting , server , {'server' : process_arg_server (server )})
504414
505415
506416def on_server_startup (server : PluginServerInterface ):
507- trigger_hooks (tasks .Hooks .on_server_started , server , {'server' : process_arg_server (server )})
417+ trigger_hooks (mount .Hooks .on_server_started , server , {'server' : process_arg_server (server )})
508418
509419
510420def on_server_stop (server : PluginServerInterface , return_code : int ):
511421 if return_code != 0 :
512- trigger_hooks (tasks .Hooks .on_server_crashed , server ,
422+ trigger_hooks (mount .Hooks .on_server_crashed , server ,
513423 {'server' : process_arg_server (server ), 'return_code' : return_code })
514424 else :
515- trigger_hooks (tasks .Hooks .on_server_stopped , server ,
425+ trigger_hooks (mount .Hooks .on_server_stopped , server ,
516426 {'server' : process_arg_server (server ), 'return_code' : return_code })
517427
518428
519429def on_mcdr_start (server : PluginServerInterface ):
520- trigger_hooks (tasks .Hooks .on_mcdr_started , server , {'server' : process_arg_server (server )})
430+ trigger_hooks (mount .Hooks .on_mcdr_started , server , {'server' : process_arg_server (server )})
521431
522432
523433def on_mcdr_stop (server : PluginServerInterface ):
524- trigger_hooks (tasks .Hooks .on_mcdr_stopped , server , {'server' : process_arg_server (server )})
434+ trigger_hooks (mount .Hooks .on_mcdr_stopped , server , {'server' : process_arg_server (server )})
0 commit comments