Open
Conversation
…nd command support
…ervice for dependency management
…ialization support
…r player references
…g player and friendship data
…es with caching and player management functions
…itory integration
…th name retrieval
… pending requests notifications
…quests based on player settings
…cache on save and delete
Contributor
There was a problem hiding this comment.
Pull request overview
This PR restructures the project for a new 1.21.11-3.0.0-SNAPSHOT development cycle by removing the Velocity/fallback implementation, introducing a Paper plugin + backend persistence layer, and cleaning IDE-specific metadata from the repository.
Changes:
- Replace
surf-friends-velocity+surf-friends-fallbackmodules withsurf-friends-paper(plugin) +surf-friends-backend(DB/repositories/services). - Refactor the shared API/core around
FriendPlayercaching via Redis and persistence via R2DBC Exposed tables/repositories. - Remove
.idea/*files from version control and ignore the.ideadirectory.
Reviewed changes
Copilot reviewed 84 out of 101 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/util/uuid-util.kt | Removed Velocity UUID/time/message utility code. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/util/friend-util.kt | Removed Velocity friend online utility extensions. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/util/FriendPermissionRegistry.kt | Removed Velocity permission constants. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/redis/listener/FriendshipRedisListener.kt | Removed Velocity Redis listener implementation. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/redis/listener/FriendRequestRedisListener.kt | Removed Velocity Redis listener implementation. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/redis/event/FriendRequestSendRedisEvent.kt | Removed Velocity Redis event type. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/redis/event/FriendRequestRevokeRedisEvent.kt | Removed Velocity Redis event type. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/redis/event/FriendRequestDenyRedisEvent.kt | Removed Velocity Redis event type. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/redis/event/FriendRequestAcceptRedisEvent.kt | Removed Velocity Redis event type. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/redis/event/FriendRemoveRedisEvent.kt | Removed Velocity Redis event type. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/listener/ConnectionListener.kt | Removed Velocity connection/disconnect handling. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/toggle/FriendSettingsSoundsCommand.kt | Removed Velocity toggle sounds subcommand. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/toggle/FriendSettingsCommand.kt | Removed Velocity settings subcommand group. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/toggle/FriendSettingsAnnouncementsCommand.kt | Removed Velocity toggle announcements subcommand. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/request/FriendRequestSendCommand.kt | Removed Velocity friend request send command. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/request/FriendRequestRevokeCommand.kt | Removed Velocity friend request revoke command. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/request/FriendRequestListCommand.kt | Removed Velocity friend request list command. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/request/FriendRequestDeclineCommand.kt | Removed Velocity friend request decline command. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/request/FriendRequestAcceptCommand.kt | Removed Velocity friend request accept command. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/friend/FriendRemoveCommand.kt | Removed Velocity friend remove command. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/friend/FriendListCommand.kt | Removed Velocity friend list command. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/friend/FriendJumpCommand.kt | Removed Velocity friend jump command. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/subcommand/friend/FriendInfoCommand.kt | Removed Velocity friend info command. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/argument/PlayerStringArgument.kt | Removed Velocity player argument helper. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/command/FriendCommand.kt | Removed Velocity root friend command registration. |
| surf-friends-velocity/src/main/kotlin/dev/slne/surf/friends/velocity/SurfFriendsPlugin.kt | Removed Velocity plugin entrypoint. |
| surf-friends-velocity/build.gradle.kts | Removed Velocity module build config. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/util/friend-util.kt | Adds Paper Player.friendPlayer accessor. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/redis/event/FriendRequestNotifyRedisEvent.kt | Adds Paper-side Redis event carrying a serialized Adventure component. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/redis/event/FriendNotifyRedisEvent.kt | Adds Paper-side Redis event carrying a serialized Adventure component. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/redis/FriendRedisListener.kt | Adds Paper Redis listeners gated by settings. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/permission/PermissionRegistry.kt | Adds Paper permissions registry wrapper. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/listener/SurfPlayerListener.kt | Adds network connect/disconnect notifications for friends. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/listener/PlayerConnectionListener.kt | Adds player cache lifecycle (configure/join/quit) for Paper. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/hook/SettingsHook.kt | Adds optional integration with surf-settings-paper. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/command/friend-command-util.kt | Adds Paper friend request + friendship command helpers and pagination. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/command/argument/request/SentFriendRequestArgument.kt | Adds CommandAPI argument for sent friend requests. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/command/argument/request/ReceivedFriendRequestArgument.kt | Adds CommandAPI argument for received friend requests. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/command/argument/friend/OfflineFriendArgument.kt | Adds CommandAPI argument to resolve friend players (async). |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/command/argument/friend/NonFriendOfflinePlayerArgument.kt | Adds CommandAPI argument to resolve non-friends (async). |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/command/argument/friend/FriendPlayerArgument.kt | Adds CommandAPI argument for cached friend players. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/command/FriendCommand.kt | Adds Paper command tree for friend, plus fa/fl aliases. |
| surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/PaperMain.kt | Adds Paper plugin entrypoint and loader wiring. |
| surf-friends-paper/build.gradle.kts | Adds Paper plugin Gradle configuration and dependencies. |
| surf-friends-fallback/src/main/kotlin/dev/slne/surf/friends/fallback/table/FriendShipTable.kt | Removed fallback DB table. |
| surf-friends-fallback/src/main/kotlin/dev/slne/surf/friends/fallback/table/FriendSettingsTable.kt | Removed fallback DB table. |
| surf-friends-fallback/src/main/kotlin/dev/slne/surf/friends/fallback/table/FriendRequestTable.kt | Removed fallback DB table. |
| surf-friends-fallback/src/main/kotlin/dev/slne/surf/friends/fallback/service/FallbackFriendService.kt | Removed fallback service implementation. |
| surf-friends-fallback/src/main/kotlin/dev/slne/surf/friends/fallback/service/FallbackDatabaseService.kt | Removed fallback database implementation. |
| surf-friends-fallback/src/main/kotlin/dev/slne/surf/friends/fallback/api/FallbackFriendApi.kt | Removed fallback API implementation. |
| surf-friends-fallback/build.gradle.kts | Removed fallback module build config. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/service/FriendShipService.kt | Adds service abstraction for persisting friendships. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/service/FriendRequestService.kt | Adds service abstraction for persisting friend requests. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/service/FriendPlayerService.kt | Adds service abstraction for caching/loading friend players. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/loader/RedisLoader.kt | Adds shared Redis loader + sync map cache. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/loader/DatabaseLoader.kt | Adds shared database loader abstraction. |
| surf-friends-core/build.gradle.kts | Switches core module to paper-raw plugin and enables Redis/Core Paper deps. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/service/FriendService.kt | Removed old monolithic friend service interface. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/service/DatabaseService.kt | Removed old monolithic database service interface. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/pair/CoreFriendSettings.kt | Removed old settings model. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/model/CoreFriendship.kt | Removed old friendship model. |
| surf-friends-core/src/main/kotlin/dev/slne/surf/friends/core/model/CoreFriendRequest.kt | Removed old friend request model. |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/table/FriendShipsTable.kt | Adds R2DBC Exposed table for friendships. |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/table/FriendRequestsTable.kt | Adds R2DBC Exposed table for friend requests. |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/table/FriendPlayerTable.kt | Adds R2DBC Exposed table for friend players. |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/service/FriendShipServiceImpl.kt | Implements friendship persistence + cache updates. |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/service/FriendRequestServiceImpl.kt | Implements friend request persistence + cache updates. |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/service/FriendPlayerServiceImpl.kt | Implements player caching via Redis sync map and DB loading. |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/repository/FriendShipRepository.kt | Adds friendship repository (load/save/delete). |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/repository/FriendRequestRepository.kt | Adds request repository (load/save/delete). |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/repository/FriendPlayerRepository.kt | Adds player repository (load/create/save). |
| surf-friends-backend/src/main/kotlin/dev/slne/surf/friends/backend/DatabaseLoaderImpl.kt | Implements schema setup + DB lifecycle. |
| surf-friends-backend/build.gradle.kts | Adds backend module Gradle config incl. surf-database R2DBC. |
| surf-friends-api/src/main/kotlin/dev/slne/surf/friends/api/util/FriendSettings.kt | Removed old FriendSettings interface. |
| surf-friends-api/src/main/kotlin/dev/slne/surf/friends/api/player/FriendPlayer.kt | Adds new serializable FriendPlayer data model. |
| surf-friends-api/src/main/kotlin/dev/slne/surf/friends/api/model/Friendship.kt | Removed old friendship interface model. |
| surf-friends-api/src/main/kotlin/dev/slne/surf/friends/api/model/FriendRequest.kt | Removed old friend request interface model. |
| surf-friends-api/src/main/kotlin/dev/slne/surf/friends/api/friend/Friendship.kt | Adds new serializable friendship model + factory. |
| surf-friends-api/src/main/kotlin/dev/slne/surf/friends/api/friend/FriendRequest.kt | Adds new serializable friend request model + factory. |
| surf-friends-api/src/main/kotlin/dev/slne/surf/friends/api/SurfFriendsApi.kt | Collapses SurfFriendsApi to a marker + requiredService accessor. |
| surf-friends-api/build.gradle.kts | Switches API module to paper-raw plugin and Core Paper deps. |
| settings.gradle.kts | Updates included modules to backend + paper. |
| gradle/wrapper/gradle-wrapper.properties | Normalizes wrapper properties formatting. |
| gradle/libs.versions.toml | Removes version catalog file (surf-database entry). |
| gradle.properties | Bumps project version to 1.21.11-3.0.0-SNAPSHOT. |
| .idea/vcs.xml | Removed IDE metadata. |
| .idea/modules/surf-friends-velocity/surf-friends.surf-friends-velocity.main.iml | Removed IDE module metadata. |
| .idea/modules/surf-friends-fallback/surf-friends.surf-friends-fallback.main.iml | Removed IDE module metadata. |
| .idea/modules/surf-friends-core/surf-friends.surf-friends-core.main.iml | Removed IDE module metadata. |
| .idea/modules/surf-friends-api/surf-friends.surf-friends-api.main.iml | Removed IDE module metadata. |
| .idea/misc.xml | Removed IDE metadata. |
| .idea/material_theme_project_new.xml | Removed IDE metadata. |
| .idea/kotlinc.xml | Removed IDE metadata. |
| .idea/gradle.xml | Removed IDE metadata. |
| .idea/discord.xml | Removed IDE metadata. |
| .idea/copilot.data.migration.edit.xml | Removed IDE metadata. |
| .idea/copilot.data.migration.ask2agent.xml | Removed IDE metadata. |
| .idea/copilot.data.migration.agent.xml | Removed IDE metadata. |
| .idea/compiler.xml | Removed IDE metadata. |
| .idea/.gitignore | Removed IDE metadata. |
| .gitignore | Ignores .idea directory. |
Files not reviewed (15)
- .idea/.gitignore: Language not supported
- .idea/compiler.xml: Language not supported
- .idea/copilot.data.migration.agent.xml: Language not supported
- .idea/copilot.data.migration.ask2agent.xml: Language not supported
- .idea/copilot.data.migration.edit.xml: Language not supported
- .idea/discord.xml: Language not supported
- .idea/gradle.xml: Language not supported
- .idea/kotlinc.xml: Language not supported
- .idea/material_theme_project_new.xml: Language not supported
- .idea/misc.xml: Language not supported
- .idea/modules/surf-friends-api/surf-friends.surf-friends-api.main.iml: Language not supported
- .idea/modules/surf-friends-core/surf-friends.surf-friends-core.main.iml: Language not supported
- .idea/modules/surf-friends-fallback/surf-friends.surf-friends-fallback.main.iml: Language not supported
- .idea/modules/surf-friends-velocity/surf-friends.surf-friends-velocity.main.iml: Language not supported
- .idea/vcs.xml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/util/friend-util.kt
Show resolved
Hide resolved
...iends-paper/src/main/kotlin/dev/slne/surf/friends/paper/listener/PlayerConnectionListener.kt
Show resolved
Hide resolved
...ain/kotlin/dev/slne/surf/friends/paper/command/argument/request/SentFriendRequestArgument.kt
Show resolved
Hide resolved
...kotlin/dev/slne/surf/friends/paper/command/argument/request/ReceivedFriendRequestArgument.kt
Show resolved
Hide resolved
surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/command/friend-command-util.kt
Show resolved
Hide resolved
surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/permission/PermissionRegistry.kt
Show resolved
Hide resolved
...s-backend/src/main/kotlin/dev/slne/surf/friends/backend/repository/FriendPlayerRepository.kt
Show resolved
Hide resolved
...ain/kotlin/dev/slne/surf/friends/paper/command/argument/request/SentFriendRequestArgument.kt
Show resolved
Hide resolved
...kotlin/dev/slne/surf/friends/paper/command/argument/request/ReceivedFriendRequestArgument.kt
Show resolved
Hide resolved
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 84 out of 101 changed files in this pull request and generated 5 comments.
Files not reviewed (15)
- .idea/.gitignore: Language not supported
- .idea/compiler.xml: Language not supported
- .idea/copilot.data.migration.agent.xml: Language not supported
- .idea/copilot.data.migration.ask2agent.xml: Language not supported
- .idea/copilot.data.migration.edit.xml: Language not supported
- .idea/discord.xml: Language not supported
- .idea/gradle.xml: Language not supported
- .idea/kotlinc.xml: Language not supported
- .idea/material_theme_project_new.xml: Language not supported
- .idea/misc.xml: Language not supported
- .idea/modules/surf-friends-api/surf-friends.surf-friends-api.main.iml: Language not supported
- .idea/modules/surf-friends-core/surf-friends.surf-friends-core.main.iml: Language not supported
- .idea/modules/surf-friends-fallback/surf-friends.surf-friends-fallback.main.iml: Language not supported
- .idea/modules/surf-friends-velocity/surf-friends.surf-friends-velocity.main.iml: Language not supported
- .idea/vcs.xml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...ain/kotlin/dev/slne/surf/friends/paper/command/argument/request/SentFriendRequestArgument.kt
Show resolved
Hide resolved
...kotlin/dev/slne/surf/friends/paper/command/argument/request/ReceivedFriendRequestArgument.kt
Show resolved
Hide resolved
surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/util/friend-util.kt
Show resolved
Hide resolved
surf-friends-paper/src/main/kotlin/dev/slne/surf/friends/paper/hook/SettingsHook.kt
Show resolved
Hide resolved
...nds-backend/src/main/kotlin/dev/slne/surf/friends/backend/service/FriendPlayerServiceImpl.kt
Show resolved
Hide resolved
JoField08
approved these changes
Mar 6, 2026
JoField08
approved these changes
Mar 16, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 primarily removes various IDE-specific configuration files and makes several updates to the project structure and build configuration. The changes focus on cleaning up project metadata, updating the module setup, and incrementing the project version for a new release cycle.
Project structure and build configuration updates:
settings.gradle.kts, replacingsurf-friends-velocityandsurf-friends-fallbackwithsurf-friends-backendandsurf-friends-paperto reflect a new project structure.surf-friends-api/build.gradle.ktstodev.slne.surf.surfapi.gradle.paper-rawand added asurfRawPaperApiblock withwithCorePaper()to adjust the build for the new module setup.surf-databaselibrary version and dependency fromgradle/libs.versions.toml, indicating it is no longer needed.gradle.propertiesfrom1.21.11-2.0.2-SNAPSHOTto1.21.11-3.0.0-SNAPSHOTfor the next development cycle.IDE and metadata cleanup:
.ideaconfiguration files and module facet settings, removing IDE-specific and Minecraft facet metadata from the repository. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]