generate-proxy-event-listenerlisted
Install: claude install-skill MrPippi/MJP-Claude-Skills
# Generate Proxy Event Listener / 產生 Velocity 事件監聽器
## 技能名稱 / Skill Name
generate-proxy-event-listener
## 目的 / Purpose
依使用者指定的 Velocity 事件清單,產生完整的 `@Subscribe` 事件監聽器類別,含 PostOrder、ResultedEvent 處理、正確的 Guice 注入範例。
## 觸發條件 / Triggers
- 「監聽 Velocity 事件」
- 「proxy event listener」
- 「@Subscribe」
- 「LoginEvent / PostLoginEvent / DisconnectEvent」
- 「server switch event」
- 「PlayerChooseInitialServerEvent」
## 輸入參數 / Inputs
| 參數 | 範例 | 說明 |
|------|------|------|
| `listener_name` | `ConnectionListener` | 監聽器類別名稱 |
| `events` | `["PostLoginEvent", "DisconnectEvent", "ServerConnectedEvent"]` | 要監聽的事件列表 |
| `plugin_package` | `com.mynetwork.myplugin` | 插件套件名稱 |
| `deny_on_login` | `false` | 是否需要在 LoginEvent 拒絕連線(ResultedEvent 模式) |
## 輸出產物 / Outputs
- `{ListenerName}.java` — 完整的事件監聽器類別
## 代碼範本 / Code Template
```java
package {plugin_package}.listeners;
import com.velocitypowered.api.event.PostOrder;
import com.velocitypowered.api.event.ResultedEvent;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.DisconnectEvent;
import com.velocitypowered.api.event.connection.LoginEvent;
import com.velocitypowered.api.event.connection.PostLoginEvent;
import com.velocitypowered.api.event.player.PlayerChooseInitialServerEvent;
import com.velocitypowered.api.event.player.ServerConnectedEvent;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.server.RegisteredServer;
im