0

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

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

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

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

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');
  }}}
4

2 回答 2

0

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

于 2020-05-25T07:38:25.733 回答
0

你可以过滤 randMembers 像 randMembers = membersList.fileter(member => member.member !== msg.member).random(1)

于 2020-05-24T07:56:24.613 回答