UNPKG

heybox-bot

Version:

A heybox chat bot frame

128 lines 3.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WSMsgImpl = void 0; const message_1 = require("../../type/message"); /** * 实现WebSocket消息的类,同时也实现了命令源的接口 * 该类用于处理和封装WebSocket消息,提供消息回复、用户回复等功能 */ class WSMsgImpl { /** * 构造函数 * @param sender 消息发送函数 * @param userSender 用户消息发送函数 * @param data WebSocket消息数据 * @param additional 额外的信息,包括频道、房间、用户信息等 */ constructor(sender, userSender, data, additional) { this.msg_id = data.msg_id; this.send_time = data.send_time; this.channel_id = additional.channel_id; this.channel_name = additional.channel_name; this.channel_type = additional.channel_type; this.room_id = additional.room_id; this.room_nickname = additional.room_nickname; this.user_info = additional.user_info; this.sender = sender; this.userSender = userSender; } /** * 获取用户昵称 * @returns 用户昵称 */ getName() { return this.user_info.nickname; } /** * 检查权限,目前未实现 * @param permission 权限字符串 * @returns 总是返回true */ hasPermission(permission) { return !!permission || true; } /** * 发送失败消息 * @param msg 消息内容或Message对象 */ fail(msg) { if (typeof msg === 'string') this.reply(`fail: ${msg}`); else this.reply(msg); } /** * 发送成功消息 * @param msg 消息内容或Message对象 */ success(msg) { this.reply(msg); } /** * 通过回调函数发送失败消息 * @param callback 回调函数,用于构建消息 */ failBy(callback) { this.replyBy(callback); } /** * 通过回调函数发送成功消息 * @param callback 回调函数,用于构建消息 */ successBy(callback) { this.replyBy(callback); } /** * 回复消息 * @param msg 消息内容或Message对象 */ reply(msg) { if (typeof msg === 'string') { msg = message_1.ExtendedMarkdownMessageImpl.create() .at(this.user_info) .reply(this.msg_id) .to(this.room_id, this.channel_id) .text(msg); } else { msg.room_id = this.room_id; msg.channel_id = this.channel_id; } this.sender(msg); } /** * 通过回调函数回复消息 * @param callback 回调函数,用于构建消息 */ replyBy(callback) { const builder = new message_1.MessageBuilder(); callback(builder); this.reply(builder.build()); } /** * 回复用户消息 * @param msg 消息内容或UserMessage对象 */ replyUser(msg) { if (typeof msg === 'string') { msg = message_1.MarkdownUserMessageImpl.create() .to(this.user_info.user_id) .text(msg); } else { msg.to_user_id = this.user_info.user_id; } this.userSender(msg); } /** * 通过回调函数回复用户消息 * @param callback 回调函数,用于构建消息 */ replyUserBy(callback) { const builder = new message_1.UserMessageBuilder(); callback(builder); this.replyUser(builder.build()); } } exports.WSMsgImpl = WSMsgImpl; //# sourceMappingURL=index.js.map