Skip to content
This repository was archived by the owner on Dec 10, 2025. It is now read-only.

Conversation

@twisti-dev
Copy link
Contributor

No description provided.

- Added `CloudPlayerCacheImpl` as the core implementation of player caching.
- Introduced various cache types: `CacheListImpl`, `CacheSetImpl`, `CacheMapImpl`, and `CacheStructuredImpl` for structured data handling.
- Developed `EntryMeta` to manage cache entry metadata, supporting multiple entry types.
- Implemented delta packets (`PlayerCacheListDeltaPacket`, `PlayerCacheSetDeltaPacket`, etc.) for partial synchronization.
- Created full synchronization packets (`PlayerCacheFullSyncPacket`, `PlayerCacheRequestFullSyncPacket`) to support player state consistency.
- Included `ChangeCounter` for tracking cache mutations and ensuring synchronization accuracy.
- Refactored `AdventureKeySerializer` to streamline serialization logic.
- Refactored `createIndexLookup` to use lambdas instead of `ToIntFunction` for improved Kotlin friendliness.
- Introduced `ByIdMap` utility for sparse and continuous ID mapping with out-of-bounds strategies.
- Updated `StringRepresentable` to replace `serializedName` property with a function for better extensibility.
- Streamlined codecs with `idResolverCodec` and `orCompressed` for flexible encoding/decoding.
- Added stubs for server and client cache handling operations to align with caching protocols.
- Enhanced `PlayerCacheKeyRegistryImpl` and player cache packet listeners with method placeholders for synchronization.
…pplication customization

- Introduced `FlywayDisabler` to handle dynamic Flyway configuration based on `StandaloneConfigHolder`.
- Enhanced `StandaloneConfigHolder` to include Flyway-specific settings and a global configuration accessor.
- Updated `PluginFlywayConfigurationCustomizer` with Flyway-related application customization.
- Added `CloudSpringApplicationConfiguration` interface for modular Spring application configuration.
- Centralized Flyway configuration logic with caching mechanisms for improved performance and reuse.
- Refactored database configuration to include additional Flyway options.
- Introduced `PluginCommand` for managing and displaying plugin-related information via console commands.
- Enhanced `Entrypoint` with a `toString` override for improved debug output.
- Made `LaunchEntryPointHandler.get` function public to enable wider reuse within the application.
- Bumped `org.springframework.boot`, Netty, LuckPerms API, JLine, and other library versions for stability and improvements.
- Refactored `FlywayDisabler` to `FlywayConfigurer` with support for custom Flyway configuration via `StandaloneConfigHolder`.
- Simplified `PluginCommand` command registration logic and addressed minor redundant operations.
- Removed unused `standalone-config.yml` reference in `CloudServerConfigProvider`.
- Updated element validation to ensure indices are within a continuous valid range.
- Fixed incorrect object array creation for better type safety.
Copilot AI review requested due to automatic review settings October 1, 2025 17:05
@github-project-automation github-project-automation bot moved this to Backlog in surf-cloud Oct 1, 2025
@twisti-dev twisti-dev enabled auto-merge October 1, 2025 17:05
@twisti-dev twisti-dev disabled auto-merge October 1, 2025 17:05
@twisti-dev twisti-dev merged commit f5dbe9f into master Oct 1, 2025
@github-project-automation github-project-automation bot moved this from Backlog to Done in surf-cloud Oct 1, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces a comprehensive player cache system for the cloud platform, implementing caching mechanisms with network synchronization and persistence capabilities.

  • Implements player cache infrastructure with server-side management and storage adapters
  • Adds network protocols for cache operations, synchronization, and hydration
  • Refactors configuration system for better database and Flyway management

Reviewed Changes

Copilot reviewed 92 out of 92 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
surf-cloud-standalone/.../FlywayConfigurer.kt New Spring configuration for Flyway management
surf-cloud-standalone/.../ServerPlayerCacheManager.kt Core server-side player cache management with operations and synchronization
surf-cloud-standalone/.../ServerPlayerCache.kt Player cache implementation with concurrent operations and versioning
surf-cloud-standalone/.../StandaloneConfigHolder.kt Configuration holder with Flyway enablement check
surf-cloud-core/.../PlayerCacheKeyRegistryImpl.kt Implementation of cache key registry with TODO methods
surf-cloud-core/.../OperationCoders.kt Encoding/decoding logic for cache operations
surf-cloud-core/.../ClientboundCacheDeltaPacket.kt Network packet for cache delta synchronization
surf-cloud-api/.../CacheKey.kt Interface definitions for different cache key types
surf-cloud-api/.../ByteBufCodecs.kt Stream codecs for various data types including UUID, Sound, etc.

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@twisti-dev twisti-dev deleted the feat/player-cache branch October 1, 2025 17:10
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants