- Add `CACHE_TIME_MINUTES` to `Config` with a default value of 5 minutes.
- Replace hardcoded cache duration in `AuthService` with the configurable value from `Config`.
- Fix `resolveLogin` method to ensure correct login endpoint formatting.
- Update default `LOGIN_CODE_ENDPOINT` in `Config` to reflect new API path.
- Adjust ShadowJar build to transform SLF4J service files and exclude SLF4J dependencies during minimization.
- Replace `TagResolver` with string replacement for resolving login messages.
- Remove unused imports related to `TagResolver` and `Placeholder`.
- Update `resolveLogin` method signature and logic to use string replacements.
- Implement file saving to disk in `NotificationServer` with optional UUID-based organization.
- Use `Config` to configure `DOWNLOAD_DIR` and `PORT` for better flexibility.
- Update HTTP responses for improved clarity on file download and save operations.
- Introduce `/notify/{uuid}/{file}.json` endpoint in `NotificationServer`.
- Validate UUID format and handle bad requests with appropriate error responses.
- Extend `FileDownloadService` to support downloads using UUIDs.
- Refactor common file download logic for reuse across endpoints.
Configure package relocation to avoid dependency conflicts.
Update build process to produce minimized ShadowJar artifacts and disable default jar task.
- Introduce `NotificationServer` for handling HTTP notifications.
- Register `ProxyShutdownEvent` to stop the notification server on shutdown.
- Add `FileDownloadService` for asynchronous file downloads using the configured endpoint.
- Update `Config` to include `download-endpoint`.
- Add Javalin and SLF4J dependencies for the HTTP server.
Introduced a caching layer to reduce redundant login code requests to the server, improving performance and reducing load. Updated related code to ensure better error logging and clean up unused variables. Adjusted event handling in ProxyPlayerListener for improved execution order and ban message deserialization.
This commit introduces the WebInterface plugin with core modules, including a login command, reload command, and event listener for player bans. Gradle build files, configuration management, and supporting scripts (gradlew) are also included to enable project setup and build automation.