53 lines
1.7 KiB
Python
Raw Normal View History

2021-10-07 21:39:01 +08:00
import json
from nonebot import on_command
from nonebot import logger
from nonebot.adapters.cqhttp import Bot, MessageSegment, MessageEvent
import prism_api
not_bind_when_send_msg: str = json.loads(
open('./config/text.json', 'r').read())['bind_qq']['not_bind_when_send_msg']
text: dict = json.loads(open('./config/text.json', 'r').read())['tell_mc_msg']
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r').read())['tell_mc_msg']
tell_mc_msg = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
@tell_mc_msg.handle()
async def handle_tell_mc_msg(bot: Bot, event: MessageEvent):
# 发送者 user_card
user_id = event.user_id
at_msg = MessageSegment.at(user_id) + '\n'
# 检查发送者是否绑定账号
record = json.loads(open('./data/bind_qq.json', 'r').read())
if str(user_id) not in record:
logger.info(f"{user_id}试图向服务器私聊消息但未绑定账号,已拒绝")
await tell_mc_msg.send(at_msg + not_bind_when_send_msg)
return
user_card = record[str(user_id)]
# 发送消息
stripped_arg = str(event.message).strip()
index = stripped_arg.find(' ')
player_id = stripped_arg[0:index]
msg_to_send = (stripped_arg[index + 1:len(stripped_arg)])
if player_id == '' or msg_to_send == '' or index == -1:
logger.info(f"{user_id}发送格式错误!私聊消息请求被拒绝")
await tell_mc_msg.send(at_msg + text['format_error'])
return
data = {
'message': text['msg_in_game'].replace('<bind_player>', user_card).replace('<msg>', msg_to_send),
'selector': player_id
}
await prism_api.all_server_tellraw(data=data)
logger.info(f"{user_id}{player_id}私聊消息:{msg_to_send}")