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