如何在用户离开公会后从客户端ID获取用户名

问题描述 投票:1回答:2

我有:bot.users.get(id)但是当用户离开服务器时会弹出一个错误。如果用户不在服务器上,我可以获得具有不同ID的用户名吗?我有统计数据。我从User Id数据库下载,我正在用它的名字替换ID,但是如果用户已离开服务器,则会出现错误,因为没有这样的用户。我能做什么?

username discord discord.js id
2个回答
1
投票

由于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的消息,然后从作者获取用户名。


1
投票

抱歉迟到了,就像字面意思一样。您可以通过UserResolvableClient#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.
});

希望我能帮助你。 〜流量

© www.soinside.com 2019 - 2024. All rights reserved.