起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
主なフィールド
ProtocolLib が入っている時だけ使用する、しもべ由来エンティティサウンドの遮断ブリッジ。
com.example.rankingplugin.levellevel/LevelServantProtocolSoundMuteBridge.javaclassProtocolLib が入っている時だけ使用する、しもべ由来エンティティサウンドの遮断ブリッジ。 Paper の silent / death sound 制御で取り切れないケースを packet 層で塞ぐ。
ProtocolLib が入っている時だけ使用する、しもべ由来エンティティサウンドの遮断ブリッジ。level パッケージの 小規模クラスで、責務境界の要点を確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。
LevelServantProtocolSoundMuteBridgeregisterunregisterresolveSoundPacketTypesaddIfPresentresolveSourceEntityId初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
LevelServantProtocolSoundMuteBridgeregisterunregisterresolveSoundPacketTypesaddIfPresentresolveSourceEntityIdイベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
| Visibility | Type | Name | 役割 |
|---|---|---|---|
private | Plugin | plugin | プラグイン本体参照です。 |
private | LevelServantService | owner | owner の状態を保持します。 |
private | PacketAdapter | adapter | adapter の状態を保持します。 |
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public LevelServantProtocolSoundMuteBridge(Plugin plugin, LevelServantService owner) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | 主要呼び出しなし |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| LevelServantProtocolSoundMuteBridge | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| register | public | メソッド | 初期化と各種登録を行い、機能を有効化します。 |
| unregister | public | メソッド | unregister の主要処理を担当します。 |
| resolveSoundPacketTypes | private | メソッド | resolveSoundPacketTypes の主要処理を担当します。 |
| addIfPresent | private | メソッド | addIfPresent の主要処理を担当します。 |
| resolveSourceEntityId | private | メソッド | resolveSourceEntityId の主要処理を担当します。 |
public LevelServantProtocolSoundMuteBridge(Plugin plugin, LevelServantService owner)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
Plugin pluginLevelServantService ownerなし
public boolean register()初期化と各種登録を行い、機能を有効化します。
なし
public void unregister()unregister の主要処理を担当します。
なし
private static PacketType[] resolveSoundPacketTypes()resolveSoundPacketTypes の主要処理を担当します。
なし
private static void addIfPresent(List<PacketType> out, String fieldName)addIfPresent の主要処理を担当します。
List<PacketType> outString fieldNameなし
private Integer resolveSourceEntityId(PacketContainer packet)resolveSourceEntityId の主要処理を担当します。
PacketContainer packetなし
register → resolveSoundPacketTypes → getProtocolManager → onPacketSending → isPlayerTemporary → getPacketresolveSourceEntityId → getIntegers → size → read → getHandle → getClassaddIfPresent → getField → containsresolveSoundPacketTypes → addIfPresent → toArrayunregister → getProtocolManager → removePacketListener