Skip to content

Conversation

@LOOHP
Copy link
Collaborator

@LOOHP LOOHP commented Dec 7, 2025

Migrated code in preparation for 4.3.5.0 new protocol platform api.

LOOHP/InteractiveChat@57e8a36

Summary by CodeRabbit

Release Notes

  • New Features

    • Added Folia server support
    • Migrated to Gradle build system
  • Bug Fixes

    • Refactored packet handling framework for improved stability
  • Changes

    • Version bumped to 1.1.0
    • Removed update check command
    • Updated plugin version requirement from v4.3.0.0 to v4.3.5.0
    • Updated repository reference in documentation

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Dec 7, 2025

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This pull request performs a comprehensive migration from Maven to Gradle, removes command-handling functionality and several packet listener implementations, refactors the platform abstraction layer with new packet event wrappers and providers, and updates configuration and version metadata to 1.1.0.

Changes

Cohort / File(s) Summary
Build System Migration
.github/dependabot.yml, .github/workflows/main.yml, pom.xml, build.gradle.kts, gradle.properties, gradle/libs.versions.toml, gradle/wrapper/gradle-wrapper.properties, gradlew, gradlew.bat, settings.gradle.kts, .gitignore
Replaces Maven-based build with Gradle; updates CI workflow to use JDK 17, Gradle caching, and new artifact paths; adds Gradle wrapper configuration and properties for parallel/cached builds; removes pom.xml entirely.
Command System Removal
src/main/java/net/skullian/InteractiveChatPacketEvents.java, src/main/java/net/skullian/command/CommandHandler.java, src/main/java/net/skullian/command/subcmd/CheckUpdateCommand.java, src/main/resources/config.yml
Deletes command registration bootstrap, CommandHandler class, CheckUpdateCommand subcommand, and priority configuration entries.
Legacy Packet Listeners Removal
src/main/java/net/skullian/listeners/PEClientSettingsPacket.java, src/main/java/net/skullian/listeners/PEOutMessagePacket.java, src/main/java/net/skullian/listeners/PEOutTabCompletePacket.java, src/main/java/net/skullian/listeners/PERedispatchSignedPacket.java, src/main/java/net/skullian/listeners/PEServerPingListener.java
Removes direct packet interception, transformation, and re-sending logic including client settings, outbound message processing, tab completion, chat command redispatch, and server ping listeners.
Platform Layer Core Refactoring
src/main/java/net/skullian/platform/PacketEventsPlatform.java, src/main/java/net/skullian/platform/PacketEventsAsyncChatSendingExecutor.java
Converts PacketEventsPlatform to generic implementation with new listener and creator providers; removes legacy chat-sending executor; adds protocol-aware packet sending with filtering flag.
New Packet Event System
src/main/java/net/skullian/platform/PacketEventsOutMessagePacketHelper.java, src/main/java/net/skullian/platform/PacketEventsPacketCreatorProvider.java, src/main/java/net/skullian/platform/PacketEventsPacketEvent.java, src/main/java/net/skullian/platform/PacketEventsPacketListenerProvider.java
Introduces unified packet handling infrastructure with message/title transformation helpers, packet factory provider, generic packet event wrapper, and comprehensive listener registration system for multiple packet categories.
Packet Wrapper Implementations
src/main/java/net/skullian/platform/packets/PacketEvents*Packet.java (12 files)
Adds concrete packet wrapper adapters for handshake, status, configuration, play client/server, system chat, tab completion, and unified chat message packets; each provides cloning, field access, and serialization logic.
Utility & Dependency Updates
src/main/java/net/skullian/updater/UpdateListener.java, src/main/java/net/skullian/updater/Updater.java, src/main/java/net/skullian/util/ChatUtils.java, src/main/java/net/skullian/util/GithubBuildInfo.java, src/main/java/net/skullian/util/GithubUtils.java
Switches scheduler from Bukkit to external Scheduler utility; updates build info from JSON/Instant to properties-based record; adapts GithubBuildInfo constructor signature.
Manifest & Documentation
README.md, src/main/resources/plugin.yml
Updates version to 1.1.0, adds Skullians/LOOHP authors, enables Folia support, removes cloud-paper dependency; tightens InteractiveChat version requirement from v4.3.0.0 to v4.3.5.0 and refocuses permissions section.

Sequence Diagram

sequenceDiagram
    participant Plugin as Plugin
    participant PE as PacketEvents API
    participant LP as PacketEventsPacketListenerProvider
    participant OH as PacketEventsOutMessagePacketHelper
    participant PEE as PacketEventsPacketEvent
    participant PW as PacketWrapper

    rect rgb(200, 220, 255)
    note over Plugin,PW: Packet Event Registration (Initialization)
    Plugin->>LP: listenToPlayServerUnifiedChatMessage()
    LP->>PE: onPacketSend subscription
    end

    rect rgb(220, 240, 200)
    note over Plugin,PW: Packet Send Flow (New System)
    PE->>LP: onPacketSend(ProtocolPacketEvent)
    activate LP
    LP->>OH: getPacketHandlers()
    activate OH
    OH-->>LP: MessagePacketHandler for packet type
    deactivate OH
    LP->>PEE: new PacketEventsPacketEvent(event, converter)
    activate PEE
    LP->>PEE: delegates packet processing
    PEE->>PW: getPacket() conversion
    deactivate PEE
    deactivate LP
    end

    rect rgb(255, 240, 200)
    note over Plugin,PW: Legacy System (Removed)
    autonumber off
    Plugin--xLP: old PEOutMessagePacket listener
    note right of Plugin: Deleted: direct packet<br/>interception & transformation
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Poem

Hop, hop, hooray! From Maven's reign to Gradle's way,
Packets wrapped in shiny new displays,
Commands fade like morning dew so bright,
Version 1.1 springs forth with delight! 🐰✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 53bab93 and b0a1b6b.

📒 Files selected for processing (43)
  • .github/dependabot.yml
  • .github/workflows/main.yml
  • .gitignore
  • README.md
  • build.gradle.kts
  • gradle.properties
  • gradle/libs.versions.toml
  • gradle/wrapper/gradle-wrapper.properties
  • gradlew
  • gradlew.bat
  • pom.xml
  • settings.gradle.kts
  • src/main/java/net/skullian/InteractiveChatPacketEvents.java
  • src/main/java/net/skullian/command/CommandHandler.java
  • src/main/java/net/skullian/command/subcmd/CheckUpdateCommand.java
  • src/main/java/net/skullian/listeners/PEClientSettingsPacket.java
  • src/main/java/net/skullian/listeners/PEOutMessagePacket.java
  • src/main/java/net/skullian/listeners/PEOutTabCompletePacket.java
  • src/main/java/net/skullian/listeners/PERedispatchSignedPacket.java
  • src/main/java/net/skullian/listeners/PEServerPingListener.java
  • src/main/java/net/skullian/platform/PacketEventsAsyncChatSendingExecutor.java
  • src/main/java/net/skullian/platform/PacketEventsOutMessagePacketHelper.java
  • src/main/java/net/skullian/platform/PacketEventsPacketCreatorProvider.java
  • src/main/java/net/skullian/platform/PacketEventsPacketEvent.java
  • src/main/java/net/skullian/platform/PacketEventsPacketListenerProvider.java
  • src/main/java/net/skullian/platform/PacketEventsPlatform.java
  • src/main/java/net/skullian/platform/packets/PacketEventsConfigurationClientClientInformationPacket.java
  • src/main/java/net/skullian/platform/packets/PacketEventsHandshakeClientSetProtocolPacket.java
  • src/main/java/net/skullian/platform/packets/PacketEventsPlayClientChatCommandPacket.java
  • src/main/java/net/skullian/platform/packets/PacketEventsPlayClientChatPacket.java
  • src/main/java/net/skullian/platform/packets/PacketEventsPlayServerCustomChatCompletionPacket.java
  • src/main/java/net/skullian/platform/packets/PacketEventsPlayServerServerDataPacket.java
  • src/main/java/net/skullian/platform/packets/PacketEventsPlayServerSystemChatPacket.java
  • src/main/java/net/skullian/platform/packets/PacketEventsPlayServerTabCompletePacket.java
  • src/main/java/net/skullian/platform/packets/PacketEventsPlayServerUnifiedChatMessagePacket.java
  • src/main/java/net/skullian/platform/packets/PacketEventsStatusServerServerInfoPacket.java
  • src/main/java/net/skullian/updater/UpdateListener.java
  • src/main/java/net/skullian/updater/Updater.java
  • src/main/java/net/skullian/util/ChatUtils.java
  • src/main/java/net/skullian/util/GithubBuildInfo.java
  • src/main/java/net/skullian/util/GithubUtils.java
  • src/main/resources/config.yml
  • src/main/resources/plugin.yml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@LOOHP LOOHP marked this pull request as ready for review December 24, 2025 00:34
@LOOHP LOOHP merged commit 6d71978 into TerraByteDev:main Dec 24, 2025
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants