Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/modules/server/__init__.py

49 lines
2 KiB
Python
Raw Normal View History

2021-07-27 17:42:47 +00:00
import asyncio
2021-11-21 13:20:07 +00:00
from core.component import on_command, on_option
2021-07-27 17:42:47 +00:00
from core.dirty_check import check
from core.elements import MessageSession
2021-11-21 13:20:07 +00:00
from database import BotDBUtil
2021-07-27 17:42:47 +00:00
from .server import server
2021-11-21 13:20:07 +00:00
on_option('server_disable_revoke', desc='关闭server命令的自动撤回') # 临时解决方案后续会改动归属到toggle命令下
2021-10-24 10:55:45 +00:00
s = on_command('server', alias='s', developers=['_LittleC_', 'OasisAkari'])
2021-07-27 17:42:47 +00:00
2021-10-24 10:55:45 +00:00
@s.handle(['<ServerIP>:<Port> {获取Minecraft Java/基岩版服务器motd。}',
'<ServerIP>:<Port> [-r] {获取Minecraft Java/基岩版服务器motd。原始信息}',
'<ServerIP>:<Port> [-p] {获取Minecraft Java/基岩版服务器motd。包括玩家信息}'])
2021-07-27 17:42:47 +00:00
async def main(msg: MessageSession):
2021-11-21 13:20:07 +00:00
enabled_addon = BotDBUtil.Module(msg).check_target_enabled_module('server_disable_revoke')
2021-07-27 17:42:47 +00:00
gather_list = []
sm = ['j', 'b']
for x in sm:
2021-11-21 13:20:07 +00:00
gather_list.append(asyncio.ensure_future(s(
msg, f'{msg.parsed_msg["<ServerIP>:<Port>"]}', msg.parsed_msg['-r'], msg.parsed_msg['-p'], x, enabled_addon)))
2021-07-27 17:42:47 +00:00
g = await asyncio.gather(*gather_list)
if g == ['', '']:
2021-12-31 15:08:23 +00:00
msg_ = '发生错误没有找到任何类型的Minecraft服务器。'
2021-11-21 13:20:07 +00:00
if msg.Feature.delete and not enabled_addon:
msg_ += '[90秒后撤回消息]'
send = await msg.sendMessage(msg_)
if msg.Feature.delete and not enabled_addon:
await msg.sleep(90)
await send.delete()
2021-07-27 17:42:47 +00:00
2021-11-21 13:20:07 +00:00
async def s(msg: MessageSession, address, raw, showplayer, mode, enabled_addon):
2021-07-27 17:42:47 +00:00
sendmsg = await server(address, raw, showplayer, mode)
if sendmsg != '':
sendmsg = await check(sendmsg)
2021-11-12 14:25:53 +00:00
for x in sendmsg:
2021-11-16 14:19:48 +00:00
m = x['content']
2021-11-21 13:20:07 +00:00
if msg.Feature.delete and not enabled_addon:
2021-11-16 14:19:48 +00:00
m += '\n[90秒后撤回消息]'
send = await msg.sendMessage(m)
2021-11-21 13:20:07 +00:00
if msg.Feature.delete and not enabled_addon:
await msg.sleep(90)
await send.delete()
2021-08-07 07:56:48 +00:00
return sendmsg