Releases: Gml-Launcher/Gml.Client
v1.0.5
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
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
withHasFileByHash
for improved clarity and consistency.
- Enhanced the
-
🧹 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.
- Reordered conditions in the
🔧 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
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.
- Adjusted the
🛠️ Authentication Enhancements
- User Name Assignment in
authUser
Object:- Fixed an issue where the
Name
property of theauthUser
object was not being populated upon successful authentication. - Ensures consistent data retrieval and improves reliability of authentication processes.
- Fixed an issue where the
🎮 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.
- Introduced in
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
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
andUnicoreAuthResult
: 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 anaccessToken
. - 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
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
, andCreateDate
. These are now displayed in the UI components, providing more detailed server information.
Enhancements
- Async Image Loading: Refactored the
TryLoadImage
method inAsyncSkinRenderLoader.cs
to remove redundant try blocks and improve logging. - Texture Handling: Introduced a Reactive property for
TextureUrl
inProfilePageViewModel
, 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 inSettingsPageView
.
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
andGamerVII.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
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 theProcessHelper
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():
UpdatedSystemIOProcedures
to usePath.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 catchingIOException
, providing more granular control and immediate feedback in case of file I/O issues. -
Standard Output Redirection in ApiProcedures:
Updated process start configurations inApiProcedures.cs
to redirect standard output and error. Additionally, setUseShellExecute
to false andCreateNoWindow
to true, improving process control and transparency.
Bug Fixes
-
Prevent Overwriting Large Files:
Implemented a size check inSystemIOProcedures
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 anInvalidOperationException
and improving stability.
Documentation
- Gml.Client Setup and Development README:
Published a comprehensive README for setting up and contributing to theGml.Client
project, including build, run, and publish instructions as well as guidelines for contributors.
v0.1.0-beta4
Release Notes - v0.1.0-beta4
-
Handle IOException separately in ApiProcedures:
CaughtIOException
explicitly to provide more granular error handling. This allows throwing theIOException
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 inApiProcedures.cs
to redirect standard output and error. Also setUseShellExecute
tofalse
andCreateNoWindow
totrue
for better process control and visibility.
Release v0.1.0-beta3-hotfix1
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
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
, andLoadedFilesCount
to monitor profile changes and file processing metrics. Implemented inGmlClientManager
,SignalRConnect
, andApiProcedures
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!