Skip to content

Commit 5e32e7e

Browse files
committed
A few more configs
1 parent d17449b commit 5e32e7e

File tree

4 files changed

+39
-5
lines changed

4 files changed

+39
-5
lines changed

lang/en_us.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
simple_op.permission_denied: 'Permission denied'
12
simple_op.help.op: 'Give me op'
23
simple_op.help.restart: 'Restart the server with {0} seconds delay'
34
simple_op.op.needs_player: 'You need to be a player'

lang/zh_cn.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
simple_op.permission_denied: '权限不足'
12
simple_op.help.op: '给我op'
23
simple_op.help.restart: '重启服务器,延迟{0}秒'
34
simple_op.op.needs_player: '你需要是一个玩家'

readme.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
1+
# SimpleOP
2+
13
`!!op` give you op
24

35
`!!restart` restart the server
46

57
Mostly used in creative servers
68

7-
Config file: `config/simple_op/config.json`, for restart delay (default 5 seconds)
9+
Config file: `config/simple_op/config.json`
10+
11+
```json5
12+
{
13+
"enabled": true, // The global switch of the plugin
14+
"restart_delay": 5, // `!!restart` restart countdown duration in second
15+
"permissions": { // command minimum required permissions
16+
"op": 1,
17+
"restart": 1
18+
}
19+
}
20+
```

simple_op/__init__.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,21 @@
44
from mcdreforged.api.all import *
55

66

7+
class PermissionConfig(Serializable):
8+
op: int = 1
9+
restart: int = 1
10+
11+
712
class Config(Serializable):
13+
enabled: bool = True
814
restart_delay: int = 5
15+
permissions: PermissionConfig = PermissionConfig()
916

1017

1118
PLUGIN_METADATA = ServerInterface.get_instance().as_plugin_server_interface().get_self_metadata()
1219
restart_lock = Lock()
1320
config = Config.get_default()
21+
config.enabled = False
1422

1523

1624
def 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')
2129
def 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

3547
def 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

Comments
 (0)