javascript - 尝试根据昵称/显示名称获取成员。Discord.js BOT
问题描述
嗨,我想为成员获取用户指定的昵称并获取该成员并获取有关该用户的其他信息。现在我已经确认用户发送的 ARGS[0] 是正确的,但我收到了对匹配用户的 NULL 响应。不知道我错过了什么。谢谢
这是我当前的代码。只是想立即让比赛正常进行。我还需要考虑这个人是否没有昵称来检查用户名。或者认为 displayname 属性会更好。谢谢
if(command === "memberinfo") {
let sentNickname = args[0];
message.channel.send(`Sent Nickname: ${sentNickname}`);
const discordserver = client.guilds.get(DragonTS); // Define server to get information from
discordserver.fetchMembers() // Fetch guild members
.then() //.then(console.log)
.catch(console.error);
}
let matchedMember = discordserver.members.find(m => m.nickname === sentNickname);
message.channel.send(`Matched Member ${matchedMember}`);
解决方案
看起来您的代码的某些部分没有执行。您需要将所有代码放入.then()
:
if(command === "memberinfo") {
let sentNickname = args[0];
message.channel.send(`Sent Nickname: ${sentNickname}`);
const discordserver = client.guilds.get(DragonTS); // Define server to get information from
discordserver.fetchMembers() // Fetch guild members
.then((serverWithFetchedMembers) => {
let matchedMember = serverWithFetchedMembers.members.find(m => m.nickname === sentNickname);
message.channel.send(`Matched Member ${matchedMember}`);
}) //.then(console.log)
.catch(console.error);
}
它将等待该fetchMembers()
函数并在它之后执行您的代码!
推荐阅读
- c# - 无法在 RequestFilterAttribute 中获取请求正文
- android - 使用 PackagingOptions 的目的是什么?
- azure-databricks - Azure Databricks:尝试运行 Spline 来捕获 Spark 沿袭?
- python - 如何在线程中使用 win32com(Excel 应用程序)?
- google-cloud-platform - SSH 未连接到机器 (GCP)
- php - 如何选择字符串的第 n 个字符
- android - Android 12 Beta 无法使用 CustomTabsIntent 查看 PDF 链接
- sql - 尝试使用 Snowflake sql 将一列拆分为多列
- java - 如何从 bash 命令行执行 testng xml 文件?
- google-apps-script - 如何从网络应用程序获取域内的谷歌个人资料信息?谷歌应用脚本