Fix activatePooledorder()
| @@ -882,7 +882,7 @@ async function generateGroupWrapper(by_auto_mode, type = null, params = {}) { | |||
| 882 | activatedMembers = activateListOrder(enabledMembers); | 882 | activatedMembers = activateListOrder(enabledMembers); |
| 883 | } | 883 | } |
| 884 | else if (activationStrategy === group_activation_strategy.POOLED) { | 884 | else if (activationStrategy === group_activation_strategy.POOLED) { |
| 885 | activatedMembers = activatePooledOrder(enabledMembers, lastMessage); | 885 | activatedMembers = activatePooledOrder(enabledMembers, lastMessage, isUserInput); |
| 886 | } | 886 | } |
| 887 | else if (activationStrategy === group_activation_strategy.MANUAL && !isUserInput) { | 887 | else if (activationStrategy === group_activation_strategy.MANUAL && !isUserInput) { |
| 888 | activatedMembers = shuffle(enabledMembers).slice(0, 1).map(x => characters.findIndex(y => y.avatar === x)).filter(x => x !== -1); | 888 | activatedMembers = shuffle(enabledMembers).slice(0, 1).map(x => characters.findIndex(y => y.avatar === x)).filter(x => x !== -1); |
| @@ -1030,16 +1030,17 @@ function activateListOrder(members) { | |||
| 1030 | * Activate group members based on the last message. | 1030 | * Activate group members based on the last message. |
| 1031 | * @param {string[]} members List of member avatars | 1031 | * @param {string[]} members List of member avatars |
| 1032 | * @param {Object} lastMessage Last message | 1032 | * @param {Object} lastMessage Last message |
| 1033 | * @param {boolean} isUserInput Whether the user has input text | ||
| 1033 | * @returns {number[]} List of character ids | 1034 | * @returns {number[]} List of character ids |
| 1034 | */ | 1035 | */ |
| 1035 | function activatePooledOrder(members, lastMessage) { | 1036 | function activatePooledOrder(members, lastMessage, isUserInput) { |
| 1036 | /** @type {string} */ | 1037 | /** @type {string} */ |
| 1037 | let activatedMember = null; | 1038 | let activatedMember = null; |
| 1038 | /** @type {string[]} */ | 1039 | /** @type {string[]} */ |
| 1039 | const spokenSinceUser = []; | 1040 | const spokenSinceUser = []; |
| 1040 | 1041 | ||
| 1041 | for (const message of chat.slice().reverse()) { | 1042 | for (const message of chat.slice().reverse()) { |
| 1042 | if (message.is_user) { | 1043 | if (message.is_user || isUserInput) { |
| 1043 | break; | 1044 | break; |
| 1044 | } | 1045 | } |
| 1045 | 1046 | ||