Discord.js 将数组中的 ID 替换为与该 ID 匹配的用户的昵称?
Posted
技术标签:
【中文标题】Discord.js 将数组中的 ID 替换为与该 ID 匹配的用户的昵称?【英文标题】:Discord.js replace ID inside array with the nickname of the user matching that ID? 【发布时间】:2020-05-03 17:57:23 【问题描述】:if (message.content === '.mutelist')
var muteIdsList = muteIds.slice();
var memberList = message.guild.members.array();
var convertList = muteIdsList.indexOf(`$memberList`);
console.log(`$memberList`);
if (convertList !== -1)
muteIdsList[convertList] = `$guild.member.nickname`
console.log('Match!')
message.channel.send(`$muteIdsList`)
.catch(function(err)
if (muteIds.length >= 0)
message.channel.send('Nobody is being muted at this time!');
else
message.channel.send('There was an unknown error that occured, try running the command again!');
)
到目前为止似乎没有任何效果,memberList 通过获取公会中的所有用户 ID 来满足我的要求,但将它们显示为 而不仅仅是普通 ID,因此它不匹配任何项目在我拥有的数组内。我想要发生的事情是,我制作了一个数组的副本,用于保存要静音的人的 ID,然后获取公会中的所有 ID,遍历复制的数组并找到所有匹配项,然后替换 ID在复制的数组中使用与该特定 ID 匹配的用户的昵称。
【问题讨论】:
尽量将您的问题描述减少到最少的测试用例和问题,谢谢。 我给出的描述在没有正确解释问题的情况下尽可能简单。 【参考方案1】:您可以使用 message.guild.members 访问成员到昵称的映射。
var muteIdsList = muteIds.slice(); // [1]
var memberList = message.guild.members; // 1: nickname1, 2: nickname2
var mutedNicknameList = muteIdsList.map(x => memberList[x]); // [nickname1]
【讨论】:
数据只是填充了人们通过运行以 ID 作为参数的命令添加的任何 ID 的数组,仅此而已,但我将如何创建数组的映射并设置那些带有昵称的 ID 的值? 您能调试一下并告诉我您从不和谐中获得的每个列表的外观吗?我仍然对您从哪里获得昵称列表以及该数据的外观感到困惑。 我没有得到昵称列表,我得到的是公会中所有用户 ID 的列表,并将它们与数组中的 ID 匹配。 如果您没有获得昵称,您将如何将用户的 id 与他们的昵称匹配? 这就是我不太确定的,甚至是如何去匹配 ID 并获得昵称。以上是关于Discord.js 将数组中的 ID 替换为与该 ID 匹配的用户的昵称?的主要内容,如果未能解决你的问题,请参考以下文章
如何将服务器中每个用户的 id 放入数组中? (Discord.js v12)