Skip to content
This repository has been archived by the owner on Apr 25, 2022. It is now read-only.

Releases: Willster419/RelhaxModpack

Application version 1.4.2.0 (2022-04-09)

09 Apr 23:02
Compare
Choose a tag to compare

Application version 1.4.2.0 (2022-04-09)

https://www.virustotal.com/gui/file/0cecd539dbf22f7d0d8ebc04d6f3ebad7cff7c7fee087ea487ea0832e4a06062?nocache=1

The Relhax Modpack will be closing on April 20th, 2022. Thank you to all our volunteers and users for over 5 years of success!

  • Added "end of life" window and logic to appear and prevent installations after the shut down date. It can be "brought back" with a version update in the future, so it's not permanent.
  • Set the check for updates timeout to 3 seconds for after the servers go down, and it does not cause the application to quit. (You can still use it to uninstall, diagnostics, download WG updates, etc.)

Application version 1.4.1.1 (2022-03-26)

27 Mar 03:39
Compare
Choose a tag to compare

Application version 1.4.1.1 (2022-03-26)

https://www.virustotal.com/gui/file/a5f0656c9d44f31605261241613b4e38e515594689a419ba1ac4607c387d81a1?nocache=1

The Relhax Modpack will be closing on April 20th, 2022. Thank you to all our volunteers and users for over 5 years of success!

  • Fixed a bug with the language selection not saving.
  • Fixed a bug with the language selection not being displayed on application first launch (when the settings file is deleted).
  • Minor code refactoring and optimizations.
  • Updated documentation.

Application version 1.4.1.0 (2022-03-08)

09 Mar 00:35
Compare
Choose a tag to compare

Application version 1.4.1.0 (2022-03-08)

https://www.virustotal.com/gui/file/79db977e31acdbf7d6ecd6c7eefd5103f4ed63072f78e2ab14e518bb20794bd1

The Relhax Modpack will be closing on April 20th, 2022. Thank you to all our volunteers and users for over 5 years of success!

  • Fixed the automation runner pass/fail color change for sequence runs not working in dark mode.
  • Fixed bug of atlas creators trying to use same bitmap resource at the same time causing an installer error.
  • Fixed bug of the download progress not properly reporting download speed and ETA.
  • Fixed severity of some log messages for the trigger system.
  • Other misc code optimizations.

Application version 1.4.0.0 (2022-02-26)

27 Feb 01:27
Compare
Choose a tag to compare

Application version 1.4.0.0 (2022-02-26)

https://www.virustotal.com/gui/file/86ede3216074d901b87978b83c2bb02dd86601fe87e6526bea4a816220174d9a

"This is the last official planned update to the Relhax Modpack"

Automation additions and fixes

  • Added the ability for an automation sequence to run browser sessions.

    • This provides the ability of using the same browser object, therefore allowing persistence of cookies or other login data.
    • Useful for sites that require a user to be logged in or require certain values in requests to prevent bots (lol).
  • Added the ability for the user to specify 3 user macro names and values.

  • Added the following automation tasks:

    • StartBrowserSessionTask: Starts an automation browser session.
    • BrowserSessionSetHeaderTask: Sets a default request header value.
    • BrowserSessionRemoveHeaderTask: Remove a request header value.
    • BrowserSessionPostTask: Sends a POST request to a URL.
    • BrowserSessionGetTask: Sends a GET request to a URL.
    • BrowserSessionDownloadFileTask: Downloads a file form a given url to a location on disk.

"There's always time to do it right the second time"

  • Re-wrote the dark theme UI and removed the winforms approach to applying control colors.

    • The original engine was an adaptation from our legacy WinForms application to WPF. I completely re-wrote it using design patterns for WPF that is better for performance and re-usability.
    • Some components had colors changed to make them more darker, since changing some properties was not possible in the old system.
    • It also frees up the use of the "Tag" property for each control of each window that should have a custom style applied to it.
  • Re-wrote several sections of the DatabaseManager to make loading and saving database components more object-oriented.

    • After a database is loaded, it needs to have "post-processing" done on it's internal values (or "pre-processing" in the case of saving). This was moved into the DatabaseComponent (previously called XmlDatabaseComponent) so that any object using this load/save implementation could override and add the functionally needed.
    • It also means that the script style approach of the DatabaseUtils class was removed.

New features!

  • The long-awaited conflicting packages was finally implemented!

    • This means that if you try to select packages that conflict with each other (common examples being xvm vs. stand-alone features), it will inform you of the conflict and present you with a choice of which package you'd like to keep selected.
    • In the case of conflicts in a selection file, as components are selected, any conflicting package will be un-checked (the last loaded/selected package takes priority). The selection information window will inform you of this as well.
  • Get #triggered with the new installation triggers system!

    • This system allows us to perform some post-extraction tasks (like atlas creation for contour icons) as soon as all relevant packages for it are extracted.
    • This means, continuing the contour icons example, that as soon as all contour icon packages are extracted, the atlas building process can immediately start, instead of waiting until all packages are extracted.
    • This also applies for shortcut creation and the installation of fonts.
    • Overall, it means that (when enabled) the installation time has been reduced by several seconds, depending on your installation selection.
  • Updated database to xml schema 1.2

    • Schema 1.2 enforces that conflicting package and dependency entries contain the package internal name and UID properties for redundancy.

Other Misc changes

  • Removed the twitter and facebook buttons since we don't use those anymore.
  • Changed the url for the support button to go to the Modpack discord (we don't offer support on the modpack forums anymore).
  • Updated translations.
  • Fixed the editor's "create ftp folder" operation crashing if the folder already exits.
  • Added a couple missing translation entries and typos.
  • Added focus to the FTP folder name textbox for the "create ftp folder" window when shown.
  • Fixed the "yes" and "no" buttons in the version update window to be upper case.
  • Moved some log messages from info the debug.
  • Added a bunch of internal code documentation.
  • Added some additional debugging information to Ui components in the PackageSelection window to help determine what component is attached to what package.
  • Other misc code cleanup and optimization.

Application version 1.3.5.1 (2022-01-21)

21 Jan 19:33
Compare
Choose a tag to compare

Application version 1.3.5.1 (2022-01-21)

https://www.virustotal.com/gui/file/d220b81bc03569ff0fce2f70df233d404964cbe9fd2cc7d61fd6409bdc8f1778

  • Fixed bugs with modpack toolbox for database publishing.
  • Fixed issues and optimized code in DatabaseManager.

Application version 1.3.5.0 (2022-01-19)

19 Jan 21:27
Compare
Choose a tag to compare

Application version 1.3.5.0 (2022-01-19)

https://www.virustotal.com/gui/file/2da65e991ef0290c9239ee97580c2e0755f853c115a1e15e62f22345fe1f5377

"Working is good, but working efficiently is better"

A new way to load and save Xml documents

  • The system to save and load database packages to and from xml documents was completely re-written with a new, more modular implementation. It separates the physical loading of xml from web or disk into xml class objects (serialized into xml document objects), and the parsing of serialized xml objects to and from class properties via a map, or schema. Now, those are managed by two different version fields documentVersion and schemaVersion.
    • The document physical loading system was re-worked to be less hard-coded, and the saving now works on the idea of updating, rather then replacing the previous document information. For example, it won't save a file (or certain parts of it) if no changes occurred (before it would always delete and re-save).
    • This allows for comments in the database that will be ignored by the system, but not removed when updating the physical file.
    • The schema system allows us to map database properties to xml elements or attributes (if not a list property), which also use an updating method rather then replacing method, with the exception of attributes.
    • The system also maintains ordering of what's listed in the schema.

(Another) class re-structuring to make it more like a program, and not a script

  • With the new xml serialization system, the class structure of database components was completely re-worked to now have all serializable components derive from the XmlDatabaseComponent class.
    • Now components can call ToXml() and FromXml() on them selves, while passing xml objects, to recursively save/load themselves and child components.
    • It also enables abstract 'middleman' classes that can handle common methods and objects between multiple components.
  • A more robust copy system was implemented using the constructors and derived versions of them.
  • An instruction compare system was also built-into the new class structure, for Instruction objects and their derivatives.

Instructions have been moved into the database

  • Post-install instructions (patches, atlas creation, shortcut creation, xml unpack/copy) were previously saved in the modpack packages and extracted with the package files into custom folders. This is bad for 2 reasons:
    • First, the instructions would be taking up space in the package zip files (sometimes, it was the only thing in a package's zip file), and then take up time being extracted to disk, while needing to maintain instruction order, and THEN would be loaded from disk from xml into a document the installer could act on. Gross.
    • Second, and most important, instructions weren't kept under source control. To update an instruction, it would require updating the package, and we were unable to effectively track instruction updates, who updated it, the exact changes, etc.
  • Now, the instructions have been incorporated into the database: The application already has them parsed and loaded when running an install, and only needs to calculate the order to apply the instructions, which takes milliseconds.

Automation system additions and fixes

  • Added the following tasks:
    • DirectoryMoveTask: Attempt to move a file the 'quick' way of updating its location on the same volume. If attempting to move a file across volumes, it will fail.
    • FileExistsTask: Ensure a file exists. That's it.
    • MacroStringInputMacroJsonTask: Use JsonPath to search for a value by looking inside a macro.
  • Improved class structure and re-usability by adding abstract classes DirectoryDestinationTask and MacroStringInputMacroTask, to manage the destination directory of a IO task and get the value of a given macro, respectively.
  • Added the ability to specify which browser engine to use (IE11 or Edge) for DownloadBrowserTask, MacroStringSplitBrowserTask, MacroSubstringBrowserTask, implemented through a BrowserManager class.
  • Fixed cleanup and disposal of unmanaged browser resources for DownloadBrowserTask, MacroStringSplitBrowserTask, MacroSubstringBrowserTask.
  • Fixed a bug with the Macro tasks that would allow updating/replacement of macros that are Application defined, and now warns when replacing a global macro.
  • Fixed a bug during HTMLPath parsing that would return an empty string if the returned element was the root of the document.
  • Fixed log string formatting issues with several tasks.

Other bug fixes and improvements

  • The browser engine EdgeHTML (used for the Microsoft Edge browser) is now usable in the modpack for html parsing of some websites that don't support IE11.
  • Updated 3rd dependency libraries DotNetZip, HtmlAgilityPack, Newtonsoft.Json, MSTest.TestAdapter, MSTest.TestFramework.
  • Both RelhaxSandbox and RelhaxModpack projects were converted from Nuget Package config to Nuget Package Reference style of managing Nuget packages.
  • The RelhaxSandbox project test implementations of embedded browsers was cleaned up.
  • Other misc bug fixes and optimizations.

Application version 1.3.4.0 (2021-12-19)

20 Dec 02:11
Compare
Choose a tag to compare

Application version 1.3.4.0 (2021-12-19)

https://www.virustotal.com/gui/file/f0fe66fb073e7c629c18abc73a4eb7e0c3cf68768df9d0f2f76d9411325e0ed0

"Automation is the future" ~ The guy writing the automation.

Bug fixes and improvements for the package automation update system. If only it could update itself as well...

  • Added the following automation tasks:
    • DirectoryCompareTask: Enable searching for files and comparing them, rather then needing to specify multiple files to check.
    • DirectoryCompareCountTask: Similar to DirectoryCompareTask, but when the files count or names change between directories, it counts as an update needed, not an error.
    • DirectoryCompareInverseTask: Similar to DirectoryCompareCountTask, except files with different hashes are set into the "noMatchStop" group, implying manual updating is required (stops the automation sequence from continuing).
  • Fixed the following automation tasks:
    • DirectoryDeleteTask: Fixed/synced parameters to DirectorySearchTask.
    • DirectoryDeleteTask: Fixed bugs with deleting folders based on absolute and relative location.
    • DirectoryCopyTask: Fixed/synced parameters to DirectorySearchTask.
    • MacroSubstringMacroTask: Fixed bug with sometimes not getting the correct substring of the correct target variable.
    • MacroSubstringHtmlTask: Fixed bug with sometimes not getting the correct substring of the correct target variable.
    • MacroSubstringFilenameTask: Fixed bug with sometimes not getting the correct substring of the correct target variable.
    • MacroSubstringBrowserTask: Fixed bug with sometimes not getting the correct substring of the correct target variable.
    • RetrievePackagePropertyTask: Fixed bugs with task not using the correct target package to get/set based on target argument from task.
    • UpdatePackagePropertyTask: Fixed bugs with task not using the correct target package to get/set based on target argument from task.
    • MacroStringSplitBrowserTask: Fixed a bug with task not waiting until the WebClient request was completed.
    • MacroStringSplitHtmlTask: Fixed a bug with task not waiting until the WebClient request was completed.
    • MacroSubstringBrowserTask: Fixed a bug with task not waiting until the WebClient request was completed.
    • MacroSubstringHtmlTask: Fixed a bug with task not waiting until the WebClient request was completed.
    • MacroCreateTask: Fixed behavior that would not accept a macro value of empty text (sometimes that's the intent).
    • ShellExecuteTask: Fixed bugs handling the created child process upon failing to launch.
  • Cleanup and bug fixes of the automation runner UI.
  • Change the behavior of running multiple sequences for automation so that it saves the database at the end of a run from sequence error or sequence pass conditions. (It won't save for internal errors).
    • This is because for example, in a sequence of 4, if 2 fails, but 3 and 4 work, now it will save the database after all sequences are run. It wouldn't' before because 2 failed.
  • Improved error code resolution for automation sequencer errors.
  • Added check during automation sequence run if required settings are set in the settings tab for all macros.
  • Removed overly complex method to check if url is valid, replaced it with a much quicker and simpler method.
  • Added option IncludeRootInSearch to include DirectoryPath in search results. This allows you to delete an empty directory.

Testing the application, one unit at a time

  • Added several automation task unit tests and ensured they are passing.
  • Updated all appilcation and database unit tests to be working with the updated code base and passing (except the patching unit tests).
  • Updated/finished the automated installation unit test for future database self-checking and reporting.
  • When updating the modpack by a major version, we require the pull request in source code to show proof of the unit tests passing.

LOG MESSAGE SPAM! "The b e s t way to reach people."

  • Fixed issues with how logging was handled between the editor, patch designer and the automation runner, in terns of redirection and re-initialization.
  • Reduced the ammount of spam from the logging system when running automation sequences.
  • Moved several info level log statements from info to debug throughout the application.
  • Improved log formatting in the automation runner.
  • Added option to suppress logging output messages that are of level debug to the automation log output console.

Other bug fixes and improvements

  • Added property LastUpdateCheck into database so the last time an update check was done by someone (or the automation runner) it is logged.
  • Added feature to output all automation runner root elements for each package into a text file. Allows copy paste when creating automation sequences.
  • Fixed bugs with file utility methods ProcessEmptyDirectories(), FileSearch, added file utility method DirectorySearch.
  • Fixed optimization issues with the Default uninstall method.
  • Class structure improvements for windows that are custom features like the editor or patch designer. Also synchronized how the logging was handled between all of them.
  • Added translation entries and updated translations from contributers.

Beta Application version 1.3.3.10 (2021-11-28)

29 Nov 01:32
Compare
Choose a tag to compare

Beta Application version 1.3.3.10 (2021-11-28)

https://www.virustotal.com/gui/file-analysis/YWM3ODQxNjM2YzEwZTE0OWZiNzdhY2NmYTBiYjk5ZTk6MTYzODE0OTM3Mg==

  • Added property LastUpdateCheck into database so the last time an update check was done by someone (or the automation runner) it is logged.
  • Added feature to output all automation runner root elements for each package into a text file. Allows copy paste when creating automation sequences.
  • Fixed bug in HtmlWebscrapeParser and HtmlBrowserParser that would not use UTF8 for string encoding when downloading webpages from sites that have custom symbols for a language (like russian, polish, etc).
  • Fixed behavior for MacroCreateTask that would not accept a macro value of empty text (sometimes that's the intent).
  • Fixed but with MacroStringSplitTask that wouldn't wait for getting the string for an async implementation of the method.
  • Fixed UI placement issues of components in the database editor, added xml comments for each row definition.
  • Removed Excessive logging that was used during development, but not needed anymore of the automation runner.
  • Change the behavior of running multiple sequences for automation so that it saves the database at the end of a run from sequence error or sequence pass conditions. (It won't save for internal errors).
    • This is because for example, in a sequence of 4, if 2 fails, but 3 and 4 work, now it will save the database after all sequences are run. It wouldn't' before because 2 failed.

# Beta Application version 1.3.3.9 (2021-09-18)

19 Sep 00:56
Compare
Choose a tag to compare

Beta Application version 1.3.3.9 (2021-09-18)

https://www.virustotal.com/gui/file-analysis/M2I3YzBlZjJlNjA0MTU2YTE0Mzg3NmZlNjkyZmZlYTQ6MTYzMjAxMjU4MQ==

  • Added task DirectoryCompareInverseTask, similar to DirectoryCompareCountTask, except files with different hashes are set into the "noMatchStop" group, implying manual updating is required.
  • Re-work automation compare system so that it can track comparisons between files (hashes are different) and directories (count or names are different).
  • Fixed the log window for automation not updating to the setting of suppression of debug messages.
  • Removed unnecessary references and interop hooks.
  • Move some logging messages from info to debug and debug to info.
  • Added more unit testing for automation sequences.

Beta Application version 1.3.3.7 (2021-08-19)

20 Aug 04:16
Compare
Choose a tag to compare

Beta Application version 1.3.3.7 (2021-08-19)

https://www.virustotal.com/gui/file-analysis/ZGQ3NjE3NjFjYzBhZWJkNGRiNGFlMzU0ZmQ0MmRiNDk6MTYyOTQzMjg2OA==/detection

  • Added task DirectoryCompareCountTask, similar to DirectoryCompareTask, but when the files count or names change between directories, it counts as an update needed, not an error.
  • Removed overly complex method to check if url is valid, replaced it with a much quicker and simpler method. "Keep it stupid simple."
  • Cleanup of the automation runner UI.
  • Added method of cleaning up the automation runner's working directories with a button from the UI.
  • Added option to suppress debug messages to the log window.