mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Fix VN mode on groups where character is not found in the list.
This commit is contained in:
@ -78,7 +78,6 @@ async function updateVisualNovelMode(name, expression) {
|
|||||||
async function visualNovelRemoveInactive(container) {
|
async function visualNovelRemoveInactive(container) {
|
||||||
const context = getContext();
|
const context = getContext();
|
||||||
const group = context.groups.find(x => x.id == context.groupId);
|
const group = context.groups.find(x => x.id == context.groupId);
|
||||||
const members = group.members;
|
|
||||||
const removeInactiveCharactersPromises = [];
|
const removeInactiveCharactersPromises = [];
|
||||||
|
|
||||||
// remove inactive characters after 1 second
|
// remove inactive characters after 1 second
|
||||||
@ -87,7 +86,7 @@ async function visualNovelRemoveInactive(container) {
|
|||||||
const element = $(current);
|
const element = $(current);
|
||||||
const avatar = element.data('avatar');
|
const avatar = element.data('avatar');
|
||||||
|
|
||||||
if (!members.includes(avatar) || group.disabled_members.includes(avatar)) {
|
if (!group.members.includes(avatar) || group.disabled_members.includes(avatar)) {
|
||||||
element.fadeOut(250, () => {
|
element.fadeOut(250, () => {
|
||||||
element.remove();
|
element.remove();
|
||||||
resolve();
|
resolve();
|
||||||
@ -106,13 +105,12 @@ async function visualNovelRemoveInactive(container) {
|
|||||||
async function visualNovelSetCharacterSprites(container, name, expression) {
|
async function visualNovelSetCharacterSprites(container, name, expression) {
|
||||||
const context = getContext();
|
const context = getContext();
|
||||||
const group = context.groups.find(x => x.id == context.groupId);
|
const group = context.groups.find(x => x.id == context.groupId);
|
||||||
const members = group.members;
|
|
||||||
const labels = await getExpressionsList();
|
const labels = await getExpressionsList();
|
||||||
|
|
||||||
const createCharacterPromises = [];
|
const createCharacterPromises = [];
|
||||||
const setSpritePromises = [];
|
const setSpritePromises = [];
|
||||||
|
|
||||||
for (const avatar of members) {
|
for (const avatar of group.members) {
|
||||||
const isDisabled = group.disabled_members.includes(avatar);
|
const isDisabled = group.disabled_members.includes(avatar);
|
||||||
|
|
||||||
// skip disabled characters
|
// skip disabled characters
|
||||||
@ -121,6 +119,11 @@ async function visualNovelSetCharacterSprites(container, name, expression) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const character = context.characters.find(x => x.avatar == avatar);
|
const character = context.characters.find(x => x.avatar == avatar);
|
||||||
|
|
||||||
|
if (!character) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
let spriteFolderName = character.name;
|
let spriteFolderName = character.name;
|
||||||
const avatarFileName = getSpriteFolderName({ original_avatar: character.avatar });
|
const avatarFileName = getSpriteFolderName({ original_avatar: character.avatar });
|
||||||
const expressionOverride = extension_settings.expressionOverrides.find((e) =>
|
const expressionOverride = extension_settings.expressionOverrides.find((e) =>
|
||||||
@ -177,9 +180,8 @@ async function visualNovelSetCharacterSprites(container, name, expression) {
|
|||||||
async function visualNovelUpdateLayers(container) {
|
async function visualNovelUpdateLayers(container) {
|
||||||
const context = getContext();
|
const context = getContext();
|
||||||
const group = context.groups.find(x => x.id == context.groupId);
|
const group = context.groups.find(x => x.id == context.groupId);
|
||||||
const members = group.members;
|
|
||||||
const recentMessages = context.chat.map(x => x.original_avatar).filter(x => x).reverse().filter(onlyUnique);
|
const recentMessages = context.chat.map(x => x.original_avatar).filter(x => x).reverse().filter(onlyUnique);
|
||||||
const filteredMembers = members.filter(x => !group.disabled_members.includes(x));
|
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) => recentMessages.indexOf(b) - recentMessages.indexOf(a));
|
||||||
|
|
||||||
const setLayerIndicesPromises = [];
|
const setLayerIndicesPromises = [];
|
||||||
|
Reference in New Issue
Block a user