首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Discord.js:发送前创建消息对象

Discord.js:发送前创建消息对象
EN

Stack Overflow用户
提问于 2020-10-20 02:21:12
回答 2查看 1.3K关注 0票数 0

我正在尝试创建一个消息对象,然后在通道中实际发送它,这是可能的吗?我一直收到关于这个代码的奇怪的错误:

代码语言:javascript
代码运行次数:0
运行
复制
var new_message = new Discord.Message(channel, {
    author: client.user,
    content: 'Hello, ' + message.author.username + '!'
}, client);
console.info(new_message);
channel.send(new_message);

但这只是给出了下面的错误。我想要消息对象的原因是,这样我就可以在发送之后轻松地向它添加一个反应。

代码语言:javascript
代码运行次数:0
运行
复制
React-o-matic Discord/node_modules/discord.js/src/structures/Message.js:86
  this.author = this.client.users.add(data.author, !data.webhook_id);
                                  ^
TypeError: Cannot read property 'add' of undefined
    at Message._patch (React-o-matic Discord/node_modules/discord.js/src/structures/Message.js:86:39)
    at new Message (React-o-matic Discord/node_modules/discord.js/src/structures/Message.js:44:20)
    at Client.<anonymous> (React-o-matic Discord/bot.js:18:35)
    at Client.emit (events.js:314:20)
    at MessageCreateAction.handle (React-o-matic Discord/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (React-o-matic Discord/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (React-o-matic Discord/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (React-o-matic Discord/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (React-o-matic Discord/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
    at WebSocket.onMessage (React-o-matic Discord/node_modules/discord.js/node_modules/ws/lib/event-target.js:125:16)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-03 06:45:29

试试这个:

代码语言:javascript
代码运行次数:0
运行
复制
var msg = new Discord.Message(client, {
    id: message.id,
    type: message.type,
    content: message.content,
    author: client.user,
    pinned: message.pinned,
    tts: message.tts,
    embeds: message.embeds,
    attachments: message.attachments,
    nonce: "123" // idfk
}, channel)

这是创建消息对象所需的最低要求。

票数 1
EN

Stack Overflow用户

发布于 2020-10-20 03:47:34

我找到了另一种解决问题的方法:使用.then()函数:

代码语言:javascript
代码运行次数:0
运行
复制
channel.send('Hello, ' + message.author.username + '!')
    .then(function (sent_message) {
        console.info("message sent");
    });

这让我基本上可以做同样的事情!没有关于.send()命令的文档,但是我试过了,它工作了哈哈

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64433108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档