karashiiro / TextToTalk

Chat TTS plugin for Dalamud. Has support for triggers/exclusions, several TTS providers, and more!
MIT License
46 stars 30 forks source link

Can't update/install 1.18.1 #132

Closed johnysandels closed 1 year ago

johnysandels commented 1 year ago

Error found in the dalamud log

2022-12-21 21:28:45.322 -08:00 [ERR] [LOCALPLUGIN] Error while loading TextToTalk
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> Newtonsoft.Json.JsonSerializationException: Error converting value 2 to type 'System.Collections.Generic.SortedSet`1[System.Int32]'. Path 'VoicePresetConfig.UngenderedVoicePresets.System', line 249, position 17.
 ---> System.ArgumentException: Could not cast or convert from System.Int64 to System.Collections.Generic.SortedSet`1[System.Int32].
   at Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(Object value, Type initialType, Type targetType)
   at Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast(Object initialValue, CultureInfo culture, Type targetType)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
   --- End of inner exception stack trace ---
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at Dalamud.Configuration.PluginConfigurations.LoadForType[T](String pluginName) in C:\goatsoft\companysecrets\dalamud\Configuration\PluginConfigurations.cs:line 105
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at Dalamud.Plugin.DalamudPluginInterface.GetPluginConfig() in C:\goatsoft\companysecrets\dalamud\Plugin\DalamudPluginInterface.cs:line 320
   at TextToTalk.TextToTalk..ctor(DalamudPluginInterface pi, KeyState keyState, ChatGui chat, Framework framework, ClientState clientState, GameGui gui, DataManager data, ObjectTable objects, CommandManager commandManager, SigScanner sigScanner) in K:/arashiiro/TextToTalk.cs:line 90
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeConstructorInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Dalamud.IoC.Internal.ServiceContainer.CreateAsync(Type objectType, Object[] scopedObjects) in C:\goatsoft\companysecrets\dalamud\IoC\Internal\ServiceContainer.cs:line 107
   at Dalamud.Plugin.Internal.Types.LocalPlugin.LoadAsync(PluginLoadReason reason, Boolean reloading) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\LocalPlugin.cs:line 447
   at Dalamud.Plugin.Internal.PluginManager.LoadPluginAsync(FileInfo dllFile, LocalPluginManifest manifest, PluginLoadReason reason, Boolean isDev, Boolean isBoot, Boolean doNotLoad) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\PluginManager.cs:line 938
karashiiro commented 1 year ago

Might need to delete/manually fix the additional config file at %AppData%\XIVLauncher\pluginConfigs\TextToTalk\VoicePresets.json, per #130.

jordguitar commented 1 year ago

Deleting TextToTalk.json in %appdata%\XIVLauncher\pluginConfigs along with the VoicePresets.json file seems to let it install now.

karashiiro commented 1 year ago

This exception stack doesn't make sense to me, it references this config entry: https://github.com/karashiiro/TextToTalk/blob/6f3f26e3342e6e2f095c3e20b0aa7bbedca97d0a/src/TextToTalk/PluginConfiguration.cs#L126

This shouldn't be considered at all when loading the config.

johnysandels commented 1 year ago

I deleted textotalk.json and it works now

dedren commented 1 year ago

Came here to see if this was just me. I will try deleting texttotalk.json

dedren commented 1 year ago

Came here to see if this was just me. I will try deleting texttotalk.json

Deleting texttotalk.json did NOT work for me. Upon restarting I could not enable the plugin and after having the plugin delete itself and restarting, I still could not install the plugin. Deleting VoicePresets.json made the difference and now I am back to what has become a requirement for questing!

Eorzean commented 1 year ago

It seems that an extra setting in the existing VoicePresets.json was causing the problem.

Example of configuration that fails to start Fails_VoicePresets.json.txt

Deleted and regenerated settings VoicePresets.json VoicePresets.json.txt

karashiiro commented 1 year ago

I don't have a game to test with until Monday night, but if someone can fix this before then I'll create a release for it.

decoytrix commented 1 year ago

yeah, deleting texttotalk.json & VoicePresets.json was also required for me.
Fortunately I had the settings info I needed in the same folder to save time because it will wipe all your settings.

karashiiro commented 1 year ago

Should be fixed with v1.18.2

johnysandels commented 1 year ago

Re-opened wrong issue