| 1051 | const haveNotSpoken = members.filter(x => !spokenSinceUser.includes(x)); | 1053 | const haveNotSpoken = members.filter(x => !spokenSinceUser.includes(x)); |
| 1052 | | 1054 | |
| 1053 | if (haveNotSpoken.length) { | 1055 | if (haveNotSpoken.length) { |
| 1054 | activatedMembers.push(haveNotSpoken[Math.floor(Math.random() * haveNotSpoken.length)]); | 1056 | activatedMember = haveNotSpoken[Math.floor(Math.random() * haveNotSpoken.length)]; |
| 1055 | } | 1057 | } |
| 1056 | | 1058 | |
| 1057 | if (activatedMembers.length === 0) { | 1059 | if (activatedMember === null) { |
| 1058 | const lastMessageAvatar = members.length > 1 && lastMessage && !lastMessage.is_user && lastMessage.original_avatar; | 1060 | const lastMessageAvatar = members.length > 1 && lastMessage && !lastMessage.is_user && lastMessage.original_avatar; |
| 1059 | const randomPool = lastMessageAvatar ? members.filter(x => x !== lastMessage.original_avatar) : members; | 1061 | const randomPool = lastMessageAvatar ? members.filter(x => x !== lastMessage.original_avatar) : members; |
| 1060 | activatedMembers.push(randomPool[Math.floor(Math.random() * randomPool.length)]); | 1062 | activatedMember = randomPool[Math.floor(Math.random() * randomPool.length)]; |
| 1061 | } | 1063 | } |
| 1062 | | 1064 | |
| 1063 | const memberIds = activatedMembers | 1065 | const memberId = characters.findIndex(y => y.avatar === activatedMember); |
| 1064 | .map((x) => characters.findIndex((y) => y.avatar === x)) | 1066 | return memberId !== -1 ? [memberId] : []; |
| 1065 | .filter((x) => x !== -1); | | |
| 1066 | return memberIds; | | |
| 1067 | } | 1067 | } |
| 1068 | | 1068 | |
| 1069 | function activateNaturalOrder(members, input, lastMessage, allowSelfResponses, isUserInput) { | 1069 | function activateNaturalOrder(members, input, lastMessage, allowSelfResponses, isUserInput) { |