import json import asyncio import nonebot from nonebot.log import logger from nonebot.adapters.cqhttp import Bot from fastapi import Body, FastAPI import prism_api config: dict = json.loads(open('./config/mc_event.json', 'r', encoding='utf-8').read()) group_config: dict = json.loads(open('./config/group.json', 'r', encoding='utf-8').read()) text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())['mc_event'] not_bind_msg_in_game: str = json.loads( open('./config/text.json', 'r', encoding='utf-8').read())['bind_qq']['not_bind_msg_in_game'] app: FastAPI = nonebot.get_app() @app.post('/') async def mc_event_handler(data: dict = Body(...)): data = data['data'] logger.info(f"收到MC事件: {data}") while True: try: bot: Bot = nonebot.get_bot() except ValueError: asyncio.sleep(0) else: break # 处理事件 if data['type'] == 'ServerStart': await server_start_handler(bot, data) elif data['type'] == 'ServerStop': await server_stop_handler(bot, data) elif data['type'] == 'PlayerJoin': await player_join_handler(bot, data) elif data['type'] == 'PlayerAdvancement': await player_advancement_handler(bot, data) elif data['type'] == 'PlayerChat': await player_chat_handler(bot, data) elif data['type'] == 'PlayerQuit': await player_quit_handler(bot, data) return { "status": 200, "msg": "success" } async def server_start_handler(bot: Bot, data: dict): if config['enable']['server_start'] == False: return message = text['server_start'].replace('', data['tag']).replace( '