Discord.JS-如何从用户名获取用户ID?

Discord.JS-如何从用户名获取用户ID?,discord.js,Discord.js,有人能帮我从用户ID中检索用户名并用该ID向聊天室发送消息吗 if (message.content.startsWith(prefix)) { const [CMD_NAME, ...args] = message.content .trim() .substring(prefix.length) .split(/\s+/); if (CMD_NAME === "getid")

有人能帮我从用户ID中检索用户名并用该ID向聊天室发送消息吗

    if (message.content.startsWith(prefix)) {
        const [CMD_NAME, ...args] = message.content
          .trim()
          .substring(prefix.length)
          .split(/\s+/);

      if (CMD_NAME === "getid") {
        const getid1 = new MessageEmbed()
          .setDescription("❗️ | Please tag the member to retrieve the ID!")
          .setColor(10181046);
      if (args.length === 0) return message.reply(getid1);

        const username = client.guilds.cache.get('<GUILD ID>');
        const userid = client.users.cache.find(username => username.tag === 'Someone#1234').id
        message.channel.send(`${username} id is ${userid}`);

      }
    }

});
if(message.content.startsWith(前缀)){
const[CMD_NAME,…args]=message.content
.trim()
.substring(前缀.length)
.split(/\s+/);
如果(CMD_NAME==“getid”){
const getid1=new MessageEmbed()
.setDescription(“❗️ | 请标记成员以检索ID!”)
.setColor(10181046);
if(args.length==0)返回message.reply(getid1);
const username=client.guilds.cache.get(“”);
const userid=client.users.cache.find(username=>username.tag===“Someone#1234”).id
message.channel.send(`username}id为${userid}`);
}
}
});
当我键入命令“d!getid@Username”时,它会显示以下错误:

C:\Users\USER\Desktop\DiscordBotas\index.js:152 const userid=client.Users.cache.find(username=>username.tag===“Someone#1234”)。id类型错误:无法读取客户端未定义的属性“id”。(C:\Users\USER\Desktop\DiscordBotas\index.js:152:90)


您正在创建一个刚刚定义在实际lambda之上的变量的lambda,这可能会弄乱您的代码

const username=client.guilds.cache.get(“”)是错误的


如果您修复了用户ID上方的行,则获取用户ID可能会起作用。

您试图以错误的方式获取用户。首先,你为什么要尝试将用户标签与公会匹配?也许你认为guild.cache有用户?实际上,这是client.guilds.cache,其中只有公会,它返回的是公会,而不是用户。其次,要获得用户,您可以尝试以下方法:

const user=client.users.cache.find(u=>u.tag==='SomeUser#0000')
console.log(user.id);
下面是按ID获取用户的代码,但考虑到您已经可以访问该ID,这可能不会有帮助

const user=client.users.cache.get(“”);
console.log(用户);
此外,您还应该添加代码以查看是否未找到用户(客户端无法找到具有该条件的用户)。下面是一些代码来检查:

/。。。查找我输入的用户代码
if(!user)返回message.reply('找不到用户');
message.channel.send(user.id);

你能分享你的错误吗是的。当我键入命令“d!getid@Username”时,它向我显示以下错误:
C:\Users\USER\Desktop\DiscordBotas\index.js:152 const userid=client.Users.cache.find(Username=>Username.tag=='Someone#1234')。id类型错误:无法读取客户端上未定义的属性'id'。(C:\Users\USER\Desktop\DiscordBotas\index.js:152:90)
是的,但现在聊天中说“未定义的id是未定义的”,我也给自己加了标签,上面说找不到用户:/n没关系,问题解决了,谢谢,伙计们!另外,还有一种更快的方法来获取提到的用户的id,您可以定义args(使用message.content.split(“”),并执行以下代码:
var user=args[1].slice(2,(args[1].length-1));if(user.startsWith('!'){user=user.slice(1)}console.log(user);