44from mcdreforged .api .all import *
55
66
7+ class PermissionConfig (Serializable ):
8+ op : int = 1
9+ restart : int = 1
10+
11+
712class Config (Serializable ):
13+ enabled : bool = True
814 restart_delay : int = 5
15+ permissions : PermissionConfig = PermissionConfig ()
916
1017
1118PLUGIN_METADATA = ServerInterface .get_instance ().as_plugin_server_interface ().get_self_metadata ()
1219restart_lock = Lock ()
1320config = Config .get_default ()
21+ config .enabled = False
1422
1523
1624def tr (translation_key : str , * args , ** kwargs ) -> RTextMCDRTranslation :
@@ -19,6 +27,10 @@ def tr(translation_key: str, *args, **kwargs) -> RTextMCDRTranslation:
1927
2028@new_thread (PLUGIN_METADATA .name + ' - restart' )
2129def restart (source : CommandSource ):
30+ if source .get_permission_level () < config .permissions .restart :
31+ source .reply (tr ('permission_denied' ))
32+ return
33+
2234 acq = restart_lock .acquire (blocking = False )
2335 if not acq :
2436 source .reply (tr ('restart.spam' ))
@@ -33,6 +45,10 @@ def restart(source: CommandSource):
3345
3446
3547def give_op (source : CommandSource ):
48+ if source .get_permission_level () < config .permissions .op :
49+ source .reply (tr ('permission_denied' ))
50+ return
51+
3652 if isinstance (source , PlayerCommandSource ):
3753 source .get_server ().execute ('op {}' .format (source .player ))
3854 else :
@@ -49,7 +65,10 @@ def on_load(server: PluginServerInterface, prev):
4965
5066 global config
5167 config = server .load_config_simple (target_class = Config )
52- server .register_help_message ('!!op' , tr ('help.op' ))
53- server .register_help_message ('!!restart' , tr ('help.restart' , config .restart_delay ))
54- server .register_command (Literal ('!!op' ).runs (give_op ))
55- server .register_command (Literal ('!!restart' ).runs (restart ))
68+ if not config .enabled :
69+ server .logger .info ('{} is disabled by config' .format (PLUGIN_METADATA .name ))
70+
71+ server .register_help_message ('!!op' , tr ('help.op' ), permission = config .permissions .op )
72+ server .register_help_message ('!!restart' , tr ('help.restart' , config .restart_delay ), permission = config .permissions .restart )
73+ server .register_command (Literal ('!!op' ).runs (give_op ).precondition (Requirements .has_permission (config .permissions .op )))
74+ server .register_command (Literal ('!!restart' ).runs (restart ).precondition (Requirements .has_permission (config .permissions .restart )))
0 commit comments