代码之家  ›  专栏  ›  技术社区  ›  BigBullet

只有当消息来自discord.js v14中的DM时,我才能如何回复消息?

  •  0
  • BigBullet  · 技术社区  · 1 年前

    我希望我的机器人只在消息通过DM发送时才回复,而不是在任何频道的服务器上。

    这些是我的意图和偏爱

    const client = new Client({
      intents: [
        IntentsBitField.Flags.Guilds,
        IntentsBitField.Flags.GuildMembers,
        IntentsBitField.Flags.GuildMessages,
        IntentsBitField.Flags.MessageContent,
        IntentsBitField.Flags.DirectMessages
      ],partials:[
        Partials.Channel,
        Partials.Message
      ]
    });
    

    这是我试图用来读取DM的代码。我从教程中得到了它,但当我记录消息时,我找不到频道对象。

    client.on('messageCreate', async (message) => {
        
        // Check if the message is a direct message (DM)
        if (message.channel.type === 'DM') {
          message.author.send('Message Received');
        }
      });  
    

    有什么想法吗?

    当我发送dm时,我不会收到“Message Received”消息,但如果我删除dm验证,我会收到回复。

    1 回复  |  直到 1 年前
        1
  •  0
  •   Elitezen    1 年前

    message.guild 将是 null 在DM内部;这是检查消息是否来自DM的一种方法。

    if (message.guild === null) return;