Skip to content

Releases: Gml-Launcher/Gml.Core

v1.0.5

11 Feb 21:38
f49be20
Compare
Choose a tag to compare

Release Notes - v1.0.5

📢 Gml.Core v1.0.5 — Now Available!
This update brings improvements to user management, profile state transitions, error handling, and JVM argument validation.


What’s New?

🔑 User Management Enhancements

  • User Removal by UUID: Added a method to remove users from storage using their UUID.
  • Updated Storage Services: Implemented the removal method in SqliteStorageService and integrated it into UserProcedures.

🛠️ Profile State Management Improvements

  • New Profile States: Introduced NeedCompile and Packing states for better profile tracking.
  • State Transitions: Adjusted profile procedures to ensure consistency during compile and packing actions.
  • Centralized State Updates: Added SetState method to IGameProfile to streamline profile state management.

Improved Error Handling

  • Exception Handling in GetProfileFiles: Introduced try-catch for better resilience, logging errors to the console and updating the profile state to "Error" if failures occur.

⚙️ JVM Argument Validation

  • Refined Null/Empty Checks: Improved validation to handle both null and empty JVM arguments, ensuring robust profile configurations.

🚀 Upgrade to v1.0.5 now to take advantage of improved user management, better profile state handling, and enhanced error resilience!

v1.0.4

26 Jan 15:21
364654a
Compare
Choose a tag to compare

Release Notes - v1.0.4

📢 Gml.Core v1.0.4 — Now Released!
The latest update for **Gml.Core ** brings several exciting enhancements, with a focus on mod management, expanded platform support, and Quilt mod loader integration. The new release improves workflows and offers more flexibility when handling mods, along with several bug fixes and performance improvements.


What’s New?

🚀 Quilt Mod Loader Support

  • Quilt Integration: Full support for the Quilt mod loader added to the game downloading process. The GameLoader enum has been updated to support Quilt, including version management and installation procedures tailored for this loader.
  • Seamless Quilt Experience: Mods are now managed more efficiently, with Quilt-specific logic embedded into the core modding workflows.

🔧 Enhanced Mod Management

  • Modrinth API Integration: Support for querying, managing, and retrieving mods via the Modrinth API. New methods have been added to streamline the mod handling process, including GetModInfo and GetVersionsByModId, allowing users to retrieve detailed mod information and versions more effectively.
  • Mod and Optional Mod Handling: New properties for Mods and OptionalMods have been introduced to IGameProfile, making mod management more versatile and user-friendly. The addition of ModType and Id properties further categorizes and organizes mods, while the sorting of local mods ensures a clean, ordered display.

💻 Cross-Platform Improvements

  • macOS Support: Compatibility for macOS systems has been improved with support for the new osx-x64 and osx-arm64 architectures, ensuring that the launcher works smoothly across various macOS versions.
  • Java Runtime Folder Fix: The Java runtime folder retrieval process has been fixed, ensuring correct OS directory identification for macOS systems, contributing to a more stable experience for users.

🛠 Other Enhancements

  • Profile Mod Management: New functionality added to handle mods directly within profiles. Mods can be added, removed, and updated with ease, improving the flexibility of game profile management.
  • Refined Testing & Bug Fixes: Several bug fixes and code refactors, including cleaning up redundant assertions in tests and validating Java versions retrieval for more consistent test results.

🙏 Thanks to @overlord-space!

A special thank you to @overlord-space for contributing to this release by fixing Java runtime folder retrieval, ensuring that the launcher functions smoothly on all macOS platforms. Your efforts are greatly appreciated!


🚀 Upgrade to v1.0.4 now for enhanced mod management, improved platform support, and Quilt mod loader compatibility. Enjoy a smoother, more powerful game-launching experience!


This release of Gml.Core enhances user experience with a broader range of mod management features, supports new platforms, and fixes bugs that improve the overall functionality of the launcher.

v1.0.3

31 Dec 13:01
0479839
Compare
Choose a tag to compare

Release Notes - Gml.Core v1.0.3

📢 Gml.Core v1.0.3 — Now Available!
This release brings enhanced user management, improved role-based access, new customization options, and significant refinements to authentication and testing capabilities.


What’s New?

🚀 User Management and Access Enhancements

  • Pagination and Search for Users:

    • Added GetUsers with support for pagination (take, offset) and search (findName), allowing more efficient data queries for large user datasets.
  • Whitelist Management:

    • Introduced UserWhiteListGuid to IGameProfile and BaseProfile for managing user permissions via GUIDs.
    • Updated to support List<string> instead of List<Guid> for more flexible identifier handling.

🔒 Player Role and Access Control

  • JWT Token Enhancements:

    • Added a "Player" role claim in JWT token generation, enabling better enforcement of role-based access controls.
  • Ban and Pardon Functionality:

    • Implemented endpoints to ban and pardon players.
    • Updated authentication and server access logic to respect ban statuses.
    • Added error handling for empty ban/pardon input lists.

🎨 User Customization

  • New GetHead Method:
    • Added functionality to fetch a user's head texture stream by their name.
    • Updated UserProcedures and ITextureProvider interfaces, with corresponding implementations to support texture retrieval.

🛠️ Performance and Testing Improvements

  • Java Version Parsing:

    • Refactored version parsing logic with TryParseMajorVersion for better readability and error handling.
    • Re-enabled server ping tests for cross-version Minecraft compatibility.
  • MinecraftPingOptions Timeout:

    • Added a TimeOut option (default: 3 seconds) to all test cases using MinecraftPingOptions, improving reliability by preventing indefinite waits.

🐛 Bug Tracking Enhancements

  • CaptureException Integration:
    • Enhanced exception handling by invoking CaptureException before returning BugInfo, ensuring robust error tracking.

🔗 Submodule Updates

  • Updated the Pingo submodule link to the latest version.

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

v1.0.2

05 Dec 02:53
ac7b390
Compare
Choose a tag to compare

Release Notes - v.1.0.2

📢 Gml.Core v1.0.2 — Now Available!

The latest version is here to enhance your server management experience.

What’s New?

🌐 Pingo Library Updates:

  • Now supports domain names when adding servers.
  • Added support for SRV records, making server configuration more flexible.

📦 Dependency Updates:

  • Updated package dependencies for improved stability and compatibility.

Upgrade now to enjoy these new features and improvements! 🚀

v.1.0.1

28 Nov 14:27
fbd8a2a
Compare
Choose a tag to compare

Release Notes v.1.0.1

Fix folder white list

v0.1.0-rc2-hotfix4

16 Oct 13:08
d0bc1a3
Compare
Choose a tag to compare
v0.1.0-rc2-hotfix4 Pre-release
Pre-release

Release Notes - v0.1.0-rc2-hotfix4

v0.1.0-rc2-hotfix2

16 Oct 12:36
c477132
Compare
Choose a tag to compare
v0.1.0-rc2-hotfix2 Pre-release
Pre-release

Release Notes - v0.1.0-rc2-hotfix2

Bug Fixes

  • Check for empty URL before assigning GUID:
    Ensure GUIDs are only generated when texture URLs are successfully set. Prevents assigning GUIDs when URLs are empty, ensuring consistency in the texture application process.

v0.1.0-rc2-hotfix1

15 Oct 19:05
5dcdda5
Compare
Choose a tag to compare
v0.1.0-rc2-hotfix1 Pre-release
Pre-release

Release Notes - v0.1.0-rc2-hotfix1

New Features

  • Support for Skins and Cloaks Management:
    Added full support for handling user skins and cloaks. This includes new properties in the user models for managing textures, methods to download and install skins/cloaks, and database support. These updates significantly enhance the launcher’s customization options, enabling users to manage their skins and cloaks efficiently.

  • ITextureProvider and TextureProvider Implementations:
    Introduced the ITextureProvider interface and TextureProvider class to manage skin and cloak updates, along with retrieval via HTTP clients. Additionally, a TextureReadDto class was implemented to deserialize texture response data, optimizing the handling of textures.

Changes

  • Refactored Service Integration for Dynamic Texture Provider:
    Updated ServicesIntegrationProcedures to initialize the TextureProvider with a dynamic TextureServiceEndpoint, which is passed via the constructor. This refactor enhances flexibility when integrating texture services, allowing customization of endpoints through IGmlSettings.

Bug Fixes

  • Improved Error Handling in Texture Management Methods:
    Added error handling in the CreateUserSessionAsync method to address issues when textures are not properly configured. Additionally, try-catch blocks were introduced in the SetSkin and SetCloak methods to handle potential exceptions, returning empty strings in case of errors and preventing crashes.

  • Cleaned Up Unused Imports:
    Removed an unnecessary NotImplementedException import from SqliteStorageService.cs to clean up the code and avoid confusion.

Tests

  • Enhanced Unit Test Coverage:
    Updated the Assert functions in the unit tests and ensured that GmlManager tests specify the correct TextureServiceEndpoint. Additionally, comments were added to improve clarity in unit tests related to the texture provider integration.

v0.1.0-rc2

12 Oct 15:04
f74c3bd
Compare
Choose a tag to compare
v0.1.0-rc2 Pre-release
Pre-release

Release Notes - v0.1.0-rc2

New Features

  • Skin and Cloak Management Support:
    Added new features to handle user skins and cloaks. This includes properties in user models for managing textures, methods for downloading and installing textures, and database support. These updates enhance the launcher’s customization capabilities by allowing users to manage skins and cloaks efficiently.

  • ITextureProvider and TextureProvider Implementations:
    Introduced the ITextureProvider interface and TextureProvider class to manage skin and cloak updates and retrievals. The TextureProvider uses HTTP clients for texture handling, and a new TextureReadDto was created to deserialize texture response data, streamlining texture management.

Changes

  • Refactor Service Integration for Dynamic Texture Provider:
    Updated ServicesIntegrationProcedures to initialize TextureProvider with dynamic TextureServiceEndpoint passed via the constructor. This refactor improves flexibility when integrating texture services and allows customization of endpoints through IGmlSettings.

Bug Fixes

  • Error Handling in CreateUserSessionAsync and Texture Methods:
    Added error handling for CreateUserSessionAsync to manage issues when textures are not properly configured. Additionally, introduced try-catch blocks in SetSkin and SetCloak methods to handle potential exceptions gracefully and prevent crashes.

  • Remove Unused NotImplementedException Import:
    Cleaned up the SqliteStorageService.cs file by removing an unused NotImplementedException import to improve code clarity and avoid confusion.

Tests

  • Update and Comment Unit Tests:
    Updated Assert functions in unit tests and ensured GmlManager initialization in tests specifies the correct TextureServiceEndpoint. Also added comments to clarify the purpose of unit tests related to the texture provider.

v0.1.0-rc1

01 Sep 09:40
062d8c7
Compare
Choose a tag to compare
v0.1.0-rc1 Pre-release
Pre-release

Release Notes - v0.1.0-rc1

New Features

  • Update MirrorsHelper URLs and Introduce MirrorPingModel:
    Replaced localhost URLs with more reliable mirror sources in the MirrorsHelper class. Introduced the MirrorPingModel class to track URL and round-trip time. Enhanced the GetMirrorUrlAsync method to select the fastest mirror based on ping results, improving performance.

Changes

  • Refactor MirrorsPingModel:
    Renamed MirrorsPingModel to MirrorPingModel and relocated it from the Helpers namespace to the Models namespace. Updated SystemProcedures to use the new class name and path, ensuring consistency across the codebase.

  • Correct Logic in RemoveWhiteListFolderIfNotExists Method:
    Fixed the logic in the RemoveWhiteListFolderIfNotExists method to ensure that the correct folder is removed only if it exists, enhancing functionality and preventing errors.

Refactoring

  • Simplify Null-Forgiving Operator Usage:
    Streamlined the use of the null-forgiving operator for the files variable, improving code clarity and reducing potential null reference issues.

  • Improve Code Readability by Removing Unnecessary Blank Lines:
    Removed redundant blank lines throughout the codebase to enhance readability and maintain a clean code structure.

Bug Fixes

  • Fix AzuriomAuthlibInjector Integration:
    Addressed issues with the AzuriomAuthlibInjector to ensure proper integration and functionality within the system.