首页 > 解决方案 > 每当发送 dm 时,discordjs 都会记录问题

问题描述

我有一个完整的日志系统,每当在服务器或机器人中完成各种事情时都会记录下来,其中一个是每当将 dm 发送到机器人时的日志。日志将包含作者 ID 和消息内容。问题在于记录消息内容。每当发送第二个 DM 时,机器人就会崩溃,但如果它是第一个 DM,则可以正常工作。机器人崩溃消息如下:https ://gyazo.com/5ad0b41648f83a855ac8c49fb220a612

但奇怪的是,我的字段不是空的:

bot.on('message', msg=>{
    const LogChannel = bot.channels.cache.get('712811824826941460');
    const LogEmbed = new Discord.MessageEmbed()
    .setColor('#606060')
    .setAuthor(msg.author.tag)
    .setDescription('DM Sent')
    .addField('Message', msg.content)
    .setTimestamp()
    if(msg.channel.type === 'dm')
    LogChannel.send(LogEmbed)
});

控制台认为它.addField('Message', msg.content)是空的,但正如你所看到的,它不是。请记住,它只会在第一个 DM 之后发送第二个 DM 后给我错误消息。有任何想法吗?

标签: discord.js

解决方案


没有Message.content属性。我猜你正在寻找Message.cleanContent

bot.on('message', msg=>{
    const LogChannel = bot.channels.cache.get('712811824826941460');
    const LogEmbed = new Discord.MessageEmbed()
    .setColor('#606060')
    .setAuthor(msg.author.tag)
    .setDescription('DM Sent')
    .addField('Message', msg.cleanContent)
    .setTimestamp()
    if(msg.channel.type === 'dm')
    LogChannel.send(LogEmbed)
});

推荐阅读