UNPKG

@kotori-bot/kotori-plugin-adapter-onebot

Version:

Adapter For Onebot 11

239 lines (238 loc) 7.09 kB
/** * @Package @kotori-bot/kotori-plugin-adapter-onebot * @Version 2.1.1 * @Author Hotaru <me@hotaru.icu> * @Copyright 2024-2025 Hotaru. All rights reserved. * @License GPL-3.0 * @Link https://github.com/kotorijs/kotori * @Date 2026/2/14 21:24:52 */ "use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var api_exports = {}; __export(api_exports, { OnebotApi: () => OnebotApi, default: () => api_default }); module.exports = __toCommonJS(api_exports); var import_kotori_bot = require("kotori-bot"); class OnebotApi extends import_kotori_bot.Api { adapter; constructor(adapter) { super(adapter); this.adapter = adapter; } getSupportedEvents() { return [ "on_message", "on_message_delete", "on_request", "on_group_increase", "on_group_decrease", "on_group_ban", "on_group_admin", "onebot_poke" ]; } async sendPrivateMsg(message, userId) { return { messageId: String( (await this.adapter.call("send_private_msg", { user_id: Number(userId), message: this.adapter.elements.decode(message), auto_escape: false })).message_id ), time: Date.now() }; } /** * @description: 发送私聊消息 * @param message 要发送的内容 * @param groupId 群号 */ async sendGroupMsg(message, groupId) { return { messageId: String( (await this.adapter.call("send_group_msg", { group_id: Number(groupId), message: this.adapter.elements.decode(message), auto_escape: false })).message_id ), time: Date.now() }; } /** * @description: 撤回消息 * @param messageId 消息id */ deleteMsg(messageId) { return this.adapter.call("delete_msg", { message_id: messageId }); } async getSelfInfo() { const data = await this.adapter.call("get_login_info"); return { userId: String(data.user_id), username: data.nickname, userDisplayname: data.nickname }; } async getUserInfo(userId) { const data = await this.adapter.call("get_stranger_info", { user_id: Number(userId) }); return { userId: String(data.user_id), username: data.nickname, userDisplayname: data.nickname, userRemark: data.remark ?? "" }; } async getFriendList() { const data = await this.adapter.call("get_friend_list"); return data.map((item) => ({ userId: String(item.user_id), username: item.nickname, userDisplayname: item.nickname, userRemark: item.remark ?? "" })); } async getGroupInfo(groupId) { const data = await this.adapter.call( "get_group_info", { group_id: Number(groupId) } ); return { groupId: String(data.group_id), groupName: data.group_name, groupMemo: data.group_memo ?? "" }; } async getGroupList() { const data = await this.adapter.call("get_group_list"); return data.map((item) => ({ groupId: String(item.group_id), groupName: item.group_name, groupMemo: item.group_memo ?? "" })); } async getGroupMemberInfo(groupId, userId) { const data = await this.adapter.call("get_group_member_info", { group_id: Number(groupId), user_id: Number(userId) }); return { userId: String(data.user_id), username: data.nickname, userDisplayname: data.card }; } async getGroupMemberList(groupId) { const data = await this.adapter.call("get_group_member_list", { group_id: Number(groupId) }); return data.map((item) => ({ userId: String(item.user_id), username: item.nickname, userDisplayname: item.card })); } /** * @description: 设置群名 * @param groupId 群号 * @param groupName 新群名 */ setGroupName(groupId, groupName) { return this.adapter.call("set_group_name", { group_id: Number(groupId), group_name: groupName }); } /** * @description: 退出群组 * @param groupId 群号 */ leaveGroup(groupId) { return this.adapter.call("set_group_leave", { group_id: Number(groupId), is_dismiss: false }); } /** * @description: 设置群头像 * @param groupId 群号 * @param image 图片路径 */ setGroupAvatar(groupId, image) { return this.adapter.call("set_group_portrait", { group_id: Number(groupId), file: image, cache: false }); } /** * @description: 设置群管理员 * @param groupId 群号 * @param userId 要设置的管理员的QQ号 * @param enable true为设置,false取消,默认true */ setGroupAdmin(groupId, userId, enable = true) { return this.adapter.call("set_group_admin", { group_id: Number(groupId), user_id: Number(userId), enable }); } /** * @description: 设置群名片(群备注) * @param groupId 群号 * @param userId 要设置的QQ号 * @param card 群名片内容,不填或空字符串表示删除群名片 */ setGroupCard(groupId, userId, card) { return this.adapter.call("set_group_card", { group_id: Number(groupId), user_id: Number(userId), card }); } /** * @description: 群禁言 * @param groupId 群号 * @param userId 要禁言的QQ号,不填则为群禁言 * @param time 禁言时长,单位秒,0表示取消禁言 */ setGroupBan(groupId, userId, time = 0) { return this.adapter.call("set_group_ban", { group_id: Number(groupId), user_id: Number(userId), duration: time }); } setGroupWholeBan(groupId, enable = true) { return this.adapter.call("set_group_whole_ban", { group_id: Number(groupId), enable }); } /** * @description: 发送群公告 * @param groupId 群号 * @param content 公告内容 * @param image 图片路径(可选) */ sendGroupNotice(groupId, content, image) { return this.adapter.call("_send_group_notice", { group_id: Number(groupId), content, image }); } /** * @description: 群组踢人 * @param groupId 群号 * @param userId 要踢的QQ号 */ setGroupKick(groupId, userId) { return this.adapter.call("set_group_kick", { group_id: Number(groupId), user_id: Number(userId), reject_add_request: false }); } } var api_default = OnebotApi; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { OnebotApi });