UNPKG

@kotori-bot/kotori-plugin-adapter-sandbox

Version:

Kotori modules test environment,a visual sandbox

140 lines (139 loc) 5.15 kB
/** * @Package @kotori-bot/kotori-plugin-adapter-sandbox * @Version 1.1.1 * @Author Hotaru <me@hotaru.icu> * @Copyright 2024-2025 Hotaru. All rights reserved. * @License BAN-ZHINESE-USING * @Link https://github.com/kotorijs/kotori * @Date 2025/8/4 17:29:40 */ "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, { SandboxApi: () => SandboxApi, default: () => api_default }); module.exports = __toCommonJS(api_exports); var import_kotori_bot = require("kotori-bot"); class SandboxApi extends import_kotori_bot.Api { factory(callback) { return new Promise((resolve) => { const register = () => this.adapter.ctx.once("literal_sandbox_response", (data) => { const result = callback(data); if (!result) { register(); return; } resolve(result); }); }); } adapter; constructor(adapter) { super(adapter); this.adapter = adapter; } getSupportedEvents() { return [ "on_message", "on_message_delete", "on_group_increase", "on_group_decrease", "on_group_whole_ban", "on_friend_decrease", "on_friend_increase", "on_group_ban", "on_group_admin" ]; } sendPrivateMsg(message, userId) { this.adapter.send({ action: "send_private_msg", message: this.adapter.elements.decode(message), userId }); return this.factory((data) => !Array.isArray(data) && data.response === "send_message_response" ? data : null); } sendGroupMsg(message, groupId) { this.adapter.send({ action: "send_group_msg", message: this.adapter.elements.decode(message), groupId }); return this.factory((data) => !Array.isArray(data) && data.response === "send_message_response" ? data : null); } deleteMsg(messageId) { this.adapter.send({ action: "delete_msg", messageId }); } async getSelfInfo() { this.adapter.send({ action: "get_self_info" }); return this.factory((data) => !Array.isArray(data) && data.response === "self_info_response" ? data : null); } async getUserInfo(userId) { this.adapter.send({ action: "get_user_info", userId }); return this.factory((data) => !Array.isArray(data) && data.response === "user_info_response" ? data : null); } async getFriendList() { this.adapter.send({ action: "get_friend_list" }); return this.factory( (data) => Array.isArray(data) && (data.length === 0 || data[0].response === "user_info_response") ? data : null ); } async getGroupInfo(groupId) { this.adapter.send({ action: "get_group_info", groupId }); return this.factory((data) => !Array.isArray(data) && data.response === "group_info_response" ? data : null); } async getGroupList() { this.adapter.send({ action: "get_group_list" }); return this.factory( (data) => Array.isArray(data) && (data.length === 0 || data[0].response === "group_info_response") ? data : null ); } async getGroupMemberInfo(groupId, userId) { this.adapter.send({ action: "get_group_member_info", groupId, userId }); return this.factory( (data) => !Array.isArray(data) && data.response === "group_member_info_response" ? data : null ); } async getGroupMemberList(groupId) { this.adapter.send({ action: "get_group_member_list", groupId }); return this.factory( (data) => Array.isArray(data) && (data.length === 0 || data[0].response === "group_member_info_response") ? data : null ); } setGroupName(groupId, groupName) { this.adapter.send({ action: "set_group_name", groupId, groupName }); } leaveGroup(groupId) { this.adapter.send({ action: "leave_group", groupId }); } setGroupAdmin(groupId, userId, enable) { this.adapter.send({ action: "set_group_admin", groupId, userId, enable }); } setGroupCard(groupId, userId, card) { this.adapter.send({ action: "set_group_card", groupId, userId, card }); } setGroupBan(groupId, userId, time) { this.adapter.send({ action: "set_group_ban", groupId, userId, time }); } setGroupWholeBan(groupId, enable = true) { this.adapter.send({ action: "set_group_whole_ban", groupId, enable }); } setGroupKick(groupId, userId) { this.adapter.send({ action: "set_group_kick", groupId, userId }); } } var api_default = SandboxApi; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { SandboxApi });