我有:bot.users.get(id),但是当用户离开服务器时会弹出错误。如果用户不在服务器上,我能否以不同的方式获取具有ID的用户名? 我有统计资料。我正在从用户ID数据库下载,并用其名称替换ID,但是如果用户离开服务器,则会出现错误,因为没有这样的用户。我该怎么办?
答案 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)
很抱歉,迟到了,就像从字面上看一样。您可以通过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.
});
希望我仍然帮助您。 〜Q