- Added RuntimeApiCacheStore for managing API cache entries in memory.
- Introduced StorageTarget enum to define various storage targets.
- Created StoredCacheEntry record to encapsulate cache entries.
- Defined SyncState enum to represent the synchronization state of cache entries.
- Added ControlPlaneConfigurationSource enum for different configuration sources.
- Developed ControlPlaneRuntimeConfig class for runtime configuration management.
- Implemented ControlPlaneStartupConfigResolver for resolving configuration from various sources.
- Created ControlPlaneStartupSettings to hold startup configuration values.
- Added ResolvedControlPlaneStartupConfig record to encapsulate resolved configuration.
- Implemented tests for batch client and cache client functionalities.
- Added tests for ControlPlaneStartupConfigResolver to validate configuration resolution logic.
feat: Expand PlayersApi with new endpoints for better player management
feat: Update ServerApi to include new instance-related endpoints
feat: Add new endpoints to ServiceAccountsApi for improved service account management
fix: Update TokensRotateEndpoint and TokensStoreEndpoint to include new validation rules
feat: Introduce ControlPlaneHttpClient for handling HTTP requests to the control plane
feat: Implement PathBuilder for dynamic URI resolution
feat: Add PlayerEntitlement and PlayerSessionProfile models for player data handling
feat: Create server-related models including HeartbeatPayload, PresenceState, and ReadinessState
feat: Develop RegistrationPayload and ServerInstance models for server management
feat: Add ServerProfile model to encapsulate server instance details
refactor: Update network class to include builder method for ControlPlaneClient
chore: Update manifest.json for plugin metadata and dependencies
Migrate the project from Gradle Kotlin DSL to Groovy DSL: update README to reference build.gradle/settings.gradle and change code blocks to Groovy. Remove build.gradle.kts. Add runServerJar and runServer tasks in build.gradle that depend on shadowJar and launch the Hytale server (uses hytaleHome paths, assets, and optional user mods). Bump plugin manifest version to 0.0.3 and set a concrete ServerVersion string. Fixed some issues.
Allow the exclusion of files in the `.vscode/` directory to be
overridden via negated patterns (gitignore patterns beginning with `!`)
by changing the pattern in `.gitignore` from `.vscode/` to `.vscode/*`
(i.e., by ignoring the files in `.vscode/` rather than the `.vscode/`
directory itself).
The README has been rewritten for clarity and ease of use, providing step-by-step setup, authentication, development, and troubleshooting instructions. It now includes clearer prerequisites, quick start, asset bundling, build instructions, and links to full documentation, making it more accessible for new users.
Updated the README to provide clearer steps for selecting and starting the HytaleServer run configuration, specifying the dropdown location and play button.
Replaces the previous Kotlin-based Gradle build and template files with a new Java-based Gradle build system and updated example plugin code. Removes old build scripts, plugin template, and configuration, and introduces a new ExamplePlugin with updated manifest, command, and recipe example. Updates documentation and project configuration to match the new structure and usage.
Adjusted the paths in build.gradle.kts to reference the correct locations for HytaleServer.jar and Assets.zip. Updated README to reflect changes in the server's mods folder instead of plugins folder for clarity.
Expanded README with detailed usage instructions and features for the Run Hytale Server Gradle plugin. Updated build.gradle.kts to use a Paper server JAR as a placeholder for testing the runServer functionality.
Add a minimal, ready-to-use Hytale plugin template including Gradle build scripts, GitHub Actions CI workflow, example plugin class, configuration and manifest files, and supporting documentation. This setup provides modern build tooling, automated server testing, and best practices for plugin development.