This repository was archived by the owner on Dec 10, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Add OfflineCloudPlayer, Refactor & Restructure of Cloud API, Player Persistence, and Project Modules #9
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Closed
5 tasks
…implify caching logic
…quest handling for offline player display names
…and repository support
…ttings, and adjust dependencies
…er tick condition
…OfflinePlayerData packets to the protocol
This commit overhauls the player persistence and network data handling layers by: • Removing legacy JPA-based implementations: - Deleted JPA entities, repositories, and services (e.g. CloudPlayerEntity, CloudPlayerNameHistoryEntity, CloudPlayerRepository, CloudPlayerService in the JPA flavor) along with outdated test files. • Introducing an Exposed DAO persistence layer: - Added new Exposed-based CloudPlayerEntity and CloudPlayerNameHistoryEntity classes and their corresponding tables. - Created new CloudPlayerTables (and migration script V1__Add_cloud_player_tables.sql) to support the updated data schema. - Implemented a new CloudPlayerService using Exposed DAO and adjusted DAO service methods for player lookup, creation, and updates. • Updating player management and data retrieval: - Modified StandaloneCloudPlayerImpl to store player name and IP address; its methods now delegate to the new Exposed service. - Enhanced OfflineCloudPlayerImpl to request updated player metadata (latest IP, last server, display name, name history, etc.) using newly defined netty request/response packets. - Added new serverbound data packets (ServerboundRequestPlayerDataPacket/DataRequestType and ServerboundRequestPlayerDataResponse) for handling various player data queries. • Refining Netty protocol and network configuration: - Updated netty listener pipelines to use a configurable logging level (based on cloud configuration). - Adjusted packet registration and handling to integrate the new request/response flows. • Build and configuration improvements: - Upgraded the Exposed dependency to version 0.60.0. - Added necessary dependencies (Flyway, MySQL Connector, Spring Instrument) and updated Gradle build files. - Introduced additional Spring configuration classes (AdditionalStandaloneConfiguration, PluginDatabaseConfig) to streamline the standalone module setup. This migration from JPA to an Exposed-based persistence model simplifies database interactions and unifies player data retrieval through standardized netty protocols. It also improves clarity and consistency in the overall player management codebase.
Contributor
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 319 out of 332 changed files in this pull request and generated no comments.
Files not reviewed (13)
- .idea/dataSources.xml: Language not supported
- .idea/inspectionProfiles/Project_Default.xml: Language not supported
- buildSrc/src/main/kotlin/core-convention.gradle.kts: Language not supported
- buildSrc/src/main/kotlin/exclude-kotlin.gradle.kts: Language not supported
- buildSrc/src/main/kotlin/library-conventions.gradle.kts: Language not supported
- docs/build.gradle.kts: Language not supported
- gradle.properties: Language not supported
- gradle/wrapper/gradle-wrapper.properties: Language not supported
- settings.gradle.kts: Language not supported
- surf-cloud-api/surf-cloud-api-client/build.gradle.kts: Language not supported
- surf-cloud-api/surf-cloud-api-client/surf-cloud-api-client-common/api/surf-cloud-api-client-common.api: Language not supported
- surf-cloud-api/surf-cloud-api-client/surf-cloud-api-client-common/build.gradle.kts: Language not supported
- surf-cloud-api/surf-cloud-api-client/surf-cloud-api-client-paper/api/surf-cloud-api-client-paper.api: Language not supported
Comments suppressed due to low confidence (1)
.github/workflows/qodana_code_quality.yml:12
- The 'uses: production' line appears non-standard; please verify that it correctly references an existing reusable workflow or action required for the Qodana job.
uses: production
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
dependencies
Pull requests that update a dependency file
status: accepted
Disputed bug is accepted as valid or Feature accepted as desired to be added.
status: in progress
Issue is currently being worked on
status: needs testing
Issue needs testing to confirm resolution.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request represents a major progress milestone in our ongoing refactoring and consolidation effort. It includes a wide range of changes spanning multiple modules and layers of the project. Key changes include:
Module Restructuring and Reorganization:
Player Persistence and Data Handling:
Network Protocol and Teleportation Utilities:
Build and Configuration Enhancements: