← ClaudeAtlas

generate-event-listenerlisted

依使用者指定的 Bukkit/Paper 事件名稱清單,產生對應的 Listener 類別骨架,含正確的 @EventHandler 宣告、EventPriority 設定、ignoreCancelled 選項、常見欄位取用範例,以及在主類中的註冊方式。當使用者說「監聽事件」、「幫我寫 Listener」、「EventHandler 怎麼用」、「產生事件監聽器」時自動應用。
MrPippi/MJP-Claude-Skills · ★ 1 · Data & Documents · score 70
Install: claude install-skill MrPippi/MJP-Claude-Skills
# Generate Event Listener Skill ## 目標 依使用者提供的事件名稱清單,產生結構正確、可直接貼入專案的 `Listener` 實作類別,包含常用欄位存取範例與執行緒安全提醒。 --- ## 使用流程 1. **詢問事件清單**:使用者列出要監聽的事件(例:`PlayerJoinEvent, BlockBreakEvent`) 2. **詢問選項**: - EventPriority(預設 `NORMAL`) - 是否 `ignoreCancelled`(預設 `true`) - 是否需要取消事件(`event.setCancelled(true)`) 3. **產生 Listener 類別**:含所有指定事件的 handler 方法 4. **輸出註冊方式**:在 `onEnable()` 中呼叫 --- ## 輸入參數說明 | 參數 | 範例 | 說明 | |------|------|------| | `class_name` | `PlayerListener` | 類別名稱 | | `package` | `com.example.myplugin.listeners` | 套件名 | | `events` | `PlayerJoinEvent, PlayerQuitEvent` | 要監聽的事件清單 | | `priority` | `NORMAL` | EventPriority(LOW/NORMAL/HIGH/HIGHEST/MONITOR) | | `ignore_cancelled` | `true` | 是否忽略已取消的事件 | --- ## 代碼範本 ### 玩家事件 Listener ```java package com.example.myplugin.listeners; import com.example.myplugin.MyPlugin; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerDeathEvent; public class PlayerListener implements Listener { private final MyPlugin plugin; public PlayerListener(MyPlugin plugin) { this.plugin = plugin; } @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onPlayerJoi