← ClaudeAtlas

nms-packet-interceptorlisted

透過 Netty ChannelDuplexHandler 注入玩家連線管線,攔截/修改 Clientbound 與 Serverbound 封包 / Intercept and modify packets via Netty pipeline injection
MrPippi/MJP-Claude-Skills · ★ 1 · Data & Documents · score 70
Install: claude install-skill MrPippi/MJP-Claude-Skills
# NMS Packet Interceptor / NMS 封包攔截器 ## 技能名稱 / Skill Name `nms-packet-interceptor` ## 目的 / Purpose 在玩家的 Netty 連線管線中注入自訂 `ChannelDuplexHandler`,於封包進入/離開伺服器時進行讀取、修改或取消。常用於反外掛、封包記錄、自訂通訊協議、偽造資訊等場景。 ## NMS 版本需求 / NMS Version Requirements - Paper 1.21 – 1.21.3 - Paperweight userdev 1.7.2+ - Netty 4.x(Paper 內建) ## 觸發條件 / Triggers - 「封包攔截」「packet intercept」「netty pipeline」 - 「channel handler」「封包監聽」「修改封包」 - 「packet listener」「anti-cheat packet」 ## 輸入參數 / Inputs | 參數 | 範例 | 說明 | |------|------|------| | `package_name` | `com.example.network` | ���出類別所在 package | | `handler_name` | `PacketInterceptor` | Handler 類別名稱 | | `manager_name` | `InterceptorManager` | 管理器類別名稱 | | `handler_id` | `myplugin_interceptor` | Netty pipeline 中的 handler 名稱(須唯一) | ## 輸出產物 / Outputs - `PacketInterceptor.java` — `ChannelDuplexHandler` 實作 - `InterceptorManager.java` — 監聽 Join/Quit 事件管理注入/移除 - `InterceptorListener.java` — Bukkit 事件監聽器 ## Paperweight 建置設定 / Build Setup 參見 `Skills/paper-nms/PLATFORM.md`。Netty 隨 Paper 提供,無需額外依賴。 ## 代碼範本 / Code Template ### `PacketInterceptor.java` ```java package com.example.network; import io.netty.channel.ChannelDuplexHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelPromise; import net.minecraft.network.protocol.Packet; import org.bukkit.entity.Player; import java.util.UUID; import java.util.function.BiFunction; @SuppressWarnings("UnstableApiUsage") public final class PacketInterceptor extends ChannelDuplexHandler {