好吧,所以我正在为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 )}`);
},
};
请忽略顶部的node命令,我在为斜杠命令添加新命令时往往会忘记添加node。
尝试更改${interaction.user.username}对于昵称,提及等导致:
undefined rolled 44
undefined rolled 55
etc
而不是用户名或@mention
在几个选项上,我得到了返回:
function userMention(userId) {
return <@${userId}>;
} rolled 5
如果有人能给我任何提示,我会很感激,我很确定是${interaction.user.username}这是我的问题。
您正在尝试使用无效的${interaction.user.username}
,并且总是会给您undefined
,因此要提到某人,您必须使用interaction.member.user
和用户名:interaction.member.user.username
(docs)