1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
| import os
import time
from platform import system
from mcdreforged.api.all import *
PLUGIN_METADATA = {
'id': 'tool_plugin',
'version': '1.0.0',
'name': 'Tool Plugin',
'description': {
'en_us': 'A tool plugin',
'zh_cn': '服务器工具(单文件)'
},
'author': 'xieyuen',
'dependencies': {
'mcdreforged': '>=2.0.0',
},
}
class Commands:
def __init__(self):
self.server = self.ServerControl()
class ServerControl:
def __init__(self): ...
def start(self, server: PluginServerInterface):
server.start()
server.logger.info('服务器已开启')
def stop(self, server: PluginServerInterface):
server.logger.info('服务器关闭')
server.stop()
# wait 20 secs
time.sleep(20)
if server.is_server_running:
server.logger.info('服务器似乎卡死了')
server.logger.info('3s 后将会杀死服务端')
time.sleep(3)
server.kill()
server.logger.info('服务端已停止')
def exit(self, server: PluginServerInterface):
if server.is_server_running(): self.stop()
server.exit()
def restart(self, server: PluginServerInterface):
self.stop()
self.start()
def run(self, command: str):
exec(command)
cmds = Commands()
def on_load(server: PluginServerInterface, prev_module):
server.logger.info('插件已加载')
server.logger.warning('此插件为单文件插件!')
server.logger.warning('此插件为单文件插件!')
server.logger.warning('此插件为单文件插件!')
server.logger.info('Powered by xieyuen')
server.register_help_message(
'!!tools',
'一个小工具'
)
server.register_command(
Literal('!!tools')
.requires(lambda src: src.has_permission(1))
.runs(
lambda src: src.reply(server.rtr('tool_plugin.help'))
).then(
Literal('server')
.requires(lambda src: src.has_permission(3))
.then(
Literal('start')
.runs(cmds.server.start)
.requires(lambda src: src.has_permission(4))
).then(
Literal('stop')
.runs(cmds.server.stop)
.requires(lambda src: src.has_permission(3))
).then(
Literal('exit')
.runs(cmds.server.exit)
.requires(lambda src: src.has_permission(4))
).then(
Literal('restart')
.runs(cmds.server.restart)
.requires(lambda src: src.has_permission(3))
)
)
) # reg command
|