Groups: add 'manual' reply strategy
| @@ -5055,6 +5055,7 @@ | ||
| 5055 | 5055 | <span data-i18n="Group reply strategy">Group reply strategy</span> |
| 5056 | 5056 | </label> |
| 5057 | 5057 | <select id="rm_group_activation_strategy"> |
| 5058 | + <option value="2" data-i18n="Manual">Manual</option> | |
| 5058 | 5059 | <option value="0" data-i18n="Natural order">Natural order</option> |
| 5059 | 5060 | <option value="1" data-i18n="List order">List order</option> |
| 5060 | 5061 | </select> |
| @@ -110,6 +110,7 @@ let newGroupMembers = []; | ||
| 110 | 110 | export const group_activation_strategy = { |
| 111 | 111 | NATURAL: 0, |
| 112 | 112 | LIST: 1, |
| 113 | + MANUAL: 2, | |
| 113 | 114 | }; |
| 114 | 115 | |
| 115 | 116 | export const group_generation_mode = { |
| @@ -852,6 +853,9 @@ async function generateGroupWrapper(by_auto_mode, type = null, params = {}) { | ||
| 852 | 853 | else if (activationStrategy === group_activation_strategy.LIST) { |
| 853 | 854 | activatedMembers = activateListOrder(enabledMembers); |
| 854 | 855 | } |
| 856 | + else if (activationStrategy === group_activation_strategy.MANUAL && !isUserInput) { | |
| 857 | + activatedMembers = shuffle(enabledMembers).slice(0, 1).map(x => characters.findIndex(y => y.avatar === x)).filter(x => x !== -1); | |
| 858 | + } | |
| 855 | 859 | |
| 856 | 860 | if (activatedMembers.length === 0) { |
| 857 | 861 | //toastr.warning('All group members are disabled. Enable at least one to get a reply.'); |