fosspill / FFXIV_Modding_Tool

FFXIV Modding Tool is the Cross-platform Commandline interface alternative for TexTools
https://ffmt.pwd.cat/
GNU General Public License v3.0
47 stars 4 forks source link

[FEATURE] Patch 5.4 Compatibility #227

Closed zeparu closed 3 years ago

zeparu commented 3 years ago

New patch came out today, modding tool does not work yet with new patch.

For me, fails right at creating index backups, heres the error message

ffmt b
Validating cache...
Unhandled exception. System.AggregateException: One or more errors occurred. (One or more errors occurred. (The given key '-32574' was not present in the dictionary.) (The given key '-32575' was not present in the dictionary.))
 ---> System.AggregateException: One or more errors occurred. (The given key '-32574' was not present in the dictionary.) (The given key '-32575' was not present in the dictionary.)
 ---> System.Collections.Generic.KeyNotFoundException: The given key '-32574' was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at xivModdingFramework.Items.Categories.Housing.<>c__DisplayClass5_0.<GetIndoorFurniture>b__1(Byte[] housingItem)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
   at System.Threading.Tasks.TaskReplicator.Replica`1.ExecuteAction(Boolean& yieldedBeforeCompletion)
   at System.Threading.Tasks.TaskReplicator.Replica.Execute()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure)
   at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
   at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException)
   at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, Action`1 body)
   at xivModdingFramework.Items.Categories.Housing.<>c__DisplayClass5_0.<GetIndoorFurniture>b__0()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location where exception was thrown ---
   at xivModdingFramework.Items.Categories.Housing.GetIndoorFurniture()
   at xivModdingFramework.Items.Categories.Housing.GetUncachedFurnitureList()
   at xivModdingFramework.Cache.XivCache.RebuildFurnitureCache()
   at xivModdingFramework.Cache.XivCache.<>c__DisplayClass30_0.<<RebuildCache>b__0>d.MoveNext()
 ---> (Inner Exception #1) System.Collections.Generic.KeyNotFoundException: The given key '-32575' was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at xivModdingFramework.Items.Categories.Housing.<>c__DisplayClass5_0.<GetIndoorFurniture>b__1(Byte[] housingItem)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
   at System.Threading.Tasks.TaskReplicator.Replica`1.ExecuteAction(Boolean& yieldedBeforeCompletion)
   at System.Threading.Tasks.TaskReplicator.Replica.Execute()<---

   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at xivModdingFramework.Cache.XivCache.RebuildCache(CacheRebuildReason reason)
   at xivModdingFramework.Cache.XivCache.SetGameInfo(GameInfo gameInfo, Boolean enableCacheWorker)
   at xivModdingFramework.Cache.XivCache.SetGameInfo(DirectoryInfo gameDirectory, XivLanguage language, Int32 dxMode, Boolean validateCache, Boolean enableCacheWorker)
   at FFXIV_Modding_Tool.Commandline.Arguments.CheckGameDirectory()
   at FFXIV_Modding_Tool.Commandline.Arguments.ActionRequirementsChecker(String requestedAction)
   at FFXIV_Modding_Tool.Commandline.Arguments.ReadArguments(String[] args)
   at FFXIV_Modding_Tool.Commandline.Arguments.ArgumentHandler(String[] args)
   at FFXIV_Modding_Tool.MainClass.Main(String[] args)
/usr/bin/ffmt: line 3: 17076 Aborted                 (core dumped) $INSTALL_DIR/ffmt "$@"
shinnova commented 3 years ago

Could you please test this build?

zeparu commented 3 years ago

tested it

i tested backing up indexes (worked) installing mods (with and without wizard) (worked) checked ingame to see if they applied properly (worked)

shinnova commented 3 years ago

Thank you very much. The latest release now has patch 5.4 support!