Skip to content
This repository has been archived by the owner on Dec 6, 2020. It is now read-only.

Refactored with some improvements #7

Open
wants to merge 37 commits into
base: master
Choose a base branch
from

Conversation

Zingabopp
Copy link

@Zingabopp Zingabopp commented Sep 3, 2020

  • Gets multiplayer mods and dependencies from an XML file hosted on GitHub Here for now
    • XML schema for intellisense and validation when editing the XML file (in Visual Studio or any other editor that supports it)
    • Downloads the file from GitHub if it can, otherwise uses a cached version inside the installer folder.
    • Multiplayer mods definitions:
      • Name/Version/Min-Max game version/DownloadURL
      • Metadata with Description/Notes/Info Link
      • Dependencies listed with name/version, those components must be listed in ComponentDefinitions
      • OptionalComponents: components not required for the mod to work, but can enhance it (DiscordCore/BeatSaberPlaylistsLib with MultiplayerLite.
    • Components defined with Name/Version/DownloadURL. Also has support for metadata that could be put into the GUI (Description/Notes/Info Link)
      • Support for either moving a DLL or extracting a zip.
      • Support for validating component files with optional SHA1 hash check (useful to check if modded CustomAvatars is installed)
      • Support for extracting specific files from zip to specific paths (used for your zip with SongCore/BSML/etc)
  • Bunch of underlying UI tweaks and better error handling.
  • Checks installer version against your GitHub release page (you must keep the AssemblyVersion updated in Properties\AssemblyInfo.cs
  • Removed dependency on NewtonSoft.Json, using self-contained SimpleJSON instead (you can now run the installer from the zip file)
  • There are unit tests in BSMulti-Installer-Tests => UtiltiesTests => InstallerTests.cs to test both Andruzz and Zinga installs using the MultiplayerFiles.xml file in the solution directory (where the app would grab the file from GitHub). You can use this to easily test if an updated XML will work.
  • Better Beat Saber game install locator.

Unfinished:

  • The uninstaller is still hardcoded, this can be reworked by listing the files for each component in the XML and going through and deleting them like that.
  • Optional components are installed automatically, should have a way to deselect.
  • Install verifier (separate from the check done as its installing).
  • UI could be redesigned.
    • Info panel to show the metadata for multiplayer mods and components.
    • Support changing dependencies
      • Ex: Click a mod version and have a tree view showing dependencies and optional components
    • Game version detection and support for older mod versions 🤷

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant