Compare commits
No commits in common. "main" and "bab9298511a0fbee1f4d11283d6a38968bf0c255" have entirely different histories.
main
...
bab9298511
@ -1,5 +1,2 @@
|
|||||||
# AkashicQQ
|
# AkashicQQ
|
||||||
|
基于 NoneBot 框架的 Minecraft QQ 机器人,支持服务器进出提醒、QQ 群聊天、成就广播等多种功能
|
||||||
基于 NoneBot 框架的 Minecraft QQ 机器人,支持服务器进出提醒、QQ 群聊天、成就广播等多种功能。
|
|
||||||
|
|
||||||
[官方文档](https://qq.akashic.cc)
|
|
||||||
|
|||||||
6
bot.py
6
bot.py
@ -1,11 +1,17 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
import nonebot
|
import nonebot
|
||||||
from nonebot import logger
|
from nonebot import logger
|
||||||
from nonebot.adapters.cqhttp import Bot as CQHTTPBot
|
from nonebot.adapters.cqhttp import Bot as CQHTTPBot
|
||||||
|
|
||||||
|
|
||||||
|
# 若 data 文件夹不存在则创建
|
||||||
|
if os.path.exists('data') == False:
|
||||||
|
os.mkdir('data')
|
||||||
|
|
||||||
# dev 环境下监控 src config 文件夹变动
|
# dev 环境下监控 src config 文件夹变动
|
||||||
nonebot.init(fastapi_reload_dirs=['src', 'config'])
|
nonebot.init(fastapi_reload_dirs=['src', 'config'])
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
aiomysql==0.0.21
|
|
||||||
nb-cli==0.5.0
|
|
||||||
nonebot.plugin.apscheduler==0.1.2
|
|
||||||
@ -8,9 +8,9 @@ from nonebot.adapters.cqhttp import Bot, MessageSegment
|
|||||||
import httpx
|
import httpx
|
||||||
|
|
||||||
|
|
||||||
config = json.loads(open('./config/bilibililive_checker.json', 'r', encoding='utf-8').read())
|
config = json.loads(open('./config/bilibililive_checker.json', 'r').read())
|
||||||
text: str = json.loads(
|
text: str = json.loads(
|
||||||
open('./config/text.json', 'r', encoding='utf-8').read())['bilibililive_checker']['message']
|
open('./config/text.json', 'r').read())['bilibililive_checker']['message']
|
||||||
|
|
||||||
live_status = [False for i in range(len(config['liveroom']))]
|
live_status = [False for i in range(len(config['liveroom']))]
|
||||||
|
|
||||||
|
|||||||
@ -8,9 +8,9 @@ import utils
|
|||||||
import prism_api
|
import prism_api
|
||||||
|
|
||||||
|
|
||||||
text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())['bind_qq']
|
text: dict = json.loads(open('./config/text.json', 'r').read())['bind_qq']
|
||||||
|
|
||||||
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r', encoding='utf-8').read())['bind_qq']
|
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r').read())['bind_qq']
|
||||||
bind_qq = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
bind_qq = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
||||||
|
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ async def handle_bind_qq(bot: Bot, event: MessageEvent):
|
|||||||
|
|
||||||
# 检测是否绑定过
|
# 检测是否绑定过
|
||||||
try:
|
try:
|
||||||
record = json.loads(open('./data/bind_qq.json', 'r', encoding='utf-8').read())
|
record = json.loads(open('./data/bind_qq.json', 'r').read())
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
record = {}
|
record = {}
|
||||||
|
|
||||||
|
|||||||
@ -9,10 +9,10 @@ import prism_api
|
|||||||
|
|
||||||
|
|
||||||
not_bind_when_send_msg: str = json.loads(
|
not_bind_when_send_msg: str = json.loads(
|
||||||
open('./config/text.json', 'r', encoding='utf-8').read())['bind_qq']['not_bind_when_send_msg']
|
open('./config/text.json', 'r').read())['bind_qq']['not_bind_when_send_msg']
|
||||||
text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())['call_admin']
|
text: dict = json.loads(open('./config/text.json', 'r').read())['call_admin']
|
||||||
|
|
||||||
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r', encoding='utf-8').read())['call_admin']
|
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r').read())['call_admin']
|
||||||
call_admin = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
call_admin = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
||||||
|
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ async def handle_call_admin(bot: Bot, event: MessageEvent):
|
|||||||
|
|
||||||
# 检查发送者是否绑定账号
|
# 检查发送者是否绑定账号
|
||||||
try:
|
try:
|
||||||
record = json.loads(open('./data/bind_qq.json', 'r', encoding='utf-8').read())
|
record = json.loads(open('./data/bind_qq.json', 'r').read())
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
record = {}
|
record = {}
|
||||||
|
|
||||||
|
|||||||
@ -9,8 +9,8 @@ import utils
|
|||||||
import prism_api
|
import prism_api
|
||||||
|
|
||||||
|
|
||||||
config: list = json.loads(open('./config/cmd_register.json', 'r', encoding='utf-8').read())
|
config: list = json.loads(open('./config/cmd_register.json', 'r').read())
|
||||||
text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())['cmd_register']
|
text: dict = json.loads(open('./config/text.json', 'r').read())['cmd_register']
|
||||||
|
|
||||||
cmd_list: list = [one_cmd['cmd'] for one_cmd in config]
|
cmd_list: list = [one_cmd['cmd'] for one_cmd in config]
|
||||||
|
|
||||||
|
|||||||
@ -11,11 +11,11 @@ import aiomysql
|
|||||||
import utils
|
import utils
|
||||||
|
|
||||||
|
|
||||||
config: dict = json.loads(open('./config/get_invitation.json', 'r', encoding='utf-8').read())
|
config: dict = json.loads(open('./config/get_invitation.json', 'r').read())
|
||||||
text: dict = json.loads(
|
text: dict = json.loads(
|
||||||
open('./config/text.json', 'r', encoding='utf-8').read())['get_invitation']
|
open('./config/text.json', 'r').read())['get_invitation']
|
||||||
|
|
||||||
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r', encoding='utf-8').read())['get_invitation']
|
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r').read())['get_invitation']
|
||||||
get_invitation = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
get_invitation = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
||||||
|
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ async def handle_get_invitation(bot: Bot, event: MessageEvent):
|
|||||||
|
|
||||||
# 鉴定发起者是否有剩余次数
|
# 鉴定发起者是否有剩余次数
|
||||||
try:
|
try:
|
||||||
record = json.loads(open('./data/invitation.json', 'r', encoding='utf-8').read())
|
record = json.loads(open('./data/invitation.json', 'r').read())
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
record = {}
|
record = {}
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import utils
|
|||||||
|
|
||||||
|
|
||||||
welcome_msg: str = json.loads(
|
welcome_msg: str = json.loads(
|
||||||
open('./config/text.json', 'r', encoding='utf-8').read())['welcome']['message']
|
open('./config/text.json', 'r').read())['welcome']['message']
|
||||||
|
|
||||||
group_increase = on_notice()
|
group_increase = on_notice()
|
||||||
|
|
||||||
|
|||||||
@ -6,9 +6,9 @@ from nonebot import logger
|
|||||||
from nonebot.adapters.cqhttp import Bot, Message, MessageEvent
|
from nonebot.adapters.cqhttp import Bot, Message, MessageEvent
|
||||||
|
|
||||||
|
|
||||||
text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())
|
text: dict = json.loads(open('./config/text.json', 'r').read())
|
||||||
|
|
||||||
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r', encoding='utf-8').read())['help']
|
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r').read())['help']
|
||||||
help = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
help = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,11 +7,11 @@ from nonebot.adapters.cqhttp import Bot, MessageSegment, MessageEvent
|
|||||||
import prism_api
|
import prism_api
|
||||||
|
|
||||||
|
|
||||||
op_user: list = json.loads(open('./config/group.json', 'r', encoding='utf-8').read())['op_user']
|
op_user: list = json.loads(open('./config/group.json', 'r').read())['op_user']
|
||||||
text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())['issue_cmd']
|
text: dict = json.loads(open('./config/text.json', 'r').read())['issue_cmd']
|
||||||
|
|
||||||
cmd_set: dict = json.loads(
|
cmd_set: dict = json.loads(
|
||||||
open('./config/cmd_alias.json', 'r', encoding='utf-8').read())['issue_cmd']
|
open('./config/cmd_alias.json', 'r').read())['issue_cmd']
|
||||||
issue_cmd = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
issue_cmd = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
||||||
|
|
||||||
|
|
||||||
@ -55,8 +55,8 @@ async def handle_issue_cmd(bot: Bot, event: MessageEvent):
|
|||||||
server = arg_list[3]
|
server = arg_list[3]
|
||||||
|
|
||||||
exist_server_tag_list = []
|
exist_server_tag_list = []
|
||||||
for one_server in prism_api.config['server']:
|
for server in prism_api.config['server']:
|
||||||
exist_server_tag_list.append(one_server['tag'])
|
exist_server_tag_list.append(server['tag'])
|
||||||
|
|
||||||
if server not in exist_server_tag_list:
|
if server not in exist_server_tag_list:
|
||||||
await issue_cmd.send(at_msg + text['server_tag_not_exist'])
|
await issue_cmd.send(at_msg + text['server_tag_not_exist'])
|
||||||
|
|||||||
@ -9,11 +9,11 @@ from fastapi import Body, FastAPI
|
|||||||
import prism_api
|
import prism_api
|
||||||
|
|
||||||
|
|
||||||
config: dict = json.loads(open('./config/mc_event.json', 'r', encoding='utf-8').read())
|
config: dict = json.loads(open('./config/mc_event.json', 'r').read())
|
||||||
group_config: dict = json.loads(open('./config/group.json', 'r', encoding='utf-8').read())
|
group_config: dict = json.loads(open('./config/group.json', 'r').read())
|
||||||
text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())['mc_event']
|
text: dict = json.loads(open('./config/text.json', 'r').read())['mc_event']
|
||||||
not_bind_msg_in_game: str = json.loads(
|
not_bind_msg_in_game: str = json.loads(
|
||||||
open('./config/text.json', 'r', encoding='utf-8').read())['bind_qq']['not_bind_msg_in_game']
|
open('./config/text.json', 'r').read())['bind_qq']['not_bind_msg_in_game']
|
||||||
|
|
||||||
|
|
||||||
app: FastAPI = nonebot.get_app()
|
app: FastAPI = nonebot.get_app()
|
||||||
@ -92,7 +92,7 @@ async def player_join_handler(bot: Bot, data: dict):
|
|||||||
|
|
||||||
# 检测玩家是否绑定账号
|
# 检测玩家是否绑定账号
|
||||||
try:
|
try:
|
||||||
record = json.loads(open('./data/bind_qq.json', 'r', encoding='utf-8').read())
|
record = json.loads(open('./data/bind_qq.json', 'r').read())
|
||||||
players = list(record.values())
|
players = list(record.values())
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
players = []
|
players = []
|
||||||
@ -115,7 +115,7 @@ async def player_advancement_handler(bot: Bot, data: dict):
|
|||||||
# 检查成就翻译
|
# 检查成就翻译
|
||||||
try:
|
try:
|
||||||
tranlation = json.loads(
|
tranlation = json.loads(
|
||||||
open('./data/advancement_translation.json', 'r', encoding='utf-8').read())
|
open('./data/advancement_translation.json', 'r').read())
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
tranlation = {}
|
tranlation = {}
|
||||||
|
|
||||||
@ -180,7 +180,7 @@ async def player_quit_handler(bot: Bot, data: dict):
|
|||||||
if config['enable']['player_quit_private'] == True:
|
if config['enable']['player_quit_private'] == True:
|
||||||
# 向本人发送消息,提醒下线
|
# 向本人发送消息,提醒下线
|
||||||
try:
|
try:
|
||||||
record = json.loads(open('./data/bind_qq.json', 'r', encoding='utf-8').read())
|
record = json.loads(open('./data/bind_qq.json', 'r').read())
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
record = {}
|
record = {}
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@ from nonebot.log import logger
|
|||||||
import httpx
|
import httpx
|
||||||
|
|
||||||
|
|
||||||
config = json.loads(open('./config/mc_server.json', 'r', encoding='utf-8').read())
|
config = json.loads(open('./config/mc_server.json', 'r').read())
|
||||||
|
|
||||||
|
|
||||||
async def get(api: str, server_tag: str = None):
|
async def get(api: str, server_tag: str = None):
|
||||||
|
|||||||
@ -7,9 +7,9 @@ from nonebot.adapters.cqhttp import Bot, MessageSegment, MessageEvent
|
|||||||
import prism_api
|
import prism_api
|
||||||
|
|
||||||
|
|
||||||
text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())['query_online']
|
text: dict = json.loads(open('./config/text.json', 'r').read())['query_online']
|
||||||
|
|
||||||
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r', encoding='utf-8').read())['query_online']
|
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r').read())['query_online']
|
||||||
query_online = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
query_online = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -8,10 +8,10 @@ import prism_api
|
|||||||
|
|
||||||
|
|
||||||
not_bind_when_send_msg: str = json.loads(
|
not_bind_when_send_msg: str = json.loads(
|
||||||
open('./config/text.json', 'r', encoding='utf-8').read())['bind_qq']['not_bind_when_send_msg']
|
open('./config/text.json', 'r').read())['bind_qq']['not_bind_when_send_msg']
|
||||||
text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())['say_mc_msg']
|
text: dict = json.loads(open('./config/text.json', 'r').read())['say_mc_msg']
|
||||||
|
|
||||||
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r', encoding='utf-8').read())['say_mc_msg']
|
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r').read())['say_mc_msg']
|
||||||
say_mc_msg = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
say_mc_msg = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
||||||
|
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ async def handle_say_mc_msg(bot: Bot, event: MessageEvent):
|
|||||||
|
|
||||||
# 检查发送者是否绑定账号
|
# 检查发送者是否绑定账号
|
||||||
try:
|
try:
|
||||||
record = json.loads(open('./data/bind_qq.json', 'r', encoding='utf-8').read())
|
record = json.loads(open('./data/bind_qq.json', 'r').read())
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
record = {}
|
record = {}
|
||||||
|
|
||||||
|
|||||||
@ -8,10 +8,10 @@ import prism_api
|
|||||||
|
|
||||||
|
|
||||||
not_bind_when_send_msg: str = json.loads(
|
not_bind_when_send_msg: str = json.loads(
|
||||||
open('./config/text.json', 'r', encoding='utf-8').read())['bind_qq']['not_bind_when_send_msg']
|
open('./config/text.json', 'r').read())['bind_qq']['not_bind_when_send_msg']
|
||||||
text: dict = json.loads(open('./config/text.json', 'r', encoding='utf-8').read())['tell_mc_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', encoding='utf-8').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 = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
||||||
|
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ async def handle_tell_mc_msg(bot: Bot, event: MessageEvent):
|
|||||||
at_msg = MessageSegment.at(user_id) + '\n'
|
at_msg = MessageSegment.at(user_id) + '\n'
|
||||||
|
|
||||||
# 检查发送者是否绑定账号
|
# 检查发送者是否绑定账号
|
||||||
record = json.loads(open('./data/bind_qq.json', 'r', encoding='utf-8').read())
|
record = json.loads(open('./data/bind_qq.json', 'r').read())
|
||||||
|
|
||||||
if str(user_id) not in record:
|
if str(user_id) not in record:
|
||||||
logger.info(f"{user_id}试图向服务器私聊消息但未绑定账号,已拒绝")
|
logger.info(f"{user_id}试图向服务器私聊消息但未绑定账号,已拒绝")
|
||||||
|
|||||||
@ -6,7 +6,7 @@ from nonebot import logger
|
|||||||
from nonebot.adapters.cqhttp import Bot
|
from nonebot.adapters.cqhttp import Bot
|
||||||
|
|
||||||
|
|
||||||
config = json.loads(open('./config/group.json', 'r', encoding='utf-8').read())
|
config = json.loads(open('./config/group.json', 'r').read())
|
||||||
|
|
||||||
|
|
||||||
async def inform_admin(message: str, member_user_id: int = None):
|
async def inform_admin(message: str, member_user_id: int = None):
|
||||||
|
|||||||
@ -6,9 +6,9 @@ from nonebot.adapters.cqhttp import Bot, Message, MessageEvent
|
|||||||
|
|
||||||
|
|
||||||
welcome_msg: str = json.loads(
|
welcome_msg: str = json.loads(
|
||||||
open('./config/text.json', 'r', encoding='utf-8').read())['welcome']['message']
|
open('./config/text.json', 'r').read())['welcome']['message']
|
||||||
|
|
||||||
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r', encoding='utf-8').read())['welcome']
|
cmd_set: dict = json.loads(open('./config/cmd_alias.json', 'r').read())['welcome']
|
||||||
welcome = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
welcome = on_command(cmd_set['cmd'], aliases=set(cmd_set['aliases']))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user