XZZ/worker/mc.py
2020-07-15 19:43:33 +08:00

50 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from zzcore import StdAns
import re
from subprocess import getoutput,call
class Ans(StdAns):
AllowGroup = [959613860, 125733077, 204097403, 1140391080]
def GETMSG(self):
if len(self.parms) < 2:
return '不加参数是坏文明!'
cmd = self.parms[1]
AllowCmd = ['list','status','say']
if cmd in AllowCmd:
if cmd == 'status':
output = getoutput('spigot status')
p = re.compile(r'processes = ([0-9]*) \(')
prsnum = re.findall(p,output)[0]
p = re.compile(r' \((.*?)\)',re.S)
prsnames = re.findall(p,output)[0].split(', ')
p = re.compile(r'Total memory usage = (.*)$')
memory = re.findall(p,output)[0]
msg = '咱的MC服务器现在有 '
for prsname in prsnames:
msg = msg + prsname + ' '
msg = msg + '' + prsnum +'个进程,\n一共占用了' + memory +'内存呢。'
elif cmd == 'list':
output = getoutput('spigot command list')
p = re.compile(r'There are (.*?)[ of a max]', re.S)
online = re.findall(p,output)[0]
if online == '0':
msg = '咱看着没有人在线哎\n_(-ω-`_)⌒)_'
else:
msg = '' + online + '个小伙伴在线!'
p = re.compile(r'online: (.*?)[\n>]', re.S)
players = re.findall(p,output)[0].split(', ')
for player in players:
msg = msg + '\n' + player
elif cmd == 'say':
saywhat = self.raw_msg['message'][8:]
if not saywhat:
return '汝让咱say whato(≧口≦)o'
shellcmd = ['spigot','command','say',saywhat]
if call(shellcmd) == 0:
msg = '咱已经把消息传过去了。'
else:
msg = '٩(ŏ﹏ŏ、)۶竟然失败了,汝是不是让我发送奇怪的话过去!'
else:
msg = '汝是不是在mc后面添加了奇怪的参数咱可只知道 status list 和 say。'
return msg