我有:bot.users.get(id)但是当用户离开服务器时会弹出一个错误。如果用户不在服务器上,我可以获得具有不同ID的用户名吗?我有统计数据。我从User Id数据库下载,我正在用它的名字替换ID,但是如果用户已离开服务器,则会出现错误,因为没有这样的用户。我能做什么?
由于client.users
仅存储缓存用户,因此您无法从那里以可靠的方式检索其用户名。
免责声明:这种方法效率很低,但discord.js还没有针对这种工作。如果你想让它变得更容易,只需写下Unknown user (client_id)
如果您无法从用户列表中获取用户名,则可以尝试使用消息:在公会的每个频道上使用channel.fetchMessages()
,直到找到message.author.id == your_id
的消息,当您找到它时,您可以使用message.author.username
获取用户名
还有另一种解决方案:自我机器人。请记住,Discord本身不支持这个,并可能导致a permanent ban for the account you're using。话虽如此,如果您使用自我机器人,您可以使用TextChannel.search()
方法快速查找具有您的作者ID的消息,然后从作者获取用户名。
抱歉迟到了,就像字面意思一样。您可以通过UserResolvable
和Client#fetchUser(<UserResolvable>);
执行请求从Discord获取用户的请求。
在实践中,代码应该如下所示;
const Discord = require("discord.js");
const Client = new Discord.Client();
Client.login("YoUr.nIcE.toKe.n");
Client.on("ready", function () { // Should do that when the client is ready.
const User = Client.fetchUser("123456789012345678");
console.log(User); // Some user object.
});
希望我能帮助你。 〜流量