Discord 机器人 - DirectMessage 命令

问题描述 投票:0回答:1

我正在用 JavaScript 编写一个 Discord 机器人。 我尝试制作在私信中工作的命令,但是当我在私信中执行命令时,机器人没有响应(就好像它没有检测到在 DM 中发送的消息一样)。这会阻止脚本的进度。

我在机器人启动时设置意图。

const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.DirectMessages
    ]
});

我尝试了“if (message.channel.type === 'DM')”

client.on('messageCreate', async message => {
    if (message.channel.type === 'DM' && message.content === '-hi') {
        try {
            await message.channel.send(':white_check_mark: | You have enabled the `-hi` command in server mode.');
        } catch (error) {
            console.error('error :', error);
        }
    }
});

我也尝试过“if (!message.guild)”

client.on('messageCreate', async message => {
    if (!message.guild && message.content === '-hi') {
        try {
            const user = message.author;
            await user.send(':white_check_mark: | You have enabled the `-hi` command in server mode.');
        } catch (error) {
            console.error('error :', error);
        }
    }
});
javascript discord discord.js command dm
1个回答
0
投票

您需要在您的意图中包含部分内容。

const client = new Client({
  intents: [
   ...
  ],
  partials: [
    Partials.Channel
  ]
})

您可以点击此处阅读有关部分的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.