From a2e3d694829fb8e4d30d157a3230d6349320f376 Mon Sep 17 00:00:00 2001 From: rabbitkiller <243249439@qq.com> Date: Tue, 31 Aug 2021 20:29:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=A1=A5=E6=B2=A1=E6=9C=89=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=97=B6=E4=B8=8D=E8=A6=81=E7=BB=A7=E7=BB=AD=E5=8F=91?= =?UTF-8?q?=E9=80=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++++- src/el-bot/message-util.ts | 14 +++++++++++++- src/entity/bridge-message.entity.ts | 17 +++++++++++++---- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 570b59c..65a7dc6 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,10 @@ Discord制作机器人不需要类似go-cqhttp的中转程序。官方已经提 1. 安装java jdk 并且11以上的版本,配置好java环境变量, 控制台输入`java --version` 能看到版本信息就正常 2. 修改文件 `mcl-1.1.0-beta.1/config/Console/AutoLogin.yml` 添加属于你的qq账号 -3. 进入`mcl-1.1.0-beta.1`目录,运行`./mcl` +3. 进入`mcl-1.1.0-beta.1`目录,运行`java -jar mcl.jar -u` + + > 可以选择不使用`java -jar mcl.jar -u`, 直接使用`./mcl`启动但是jar包会自动更新, 所以不推荐 + 正常情况,bot收到消息后,控制台会看的到就成功了 > 注: 推荐使用docker的方式,不只是本地,部署到云环境也方便 diff --git a/src/el-bot/message-util.ts b/src/el-bot/message-util.ts index b837f09..918d0a4 100644 --- a/src/el-bot/message-util.ts +++ b/src/el-bot/message-util.ts @@ -181,6 +181,10 @@ async function qqMessageChainToBridgeMessageChain(bridgeMessage: BridgeMessage, } export async function bridgeSendQQ(bridgeMessage: BridgeMessage) { + const bridge = bridgeMessage.bridge; + if (!bridge.qqGroup) { + return; + } bridgeMessage.chain.unshift(MiraiMessage.Plain(toBridgeUserName({ ...bridgeMessage.author, source: bridgeMessage.source, @@ -224,6 +228,10 @@ export async function bridgeSendQQ(bridgeMessage: BridgeMessage) { } export async function bridgeSendDiscord(bridgeMessage: BridgeMessage) { + const bridge = bridgeMessage.bridge; + if (!bridge.discord || !bridge.discord.id || !bridge.discord.token || !bridge.discord.channelID) { + return; + } const option: WebhookMessageOptions = { username: toBridgeUserName({...bridgeMessage.author, source: bridgeMessage.source}).replace(/^@/, ''), avatarURL: bridgeMessage.author.avatar, @@ -299,7 +307,8 @@ async function toDiscordQuoteMessage(bridgeMessage: BridgeMessage, webhook: Disc } return messageContent.split('\n').map((str) => '> ' + str).join('\n'); } -async function toDiscordAtUser(at: At, webhook: DiscordWebhook){ + +async function toDiscordAtUser(at: At, webhook: DiscordWebhook) { if (at.source === 'DC') { // 获取guild, 在通过guild获取所有用户 const guild: Guild = await BotService.discord.guilds.fetch(webhook.guildID); @@ -314,6 +323,9 @@ async function toDiscordAtUser(at: At, webhook: DiscordWebhook){ export async function bridgeSendKaiheila(bridgeMessage: BridgeMessage) { + if (!bridgeMessage.bridge.kaiheila || !bridgeMessage.bridge.kaiheila.channelID) { + return; + } const chain: Array = []; // 处理消息 for (const msg of bridgeMessage.chain) { diff --git a/src/entity/bridge-message.entity.ts b/src/entity/bridge-message.entity.ts index eb73584..bebfebf 100644 --- a/src/entity/bridge-message.entity.ts +++ b/src/entity/bridge-message.entity.ts @@ -1,20 +1,29 @@ -import {Entity, PrimaryGeneratedColumn, Column} from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; +import { SingleMessage } from '../el-bot/interface'; @Entity() export class BridgeMessageEntity { @PrimaryGeneratedColumn('uuid') id: number; - @Column() + @Column({nullable: true}) qqMessageID: string; - @Column() + @Column({nullable: true}) dcMessageID: string; - @Column() + @Column({nullable: true}) khlMessageID: string; @Column() from: 'QQ' | 'KHL' | 'DC'; + // @Column({type: 'json'}) + // dcMessageContent: SingleMessage[] = []; + // + // @Column({type: 'json'}) + // qqMessageContent: SingleMessage[] = []; + // + // @Column({type: 'json'}) + // khlMessageContent: SingleMessage[] = []; }