mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
fix: #793
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { ChatType, GetFileListParam, Peer, RawMessage, SendMessageElement, SendStatusType } from '@/core/types';
|
import { ChatType, GetFileListParam, Peer, RawMessage, SendMessageElement, SendStatusType } from '@/core/types';
|
||||||
import { GroupFileInfoUpdateItem, InstanceContext, NapCatCore } from '@/core';
|
import { GroupFileInfoUpdateItem, InstanceContext, NapCatCore, NodeIKernelMsgService } from '@/core';
|
||||||
import { GeneralCallResult } from '@/core/services/common';
|
import { GeneralCallResult } from '@/core/services/common';
|
||||||
|
|
||||||
export class NTQQMsgApi {
|
export class NTQQMsgApi {
|
||||||
@@ -12,6 +12,11 @@ export class NTQQMsgApi {
|
|||||||
this.context = context;
|
this.context = context;
|
||||||
this.core = core;
|
this.core = core;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async clickInlineKeyboardButton(...params: Parameters<NodeIKernelMsgService['clickInlineKeyboardButton']>) {
|
||||||
|
return this.context.session.getMsgService().clickInlineKeyboardButton(...params);
|
||||||
|
}
|
||||||
|
|
||||||
getMsgByClientSeqAndTime(peer: Peer, replyMsgClientSeq: string, replyMsgTime: string) {
|
getMsgByClientSeqAndTime(peer: Peer, replyMsgClientSeq: string, replyMsgTime: string) {
|
||||||
// https://bot.q.qq.com/wiki/develop/api-v2/openapi/emoji/model.html#EmojiType 可以用过特殊方式拉取
|
// https://bot.q.qq.com/wiki/develop/api-v2/openapi/emoji/model.html#EmojiType 可以用过特殊方式拉取
|
||||||
return this.context.session.getMsgService().getMsgByClientSeqAndTime(peer, replyMsgClientSeq, replyMsgTime);
|
return this.context.session.getMsgService().getMsgByClientSeqAndTime(peer, replyMsgClientSeq, replyMsgTime);
|
||||||
|
@@ -464,7 +464,16 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
setMsgEmojiLikesForRole(...args: unknown[]): unknown;
|
setMsgEmojiLikesForRole(...args: unknown[]): unknown;
|
||||||
|
|
||||||
clickInlineKeyboardButton(...args: unknown[]): unknown;
|
clickInlineKeyboardButton(params: {
|
||||||
|
guildId: string,
|
||||||
|
peerId: string,
|
||||||
|
botAppid: string,
|
||||||
|
msgSeq: string,
|
||||||
|
buttonId: string,
|
||||||
|
callback_data: string,
|
||||||
|
dmFlag: number,
|
||||||
|
chatType: number
|
||||||
|
}): Promise<GeneralCallResult & { status: number, promptText: string, promptType: number, promptIcon: number }>;
|
||||||
|
|
||||||
setCurOnScreenMsg(...args: unknown[]): unknown;
|
setCurOnScreenMsg(...args: unknown[]): unknown;
|
||||||
|
|
||||||
|
30
src/onebot/action/extends/ClickInlineKeyboardButton.ts
Normal file
30
src/onebot/action/extends/ClickInlineKeyboardButton.ts
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import { ActionName } from '@/onebot/action/router';
|
||||||
|
import { OneBotAction } from '../OneBotAction';
|
||||||
|
import { Static, Type } from '@sinclair/typebox';
|
||||||
|
|
||||||
|
const SchemaData = Type.Object({
|
||||||
|
group_id: Type.Union([Type.Number(), Type.String()]),
|
||||||
|
bot_appid: Type.String(),
|
||||||
|
button_id: Type.String({ default: '' }),
|
||||||
|
callback_data: Type.String({ default: '' }),
|
||||||
|
});
|
||||||
|
|
||||||
|
type Payload = Static<typeof SchemaData>;
|
||||||
|
|
||||||
|
export class ClickInlineKeyboardButton extends OneBotAction<Payload, unknown> {
|
||||||
|
override actionName = ActionName.ClickInlineKeyboardButton;
|
||||||
|
override payloadSchema = SchemaData;
|
||||||
|
|
||||||
|
async _handle(payload: Payload) {
|
||||||
|
return await this.core.apis.MsgApi.clickInlineKeyboardButton({
|
||||||
|
buttonId: payload.button_id,
|
||||||
|
guildId: '',// 频道使用
|
||||||
|
peerId: payload.group_id.toString(),
|
||||||
|
botAppid: payload.bot_appid,
|
||||||
|
msgSeq: '10086',
|
||||||
|
callback_data: payload.callback_data,
|
||||||
|
dmFlag: 0,
|
||||||
|
chatType: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
@@ -105,6 +105,7 @@ import { SendPacket } from './extends/SendPacket';
|
|||||||
import { SendPoke } from '@/onebot/action/packet/SendPoke';
|
import { SendPoke } from '@/onebot/action/packet/SendPoke';
|
||||||
import { SetDiyOnlineStatus } from './extends/SetDiyOnlineStatus';
|
import { SetDiyOnlineStatus } from './extends/SetDiyOnlineStatus';
|
||||||
import { BotExit } from './extends/BotExit';
|
import { BotExit } from './extends/BotExit';
|
||||||
|
import { ClickInlineKeyboardButton } from './extends/ClickInlineKeyboardButton';
|
||||||
|
|
||||||
export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCore) {
|
export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCore) {
|
||||||
|
|
||||||
@@ -223,6 +224,7 @@ export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCo
|
|||||||
new SendPoke(obContext, core),
|
new SendPoke(obContext, core),
|
||||||
new GetGroupSystemMsg(obContext, core),
|
new GetGroupSystemMsg(obContext, core),
|
||||||
new BotExit(obContext, core),
|
new BotExit(obContext, core),
|
||||||
|
new ClickInlineKeyboardButton(obContext, core),
|
||||||
];
|
];
|
||||||
|
|
||||||
type HandlerUnion = typeof actionHandlers[number];
|
type HandlerUnion = typeof actionHandlers[number];
|
||||||
|
@@ -10,6 +10,7 @@ export interface InvalidCheckResult {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const ActionName = {
|
export const ActionName = {
|
||||||
|
ClickInlineKeyboardButton: 'click_inline_keyboard_button',
|
||||||
GetUnidirectionalFriendList: 'get_unidirectional_friend_list',
|
GetUnidirectionalFriendList: 'get_unidirectional_friend_list',
|
||||||
// onebot 11
|
// onebot 11
|
||||||
SendPrivateMsg: 'send_private_msg',
|
SendPrivateMsg: 'send_private_msg',
|
||||||
@@ -142,6 +143,6 @@ export const ActionName = {
|
|||||||
SendGroupAiRecord: 'send_group_ai_record',
|
SendGroupAiRecord: 'send_group_ai_record',
|
||||||
|
|
||||||
GetClientkey: 'get_clientkey',
|
GetClientkey: 'get_clientkey',
|
||||||
|
|
||||||
SendPoke: 'send_poke',
|
SendPoke: 'send_poke',
|
||||||
} as const;
|
} as const;
|
||||||
|
Reference in New Issue
Block a user