@kotori-bot/kotori-plugin-adapter-sandbox
Version:
Kotori modules test environment,a visual sandbox
140 lines (139 loc) • 5.15 kB
JavaScript
/**
* @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
*/
;
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
});