首页 > 解决方案 > 尝试针对当前用户选择一个随机用户以匹配两者具有相同的角色

问题描述

我目前正在尝试为我的不和谐代码创建某种匹配命令。

前半部分很好,但后半部分让我很头疼。例如,为了解释我希望代码如何工作,有许多用户具有相同的角色,并且使用此命令,我希望它选择两个用户。一个是我(使用命令的用户),另一个是列表中的随机数。

我得到了它的工作,但有时我可能会被选为第二个成员,如果可能的话,我想将自己排除在列表之外。考虑一下我自己寻找随机决斗。

选择成功后,该命令将删除队列角色并添加新的匹配角色。我希望我的解释清楚。提前致谢!

client.on("message", msg=> {
  if(msg.content.toLowerCase() === "!queuepvp") {
    const pvpqueue = ['713765272162402355'];
    let membersList = msg.guild.members.filter(member => member.roles.some(role => pvpqueue.includes(role.id)));
    console.log(membersList.size);
    if(membersList.size < 2) {
      msg.reply('Not enough PVP seekers in queue.');
      return;
    }
    else{
    let randMembers = membersList.random(1);
    let firstMember = msg.member;
    let secondMember = randMembers[1];
    if (!secondMember === msg.member) {
      msg.reply("You are matched up against " + secondMember + "!")
      firstMember.addRole('713765226495082496');
      secondMember.addRole('713765226495082496');
      firstMember.removeRole('713765272162402355');
      secondMember.removeRole('713765272162402355');
  }}}

标签: javascriptrandomdiscord.jsmembermatchmaking

解决方案


msg.member.id经过无数次试验和错误,我设法确定了这一点。


推荐阅读