Allow activating chars with last message hidden on continue and quiet

ff39671018b3e857c2d72222ed4042d13c1f2d22

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +11 -5Ignore whitespace
public/scripts/group-chats.js+11 -5
@@ -870,14 +870,14 @@ async function generateGroupWrapper(by_auto_mode, type = null, params = {}) {
870870 if (params && typeof params.force_chid == 'number') {
871871 activatedMembers = [params.force_chid];
872872 } else if (type === 'quiet') {
873873 activatedMembers = activateSwipe(group.members, { allowSystem: true }).slice(0, 1);
874874
875875 if (activatedMembers.length === 0) {
876876 activatedMembers = activateListOrder(group.members.slice(0, 1));
877877 }
878878 }
879879 else if (type === 'swipe' || type === 'continue') {
880880 activatedMembers = activateSwipe(group.members, { allowSystem: type === 'continue' });
881881
882882 if (activatedMembers.length === 0) {
883883 toastr.warning(t`Deleted group member swiped. To get a reply, add them back to the group.`);
@@ -984,15 +984,21 @@ function activateImpersonate(members) {
984984/**
985985 * Activates a group member based on the last message.
986986 * @param {string[]} members Array of group member avatar ids
987+ * @param {Object} [options] Options object
988+ * @param {boolean} [options.allowSystem] Whether to allow system messages
987989 * @returns {number[]} Array of character ids
988990 */
989991function activateSwipe(members, { allowSystem = false } = {}) {
990992 let activatedNames = [];
991993 const lastMessage = chat[chat.length - 1];
992994
993- if (lastMessage.is_user || lastMessage.is_system || lastMessage.extra?.type === system_message_types.NARRATOR) {
995+ if (!lastMessage) {
996+ return [];
997+ }
998+
999+ if (lastMessage.is_user || (!allowSystem && lastMessage.is_system) || lastMessage.extra?.type === system_message_types.NARRATOR) {
9941000 for (const message of chat.slice().reverse()) {
9951001 if (message.is_user || (!allowSystem && message.is_system) || message.extra?.type === system_message_types.NARRATOR) {
9961002 continue;
9971003 }
9981004