无法让 Discord.js 在命令中提及用户

Posted

技术标签:

【中文标题】无法让 Discord.js 在命令中提及用户【英文标题】:Cannot Get Discord.js to Mention User in Command 【发布时间】:2021-12-07 20:20:42 【问题描述】:

好的,所以我正在为 Discord.js v13 制作一个 d100 斜杠命令,该应用程序几乎可以完美运行我已经尝试了一些方法,但遇到了问题。机器人给出未经修改的用户名,没有提及和忽略昵称,而不是昵称。

这是我最接近目标的一次(@提及昵称的命令)

 //Remember to run " node deploy-commands.js " to register your commands!


    const  SlashCommandBuilder  = require('@discordjs/builders');
    
    module.exports = 
        data: new SlashCommandBuilder()
            .setName('100')
            .setDescription('rolls a 100'),
        async execute(interaction) 
            await interaction.reply(`$interaction.user.username rolled $Math.round(Math.random() *100 )`);
        ,
    ;

请忽略顶部的节点命令我在为斜线命令添加新命令时往往会忘记节点。

尝试更改昵称、提及等的 $interaction.user.username 会导致:

undefined rolled 44
undefined rolled 55
etc

而不是用户名或@提及

在几个选项上我得到了回报:

function userMention(userId) 
    return <@$userId>;
 rolled 5

如果有人能给我任何提示,我将不胜感激,我很确定 $interaction.user.username 是我的问题。

【问题讨论】:

【参考方案1】:

您正在尝试使用$interaction.user.username,它是无效的,并且总是会给您undefined,所以要提到某人,您必须使用interaction.member.user 和用户名:interaction.member.user.username (docs)

【讨论】:

不,这是完全有效的 - docs interaction.member.user 是我需要的,顺便说一句 interaction.userinteraction.member.user 两者工作的总体问题是我的代码中的 .username 。谢谢你,现在我需要它来工作

以上是关于无法让 Discord.js 在命令中提及用户的主要内容,如果未能解决你的问题,请参考以下文章

否则代码无法正常工作 discord.js

discord.js 如何在不提及已记录用户的情况下记录用户名以供将来使用?

如何提及使用 Chat Discord.JS 发送消息的用户?

我如何在 discord.js 中获得提及用户的用户名

Discord.js:机器人应该提到执行命令的用户

如何让 discord.js 机器人在不包含前缀和命令名称的情况下重复用户的消息?