与提及的用户进行命令回复

时间:2020-05-25 14:29:13

标签: javascript discord discord.js

所以我试图发出一个拥抱命令。我希望它像“ / hugs @user”一样使用,并且机器人回复“ @author向@user发送了一个拥抱!”。当我使用下面的代码时,我只是将其设置为尝试与所提到的用户进行回复,但是它不起作用。我也尝试将其设置为变量,并将“ message.mentions.users.first()”也放入变量中。经过我的查询后,它似乎对其他人有用,但由于某种原因,没有任何东西对我有用。机器人在提及用户后完全不回复。也不会弹出错误。

    if (words == `${prefix}hugs`) {
        message.channel.send(`<@${message.mentions.users.first().id}>`);
    }

2 个答案:

答案 0 :(得分:0)

if (words == `${prefix}hugs`) {
    message.channel.send(`${message.author} sent a hug to ${message.mentions.members.first()}`);
}

您不必获取ID,只需使用该成员即可。它将返回消息中提到的第一个成员。

答案 1 :(得分:0)

因此,代码在作为命令文件使用时有效,但由于某些原因,仅允许一个人使用该命令。我已经删除了文件并重写了文件,更改了名称以及所有内容。这就是为什么我最终将其放在main函数中的原因,因为它出于某种原因仅允许一个用户使用该命令。似乎第一个使用它的人是唯一被允许使用它的人。有没有一种方法可以擦除该内存或某些东西,因为它可能来自先前混乱的代码?

这是我当前的新代码

module.exports = {
    name: 'hug',
    description: 'Used to hug everyone or mention a user to hug them specifically.',
    execute(message,args) {
        args = message.mentions.users.size;

        if (!args) {
            message.delete();
            return message.channel.send(`${message.author} gives a big ol' hug to everyone!`);
        }
        else {
            message.delete();
            return message.channel.send(`${message.author} sends love to ${message.mentions.users.first()} with a hug!`);
        }
    },
};