← ClaudeAtlas

nms-packet-senderlisted

產生封包發送工具類,透過 ServerPlayer.connection 將 Clientbound 封包推送至客戶端(Paper NMS + Mojang-mapped)/ Generate packet sender utility to push Clientbound packets via ServerPlayer.connection
MrPippi/MJP-Claude-Skills · ★ 1 · Data & Documents · score 70
Install: claude install-skill MrPippi/MJP-Claude-Skills
# NMS Packet Sender / NMS 封包發送器 ## 技能名稱 / Skill Name `nms-packet-sender` ## 目的 / Purpose 產生標準的 NMS 封包發送工具類,涵蓋單人、多人、廣播、延遲發送等情境。所有發送點透過 `ServerPlayer.connection.send(Packet<?>)` 進入 Netty write queue。 ## NMS 版本需求 / NMS Version Requirements - Paper 1.21 – 1.21.3 - Paperweight userdev 1.7.2+ - Mojang mappings(已由 Paper 1.20.5+ 原生支援) ## 觸發條件 / Triggers - 「封包發送」「packet sender」「自定義封包」「custom packet」 - 「Clientbound」「推送封包」「send packet」 - 「PacketPlayOut」「ProtocolLib 替代」 ## 輸入參數 / Inputs | 參數 | 範例 | 說明 | |------|------|------| | `package_name` | `com.example.network` | 產出類別所在 package | | `class_name` | `PacketSender` | 工具類名稱 | | `include_batch` | `true` | 是否產生批次/廣播方法 | | `include_async` | `true` | 是否產生延遲/非同步發送方法 | ## 輸出產物 / Outputs - `PacketSender.java` — 主工具類(static 方法) - `PacketBuilder.java`(選)— 常見 Clientbound 封包建構器 ## Paperweight 建置設定 / Build Setup 參見 `Skills/paper-nms/PLATFORM.md`。關鍵依賴: ```groovy dependencies { paperweight.paperDevBundle('1.21.1-R0.1-SNAPSHOT') } ``` ## 代碼範本 / Code Template ### `PacketSender.java` ```java package com.example.network; import net.minecraft.network.protocol.Packet; import net.minecraft.server.level.ServerPlayer; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.craftbukkit.v1_21_R1.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import java.util.Collection; import java.util.Objects; @SuppressWarnings("UnstableApiUsage") public final class PacketSender { private PacketS