From 7532882c35d92f99810b1d980b88a9aefb824da0 Mon Sep 17 00:00:00 2001 From: Cohee Date: Wed, 7 Jun 2023 00:22:34 +0300 Subject: [PATCH] Fix waifu stacking logic --- public/scripts/extensions/expressions/index.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/public/scripts/extensions/expressions/index.js b/public/scripts/extensions/expressions/index.js index f98ed385f..d3510a91c 100644 --- a/public/scripts/extensions/expressions/index.js +++ b/public/scripts/extensions/expressions/index.js @@ -182,7 +182,22 @@ async function visualNovelUpdateLayers(container) { const group = context.groups.find(x => x.id == context.groupId); const recentMessages = context.chat.map(x => x.original_avatar).filter(x => x).reverse().filter(onlyUnique); const filteredMembers = group.members.filter(x => !group.disabled_members.includes(x)); - const layerIndices = filteredMembers.slice().sort((a, b) => recentMessages.indexOf(b) - recentMessages.indexOf(a)); + const layerIndices = filteredMembers.slice().sort((a, b) => { + const aRecentIndex = recentMessages.indexOf(a); + const bRecentIndex = recentMessages.indexOf(b); + const aFilteredIndex = filteredMembers.indexOf(a); + const bFilteredIndex = filteredMembers.indexOf(b); + + if (aRecentIndex !== -1 && bRecentIndex !== -1) { + return bRecentIndex - aRecentIndex; + } else if (aRecentIndex !== -1) { + return 1; + } else if (bRecentIndex !== -1) { + return -1; + } else { + return aFilteredIndex - bFilteredIndex; + } + }); const setLayerIndicesPromises = [];