GithubHelp home page GithubHelp logo

fosspill / ffxiv_modding_tool Goto Github PK

View Code? Open in Web Editor NEW
48.0 7.0 4.0 4.63 MB

FFXIV Modding Tool is the Cross-platform Commandline interface alternative for TexTools

Home Page: https://ffmt.pwd.cat/

License: GNU General Public License v3.0

C# 99.70% Shell 0.30%
textools linux ffxiv final fantasy xiv modding modding-tools ffxiv-modding modpacks

ffxiv_modding_tool's Introduction

ffxiv_modding_tool's People

Contributors

allcontributors[bot] avatar dependabot-preview[bot] avatar dependabot[bot] avatar fosspill avatar shinnova avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ffxiv_modding_tool's Issues

[ISSUE] Problem checking functions broken on Mac

The program reports missing files and will not import mods due to it thinking that application is running (It is not and confirmed such)

When importing

mono FFXIV_Modding_Tool.exe mpi -t mod_file.ttmp
Checking backups before proceeding...
ERROR: One or more index files could not be found in /Users/johnd/.config/FFXIV_Modding_Tool/backups. Creating new ones or downloading them from the TexTools discord is recommended
Continue anyway? y/N
y
ERROR: Unable to import while the game is running.

Running a problem check

mono FFXIV_Modding_Tool.exe pc
Initializing problem check
Checking index dat values...
25%ERROR: There was an issue checking index dat counts
One or more errors occurred. (Could not find a part of the path "/Applications/FINAL FANTASY XIV ONLINE.app/Contents/SharedSupport/finalfantasyxiv/support/published_Final_Fantasy/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/game/sqpack/ffxiv/0a0000.win32.index".)
Checking index backups...
100%
Checking dat file...
100%
Checking modlist...
WARNING: No entries found in the modlist, skipping
Checking LoD settings...
100%

The following problems were found and resolved:
LoD turned off, as some mods have issues with it turned on

ERROR: The following problems could not be resolved:
Index backups for 010000 not found
Index backups for 040000 not found
Index backups for 060000 not found
Game directory is missing 060000.win32.dat1

Should I make this another ticket or follow here due to being both Mac related?

Originally posted by @hybridindie in #78 (comment)

[FEATURE] Use wizard selection logic for normal modpack imports

We should consider using the current wizard import logic for regular modpack imports when using the --custom flag instead of/as alternative to the config files that are in use currently.

Describe the solution you'd like
Allow picking what modifications to import when importing a modpack through the same selection method as the wizard import.

[FEATURE] interchangeability with textools_ui

Proper interchangeability with other tools, such as textools, should be strongly considered

Describe the solution you'd like

  • Checks for the other tool actually running (to ensure that both tools aren't doing stuff)
  • Can use the same config files (or can convert them on the fly)
  • Can manage the same mods

[ISSUE] Stringing together commands can cause corruption of gamedata

Describe the bug
If you string together multiple commands the gamedata can corrupt.

I presume that this is due to disk activity not being done before starting more activity? This is purely a blind guess.

To Reproduce
Steps to reproduce the behavior:

  1. Run command 'textools r && textools mpi -i mymodpack.ttmp2'
  2. Start game, get error about missing datafiles

Expected behavior
Running the string of commands should end up with a proper working game.

Desktop (please complete the following information):

  • OS: Linux
  • FFXIV_TexTools_CLI Version: v0.3.5

Suggestions

  1. Adding a problemcheck after modpack import could potentially help?
  2. Adding a ffttcli_lock file with a unix timestamp in the future before starting imports(starttime + 30min fi) and then updating it to be a few seconds after ended operation (endtime + 2min). The second command would then have to wait for this time to be reached
  3. Adding some kind of disk activity check (wait for disk sync). This would likely be the cleanest way.

[ISSUE] Doesn't check for index backup before applying

Describe the bug
Right now the user is responsible for making index backups. These are essential and should be STRONGLY recommended if no backups are found, or a new version of the game is detected.

Desktop (please complete the following information):

  • OS: All
  • FFXIV_TexTools_CLI Version: v0.3

[Feature+] Game launcher launcher

Should we include a game launcher launcher?

With this we could potentially launch the game and automagically disable mods when patch is detected, hence requiring no input from the user.

I also like the name game launcher launcher.

  1. Could potentially scrape mogstation for patchnotes, or keep a list over update days in our repo which the script would check.
  2. There might be other ways of getting this information. Someone has done work on a custom patcher for linux, so maybe there is a way to check which version is available for download.

[FEATURE] Better releases

At the moment we release straight up binaries.

It would likely be better to release a binary with the name ffmt within .zip/.tar files

Packaging for distros

Now we release both the bundled and unbundled versions of this tool, but it would be nice to have it released on various distros (at least have the packages available for one-click installs).

aur would be easy, but I do wonder if a .deb version would be nice too.

[FEATURE] Create backups if backups are out of date

Problem
After a patch when one needs to update their index backups, the tool notifies you that your backups are out of date, but only prompts to ignore this fact.

Solution
It would be nice for the prompt to be if you want to backup your indexes right then and there.

[FEATURE] Modify modpacks

Describe the solution you'd like
A way to modify already created modpacks (and preview them, including what files they include)

Suggestion:

Show the modpack as a file structure where files can be replaced/added/deleted. When done with the editing FFMT will recreate the modpack.

Additional context
Textools does not have this functionality, so this would be another function that would be unique.

Shadowbringers support

This is an issue to track progress with shadowbringers support.

#59 Will contain the code needed
#60 Will contain website information

What issues are remaining to fix before these should be merged, @shinnova ?

[FEATURE] Support for wizard imports

Is your feature request related to a problem? Please describe.
It's currently unclear what importing modpacks that rely on the wizard will do. My guess is that all parts is imported, which I imagine can cause unexpected issues.

Describe the solution you'd like
Proper wizard support (through some kind of ncurses thing, maybe? Or config files?)

Workaround

  • Import modpack in a vm or on a device with windows.
  • Create a new modpack with the mods created with the wizard and import through this tool.

Project rename

To ensure that we properly respect Liinko's likely copyrighted name I'm proposing renaming the project,

The following will need to be changed:

  • Binary release names
  • Readme.md
  • Website
  • C# Project Name and associations(?)

The following will have to be discussed:

  • Repo name
  • Website url

Reponame is easy, but I believe the redirect from the old url is removed after a while, or when the name is taken.

Website url is easy too, but I don't know if this will affect any small chance we have of popping up on search engines.

[Feature] Manage mods (enable / disable)

This is required to be implement asap, as patching can at the moment be problematic.

I suggest something among the lines of

$ ./executable disablemod *
Disabling hair-000
Disabling hair-001
...

$ ./executable enablemod hair-000
Enabling mod hair-000

Temporary workaround for missing functionality:
Run reset before patch.

[ISSUE] Bundled version broken on MacOS 10.14.6

Describe the bug
When executing the runtime the following error occurs

Unhandled Exception:
System.TypeLoadException: Could not load type of field 'Salaros.Configuration.ConfigParser:YesNoBoolConverters' (4) due to: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
  at FFXIV_Modding_Tool.MainClass.Main (System.String[] args) [0x00030] in <1efd7f5278184069a7bb4e8f4d373139>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type of field 'Salaros.Configuration.ConfigParser:YesNoBoolConverters' (4) due to: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
  at FFXIV_Modding_Tool.MainClass.Main (System.String[] args) [0x00030] in <1efd7f5278184069a7bb4e8f4d373139>:0

This is a clean install as I am unable to get through the first part of the focus recommend first run

To Reproduce
Steps to reproduce the behavior:

  1. Download
  2. chmod +x the file
  3. ./FFXIV_Modding_Tool-Mac-Bundled

Expected behavior
To print help and create config file.

Desktop (please complete the following information):

  • OS: MacOS 10.14.6
  • FFXIV_TexTools_CLI Version: v0.5 (also tried v0.4)

Additional context
Had to download via wget as Safari adds a bad encoding and additional file extension

[FEATURE] --dry-run?

Would it be smart to consider a dry-run option?
Could potentitally be handy with the problem checker, or even large modpack imports.

[ISSUE] MacOS: Document important folders

Just did and the initial run works but it's not able to find the necessary file to actually run.

The first error I get is the following

System.IO.DirectoryNotFoundException: Could not find a part of the path "/Applications/FINAL FANTASY XIV ONLINE/game/XivMods.json".
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x00164] in <0523ad94f2e04325802cd231c518c8d9>:0
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options) [0x00000] in <0523ad94f2e04325802cd231c518c8d9>:0
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions)
  at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize) [0x00055] in <0523ad94f2e04325802cd231c518c8d9>:0
  at System.IO.StreamWriter..ctor (System.String path) [0x00008] in <0523ad94f2e04325802cd231c518c8d9>:0
  at (wrapper remoting-invoke-with-check) System.IO.StreamWriter..ctor(string)
  at System.IO.File.WriteAllText (System.String path, System.String contents) [0x00026] in <0523ad94f2e04325802cd231c518c8d9>:0
  at xivModdingFramework.Mods.Modding.CreateModlist () [0x00067] in <e7087d1cba03440a94b4ddd624a8bfd5>:0
  at xivModdingFramework.SqPack.FileTypes.Dat..ctor (System.IO.DirectoryInfo gameDirectory) [0x00019] in <e7087d1cba03440a94b4ddd624a8bfd5>:0
  at xivModdingFramework.Helpers.ProblemChecker..ctor (System.IO.DirectoryInfo gameDirectory) [0x0001e] in <e7087d1cba03440a94b4ddd624a8bfd5>:0
  at FFXIV_Modding_Tool.Commandline.Arguments.PreviouslyModifiedGame () [0x00029] in <1efd7f5278184069a7bb4e8f4d373139>:0
  at FFXIV_Modding_Tool.Commandline.Arguments.ArgumentHandler (System.String[] args) [0x0080b] in <1efd7f5278184069a7bb4e8f4d373139>:0
  at FFXIV_Modding_Tool.MainClass.Main (System.String[] args) [0x00036] in <1efd7f5278184069a7bb4e8f4d373139>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.DirectoryNotFoundException: Could not find a part of the path "/Applications/FINAL FANTASY XIV ONLINE/game/XivMods.json".
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x00164] in <0523ad94f2e04325802cd231c518c8d9>:0
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options) [0x00000] in <0523ad94f2e04325802cd231c518c8d9>:0
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions)
  at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize) [0x00055] in <0523ad94f2e04325802cd231c518c8d9>:0
  at System.IO.StreamWriter..ctor (System.String path) [0x00008] in <0523ad94f2e04325802cd231c518c8d9>:0
  at (wrapper remoting-invoke-with-check) System.IO.StreamWriter..ctor(string)
  at System.IO.File.WriteAllText (System.String path, System.String contents) [0x00026] in <0523ad94f2e04325802cd231c518c8d9>:0
  at xivModdingFramework.Mods.Modding.CreateModlist () [0x00067] in <e7087d1cba03440a94b4ddd624a8bfd5>:0
  at xivModdingFramework.SqPack.FileTypes.Dat..ctor (System.IO.DirectoryInfo gameDirectory) [0x00019] in <e7087d1cba03440a94b4ddd624a8bfd5>:0
  at xivModdingFramework.Helpers.ProblemChecker..ctor (System.IO.DirectoryInfo gameDirectory) [0x0001e] in <e7087d1cba03440a94b4ddd624a8bfd5>:0
  at FFXIV_Modding_Tool.Commandline.Arguments.PreviouslyModifiedGame () [0x00029] in <1efd7f5278184069a7bb4e8f4d373139>:0
  at FFXIV_Modding_Tool.Commandline.Arguments.ArgumentHandler (System.String[] args) [0x0080b] in <1efd7f5278184069a7bb4e8f4d373139>:0
  at FFXIV_Modding_Tool.MainClass.Main (System.String[] args) [0x00036] in <1efd7f5278184069a7bb4e8f4d373139>:0

You may want to up the Docs to say the GameDirectory config value or -g option needs to look within the .app file. The full path is similar to:
/Applications/FINAL FANTASY XIV ONLINE.app/Contents/SharedSupport/finalfantasyxiv/support/published_Final_Fantasy/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn

Originally posted by @hybridindie in #78 (comment)

Better ProblemChecker output

The problemchecker output today is an overwhelming stream of useless information. It's like going to the doctor and receiving a 500 page report on every single bone in your body where the one broken one is mentioned on page 324 section 3 paragraph 5.

This really needs to be made cleaner. I'd gladly work on this, but I'd need some pointers about where to start (do I create a global array or a function in the problemchecker class that stores the issues and resolutions?)

Feature branch for better problem checker output is made.

I suggest something akin to this:


Checking for XXX problems..
44%...
Checkin for YYY problems ...
69%...
Checking for mod problems...
10%

The following problems were found and resolved:
oaisfoiahf oiahfioahfioh
GsdgS
DgSDGsdgsdg

ERROR: The following problems could not be resolved:
Broken toe. Please visit doctor.

[FEATURE] First-time setup command

Is your feature request related to a problem? Please describe.
Figuring out what folders to set in the configuration can be a hassle

Describe the solution you'd like
A clear and straightforward setup guide within the application itself that guides the user through picking the correct folders.

Release 0.1 binary

We should consider properly releasing 0.1 binary, built as a release (not debug) with optimizations (because why not).

This likely means we should tag our current master commits with the release version. (Dunno how that's done)

[ISSUE] Found a mod applied by an unknown application

Describe the bug
The application sometimes complains about a mysterious mod applied by another application - even if that isn't the case.

To Reproduce
Unsure about steps to reproduce.
Presumably cancelling out at the wrong point in the import process?

Expected behavior
Importing a mod with FFMT should always conclude with FFMT recognizing it.

Desktop (please complete the following information):

  • OS: Linux and Mac
  • FFMT Version: v0.5 and v0.6 confirmed

Additional context
Might also be an issue with the reading of the mod information.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.