Skip to content

Releases: Gml-Launcher/Gml.Client

v1.0.5

12 Feb 14:44
c18dcf8
Compare
Choose a tag to compare

Release Notes - v1.0.5

📢 Gml.Client v1.0.5 — Now Available!
This release includes improvements to error tracking, installation validation, and overall robustness.


What’s New?

🛠 Enhanced Error Tracking with Sentry

  • Sentry Package Integration: Added Sentry (v4.13.0) to project dependencies to enable error tracking and debugging improvements.
  • Improved Debugging Capabilities: Errors and exceptions are now logged through Sentry, allowing for better diagnostics and issue resolution.

🔍 File Validation Before Installation

  • Pre-Installation Validation: Implemented a validation step to detect missing or erroneous files before installation.
  • Error Logging with Sentry: If issues are found, an exception is logged via Sentry to enhance error tracking and troubleshooting.
  • Improved Installation Robustness: Helps prevent installation failures and ensures a smoother setup experience.

🚀 Upgrade to v1.0.5 now to benefit from enhanced error tracking, improved installation validation, and a more reliable experience!

v1.0.4-hotfix1

28 Jan 18:28
9b17e22
Compare
Choose a tag to compare

Release Notes - v1.0.4-hotfix1

  • 🛠 Refactored File Removal Logic for Better Accuracy

    • Enhanced the IsNeedRemove method to properly filter files, ensuring:
      • Empty files and mismatched files (by hash or size) are correctly removed.
      • Allowed paths and whitelisted files are preserved.
    • Simplified file hash comparison by replacing CompareHashOptionalMods with HasFileByHash for improved clarity and consistency.
  • 🧹 Code Refactor for Better Readability

    • Reordered conditions in the IsNeedRemove method to:
      • Evaluate allowed paths before checking file size.
      • Improve the logical flow without introducing functional changes.

🔧 Impact:

This hotfix ensures better accuracy in file handling, improves code maintainability, and resolves potential edge cases in file removal logic.


Make sure to apply this hotfix to benefit from the improved file filtering mechanism! 😊

v1.0.4

26 Jan 15:02
1ca314c
Compare
Choose a tag to compare

Release Notes - v1.0.4

📢 Gml.Client v1.0.4 — Now Available!
This release focuses on expanding platform compatibility, introducing optional mod management, and improving authentication workflows and file handling.


What’s New?

💻 Expanded Platform Support

  • Include macOS in chmod Execution Process:
    • Adjusted the ChangeProcessRules method to handle file permission modifications for macOS, ensuring cross-platform compatibility.

🛠️ Authentication Enhancements

  • User Name Assignment in authUser Object:
    • Fixed an issue where the Name property of the authUser object was not being populated upon successful authentication.
    • Ensures consistent data retrieval and improves reliability of authentication processes.

🎮 Optional Mods Management

  • Toggle Optional Mods:
    • Added functionality to manage and toggle optional mods directly within the game launcher.
    • Streamlined API interactions for mod handling and improved cleanup logic.
  • Improved Type Consistency:
    • Refactored namespaces and standardized type definitions across interfaces, ensuring uniformity and maintainability.

📥 Enhanced File Management

  • New DownloadFiles Method:
    • Introduced in GmlClientManager and its interface to handle file downloads based on profile information.
    • Improved hash comparison logic in SystemIOProcedures to enhance optional mod verification and management.

Additional Notes

  • Refactoring and Optimization:
    • Multiple files were updated to optimize formatting, dependency usage, and general code cleanliness.
    • Removed redundant methods and refined processes for better resource management.

Upgrade now to take full advantage of these new features and improvements! 🚀


🎉 Huge thanks to @overlord-space for including macOS support in the chmod execution process within the ChangeProcessRules method (#45)! 🙌

Your contribution enhances cross-platform compatibility and makes our client more versatile. Great work! 🚀👏

v1.0.3

31 Dec 12:40
d2cf4da
Compare
Choose a tag to compare

Release Notes - v1.0.3

📢 Gml.Client v1.0.3 — Now Available!
This release introduces significant enhancements for authentication and player data management, along with improved resource handling and usability refinements.


What’s New?

🚀 Add DTOs and Domain Models for Auth and Player Data Integration

  • New DTOs:
    • AuthUserHistoryDto: Tracks user authentication history.
    • ExtendedPlayerReadDto: Provides extended information for player data.
    • ServerJoinHistoryDto: Logs player server join history.
  • New Domain Models:
    • AzuriomAuthResult and UnicoreAuthResult: Facilitate integration with external authentication systems and enhance player management workflows.

🔒 Add AccessToken Support and Various Minor Refactors

  • Added a new overload for the GetProfiles method to support requests with an accessToken.
  • Introduced resource management improvements in OpenServerConnection, including cleanup and disposal to prevent resource leaks.
  • Minor refinements include:
    • New convenience properties for ease of use.
    • Formatting and dependency optimizations.
    • Removal of unused methods to streamline the codebase.

Keep your systems updated to leverage these enhanced capabilities for seamless player data integration and improved backend performance! 🚀

v1.0.0

28 Nov 08:55
9185e2e
Compare
Choose a tag to compare

Release Notes - v1.0.0

We are excited to announce the release of version 1.0.0 of our application. This version includes several enhancements, feature additions, and crucial fixes to ensure a smoother and more efficient user experience. Below is a summary of the changes introduced in this release:

New Features

  • Chinese Language Support: We have added Chinese localization, enhancing accessibility for Chinese-speaking users. This includes updates to the Language model and modification of the SettingsPage to support the new language option.
  • Improved Localization and Culture Handling: Refactored to assign locale-specific culture to resource targets, improving clarity and usability.
  • New Properties in ServerInfo: Introduced properties such as GameVersion, LaunchVersion, State, and CreateDate. These are now displayed in the UI components, providing more detailed server information.

Enhancements

  • Async Image Loading: Refactored the TryLoadImage method in AsyncSkinRenderLoader.cs to remove redundant try blocks and improve logging.
  • Texture Handling: Introduced a Reactive property for TextureUrl in ProfilePageViewModel, streamlining texture URL handling.
  • Message Type Update: Changed message type from Error to Information for VPN usage, ensuring messages are more informative.
  • RAM Value Display: Added RamValueView property to bind and format RAM values properly in the Settings page.

Refactoring

  • Client Class: Refactored the client class in Gml.Client for improved readability, maintainability, and performance optimization.
  • Language Setting Simplification: Simplified language setting in SettingsPageViewModel by using resource culture directly, and enhanced user configurability in SettingsPageView.

Fixes

  • Array Syntax Correction: Fixed syntax for VpnKeywords from curly braces to square brackets to ensure proper array declaration and avoid potential runtime errors.
  • File Removal Logic: Expanded file removal logic to flag zero-length files, ensuring empty files are appropriately handled and deleted.

Dependency Updates

  • Avalonia Upgraded to 11.2.2: Updated Avalonia and related packages to the latest version for improved compatibility and features.
  • Submodule Updates: Updated submodule links for Gml.Client and GamerVII.Notification.Avalonia to align with the latest changes and improvements.

General Improvements

  • Debug Message Update: Refined debug logs to include updated texture URLs.
  • Stream Handling Enhancement: Improved resource management by utilizing await using for asynchronous file and stream operations to ensure proper disposal.

This release marks a significant milestone, bringing in new features, enhancements, and crucial fixes that enhance the overall user experience. We encourage all users to upgrade to this version to benefit from the latest improvements.
Thank you for your continued support and feedback!

v0.1.0-rc2

12 Oct 14:54
eacbbb5
Compare
Choose a tag to compare
v0.1.0-rc2 Pre-release
Pre-release

Release Notes - v0.1.0-rc2

New Features

  • OAuth Token Authentication:
    Introduced a new authentication method using OAuth tokens across multiple classes, enabling more secure and flexible authentication for users.

  • Process Monitoring with ProcessHelper:
    Added the ProcessHelper class, which provides the ability to monitor process modules in real-time using reactive extensions. Logs are generated for module additions and removals, improving visibility and troubleshooting.

  • Dynamic Installation Directory Support:
    Added functionality to change the installation directory dynamically during runtime, giving users more flexibility in managing their installations.

  • Bug Tracking Integration:
    Integrated support for bug tracking, streamlining issue reporting and management within the project.

Changes

  • Enhanced Path Handling with Path.GetFullPath():
    Updated SystemIOProcedures to use Path.GetFullPath() for constructing and validating paths, ensuring the use of absolute references and improving security during file operations.

  • IOException Handling:
    Refined the error handling by explicitly catching IOException, providing more granular control and immediate feedback in case of file I/O issues.

  • Standard Output Redirection in ApiProcedures:
    Updated process start configurations in ApiProcedures.cs to redirect standard output and error. Additionally, set UseShellExecute to false and CreateNoWindow to true, improving process control and transparency.

Bug Fixes

  • Prevent Overwriting Large Files:
    Implemented a size check in SystemIOProcedures to skip overwriting files larger than 100MB, optimizing performance and preventing potential issues with large files.

  • Fix ProfileFileWatcher Process Termination Crash:
    Added a check to ensure that a process has not exited before attempting to terminate it, preventing an InvalidOperationException and improving stability.

Documentation

  • Gml.Client Setup and Development README:
    Published a comprehensive README for setting up and contributing to the Gml.Client project, including build, run, and publish instructions as well as guidelines for contributors.

v0.1.0-beta4

11 Aug 07:16
ec929a3
Compare
Choose a tag to compare
v0.1.0-beta4 Pre-release
Pre-release

Release Notes - v0.1.0-beta4

  • Handle IOException separately in ApiProcedures:
    Caught IOException explicitly to provide more granular error handling. This allows throwing the IOException immediately while preserving the behavior for general exceptions. Adjusted throttler release comment to remove redundant text.

  • Enable output redirection in ApiProcedures:
    Updated the process start information in ApiProcedures.cs to redirect standard output and error. Also set UseShellExecute to false and CreateNoWindow to true for better process control and visibility.

Release v0.1.0-beta3-hotfix1

28 Jul 12:45
0d334ab
Compare
Choose a tag to compare
Pre-release

Release v0.1.0-beta3-hotfix1

Add installation directory change functionality

In this hotfix, we introduced the ability to dynamically change the installation directory. This update includes:

  • A new method for changing the installation directory.
  • Updates to internal procedures that depend on the directory path.
  • Addition of a related property.
  • Adjustments to constructors and initializations to accommodate these changes.

This hotfix addresses issue #35 on the master branch.

Release Notes - v0.1.0-beta3

27 Jul 20:45
c20ed99
Compare
Choose a tag to compare
Pre-release

Release Notes - v0.1.0-beta3

New Features

  • Enhance process restart commands for Linux and Windows: Updated the process restart commands to properly handle filenames with spaces or special characters on both Linux and Windows. For Linux, enclosed filenames within single quotes and adjusted the process start command. For Windows, added double quotes around filenames to ensure proper execution.
  • Refactor shell command and add Kill method: Refactored shell command execution to streamline syntax by removing unnecessary quotes. Additionally, introduced a P/Invoke for the Kill method to facilitate sending signals in Unix-based OS environments.
  • Add DTOs and interfaces for servers, launcher, and notifications: Introduced CreateServerDto, LauncherBuildReadDto, and NotificationReadDto classes. Added interfaces ILauncherBuild, INotification, and INotificationProcedures along with an enum NotificationType to streamline server creation, launcher builds, and notification handling.
  • Add observable properties to track profiles and file counts: Introduced observables for ProfilesChanges, MaxFileCount, and LoadedFilesCount to monitor profile changes and file processing metrics. Implemented in GmlClientManager, SignalRConnect, and ApiProcedures for better state tracking and responsiveness.

Changes

  • Delete GameSession class and refactor various modules: Removed the GameSession class and made significant structural changes in multiple modules. These changes include adding new properties, methods, and dependencies across various interfaces and DTOs. This refactor improves code modularity and aligns the implementation with current project requirements.
  • Refactor GmlClientManager to use LauncherUpdater: Moved the FileReplaceAndRestart method to a new LauncherUpdater class. This improves code organization and separates responsibilities, making GmlClientManager more focused on its core tasks.

Bug Fixes

  • Check for Java file existence before process start: Ensured that the specified Java file exists before attempting to start the process. This change prevents potential runtime errors by throwing a FileNotFoundException if the file is missing.

This release includes significant new features, changes, and bug fixes aimed at improving the functionality and maintainability of the project. Your feedback is invaluable as we continue to develop and enhance the application!