diff --git a/public/index.html b/public/index.html index e3bf0c78b..45c7c5976 100644 --- a/public/index.html +++ b/public/index.html @@ -1005,12 +1005,16 @@
diff --git a/public/scripts/group-chats.js b/public/scripts/group-chats.js index a29f15caa..3638abe33 100644 --- a/public/scripts/group-chats.js +++ b/public/scripts/group-chats.js @@ -298,7 +298,7 @@ async function generateGroupWrapper(by_auto_mode, type=null) { } } - const activatedMembers = type !== "swipe" ? activateMembers(group.members, activationText, lastMessage) : activateSwipe(group.members); + const activatedMembers = type !== "swipe" ? activateMembers(group.members, activationText, lastMessage, group.allow_self_responses) : activateSwipe(group.members); // now the real generation begins: cycle through every character for (const chId of activatedMembers) { const generateType = type !== "swipe" ? "group_chat" : "swipe"; @@ -355,17 +355,22 @@ function activateSwipe(members) { return memberIds; } -function activateMembers(members, input, lastMessage) { +function activateMembers(members, input, lastMessage, allowSelfResponses) { let activatedNames = []; // prevents the same character from speaking twice let bannedUser = lastMessage && !lastMessage.is_user && lastMessage.name; + // ...unless allowed to do so + if (allowSelfResponses) { + bannedUser = undefined; + } + // find mentions (excluding self) if (input && input.length) { for (let inputWord of extractAllWords(input)) { for (let member of members) { - if (member == bannedUser) { + if (member === bannedUser) { continue; } @@ -380,7 +385,7 @@ function activateMembers(members, input, lastMessage) { // activation by talkativeness (in shuffled order, except banned) const shuffledMembers = shuffle([...members]); for (let member of shuffledMembers) { - if (member == bannedUser) { + if (member === bannedUser) { continue; } @@ -573,6 +578,7 @@ function select_group_chats(chat_id) { const groupHasMembers = !!$("#rm_group_members").children().length; $("#rm_group_submit").prop("disabled", !groupHasMembers); + $("#rm_group_allow_self_responses").prop("checked", group && group.allow_self_responses); // bottom buttons if (chat_id) { @@ -594,11 +600,24 @@ function select_group_chats(chat_id) { callPopup("