首页 > 解决方案 > 尝试根据昵称/显示名称获取成员。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}`);

标签: javascriptdiscord.js

解决方案


看起来您的代码的某些部分没有执行。您需要将所有代码放入.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()函数并在它之后执行您的代码!


推荐阅读