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

时间:2018-06-29 08:44:48

标签: username discord discord.js id

我有:bot.users.get(id),但是当用户离开服务器时会弹出错误。如果用户不在服务器上,我能否以不同的方式获取具有ID的用户名? 我有统计资料。我正在从用户ID数据库下载,并用其名称替换ID,但是如果用户离开服务器,则会出现错误,因为没有这样的用户。我该怎么办?

2 个答案:

答案 0 :(得分: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 :(得分: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.
});

希望我仍然帮助您。 〜Q