我编写了以下代码来记录发送到我的机器人的 DM:
client.on('messageCreate', async message => {
if (message.author.bot) return;
const attachment = message.attachments.first()
if (message.channel.type === 'DM') {
console.log(message.content)
const dmLogEmbed = new MessageEmbed()
.setColor("RANDOM")
.setTitle(`${message.author.tag} dmed the bot and said: `)
.setDescription(message.content)
.setFooter(`User's id: ${message.author.id}`)
if (message.attachments.size !== 0) {
dmLogEmbed.setImage(attachment.url)
}
client.channels.fetch("852220016249798756").then((channel) => {
channel.send({ embeds: [dmLogEmbed] })
})
}
});
Run Code Online (Sandbox Code Playgroud)
但是当更新到discord.js v13时,它不再工作了,据我了解,唯一的变化是“dm”通道类型不再是“dm”而是“DM”,所以我在代码中更改了它,但它仍然不起作用,我真的不知道为什么。
我正在尝试将我的discord 机器人更新到新版本的discord.js (v13)。我有一条带有嵌入和两个按钮的消息,一个用于上一页,一个用于下一页。当用户单击按钮时,我尝试编辑嵌入以显示其他内容。但后来我得到了
类型错误:interaction.message.edit() 不是函数。
我可以打印出来interaction.message并显示消息对象,但无法调用该函数。我正在使用该interactionCreate事件。
提前致谢!
我的问题是我在尝试删除 Discord 中的消息时收到错误消息。
client.on('message', msg => {
if(msg.content.startsWith(".del ")) {
msg.delete(1000); //Supposed to delete message
}
});
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
C:\Users\---\Desktop\Test\node_modules\discord.js\src\structures\Message.js:501
if (typeof options !== 'object') throw new TypeError('INVALID_TYPE', 'options', 'object', true);
^
TypeError [INVALID_TYPE]: Supplied options is not an object.
at Message.delete (C:\Users\---\Desktop\Test\node_modules\discord.js\src\structures\Message.js:501:44)
at Client.<anonymous> (C:\Users\---\Desktop\Test\index.js:51:17)
at Client.emit (events.js:310:20)
at MessageCreateAction.handle (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
at WebSocketShard.onPacket (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
at WebSocketShard.onMessage (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
at WebSocket.onMessage (C:\Users\---\Desktop\Test\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:310:20) {
[Symbol(code)]: 'INVALID_TYPE'
}
Run Code Online (Sandbox Code Playgroud)
我也试过message.delete(1000),但我收到一条错误消息,告诉我消息未定义。
当我删除试图删除消息的代码时,该程序会起作用。