mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	Remove embedded lorebook when unselecting it in UI
This commit is contained in:
		| @@ -2493,10 +2493,10 @@ | |||||||
|                                                 <select id="char-management-dropdown"> |                                                 <select id="char-management-dropdown"> | ||||||
|                                                     <option value="default" disabled selected>More...</option> |                                                     <option value="default" disabled selected>More...</option> | ||||||
|                                                     <option id="set_character_world"> |                                                     <option id="set_character_world"> | ||||||
|                                                         <i class="fa-solid fa-globe"></i> Link to World Info |                                                         Link to World Info | ||||||
|                                                     </option> |                                                     </option> | ||||||
|                                                     <option id="import_character_info"> |                                                     <option id="import_character_info"> | ||||||
|                                                         <i class="fa-solid fa-file-import"></i> Import Card Lore |                                                         Import Card Lore | ||||||
|                                                     </option> |                                                     </option> | ||||||
|                                                     <option id="set_chat_scenario"> |                                                     <option id="set_chat_scenario"> | ||||||
|                                                         Scenario Override |                                                         Scenario Override | ||||||
|   | |||||||
| @@ -5521,11 +5521,12 @@ function openCharacterWorldPopup() { | |||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     function onSelectCharacterWorld() { |     async function onSelectCharacterWorld() { | ||||||
|         const value = $('.character_world_info_selector').find('option:selected').val(); |         const value = $('.character_world_info_selector').find('option:selected').val(); | ||||||
|         const worldIndex = value !== '' ? Number(value) : NaN; |         const worldIndex = value !== '' ? Number(value) : NaN; | ||||||
|         const name = !isNaN(worldIndex) ? world_names[worldIndex] : ''; |         const name = !isNaN(worldIndex) ? world_names[worldIndex] : ''; | ||||||
|  |  | ||||||
|  |         const previousValue = $('#character_world').val(); | ||||||
|         $('#character_world').val(name); |         $('#character_world').val(name); | ||||||
|  |  | ||||||
|         console.debug('Character world selected:', name); |         console.debug('Character world selected:', name); | ||||||
| @@ -5533,7 +5534,23 @@ function openCharacterWorldPopup() { | |||||||
|         if (menu_type == 'create') { |         if (menu_type == 'create') { | ||||||
|             create_save.world = name; |             create_save.world = name; | ||||||
|         } else { |         } else { | ||||||
|             createOrEditCharacter(); |             if (previousValue && !name) { | ||||||
|  |                 try { | ||||||
|  |                     // Dirty hack to remove embedded lorebook from character JSON data. | ||||||
|  |                     const data = JSON.parse($('#character_json_data').val()); | ||||||
|  |  | ||||||
|  |                     if (data?.data?.character_book) { | ||||||
|  |                         data.data.character_book = undefined; | ||||||
|  |                     } | ||||||
|  |  | ||||||
|  |                     $('#character_json_data').val(JSON.stringify(data)); | ||||||
|  |                     toastr.info('Embedded lorebook will be removed from this character.'); | ||||||
|  |                 } catch { | ||||||
|  |                     console.error('Failed to parse character JSON data.'); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             await createOrEditCharacter(); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         setWorldInfoButtonClass(undefined, !!value); |         setWorldInfoButtonClass(undefined, !!value); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user