起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
Citizens が存在する場合に、しもべを本物の PLAYER NPC として扱うための軽量ブリッジ。
com.example.rankingplugin.levellevel/LevelServantCitizensBridge.javaclassCitizens が存在する場合に、しもべを本物の PLAYER NPC として扱うための軽量ブリッジ。 戦闘ロジックは RankingPlugin 側で持ち、Citizens には PLAYER エンティティ生成とナビゲーションだけを任せる。
Citizens が存在する場合に、しもべを本物の PLAYER NPC として扱うための軽量ブリッジ。level パッケージの中でも 719 行規模の中核クラスで、複数責務の集約点が一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。
LevelServantCitizensBridgecreateNpcspawnspawnNpcsyncapplyEquipmentapplyMaxHealthapplySkinapplySkinData初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。
メモリ状態と保存状態を揃え、結果を次の呼び出しや画面表示へ繋ぐ部分です。
停止時やフロー終端で残る実体・タスク・キャッシュを戻す出口です。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
このクラス内で直接見つかる主な Web ルート/項目名です。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public LevelServantCitizensBridge(Plugin plugin) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | 主要呼び出しなし |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| LevelServantCitizensBridge | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| isAvailable | public | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| spawn | public | メソッド | spawn の主要処理を担当します。 |
| destroy | public | メソッド | destroy の主要処理を担当します。 |
| cleanupOrphanedServants | public | メソッド | cleanupOrphanedServants の主要処理を担当します。 |
| cleanupOrphanedServants | public | メソッド | cleanupOrphanedServants の主要処理を担当します。 |
| sync | public | メソッド | sync の主要処理を担当します。 |
| swingMainArm | public | メソッド | swingMainArm の主要処理を担当します。 |
| playHurtReaction | public | メソッド | playHurtReaction の主要処理を担当します。 |
| applyEquipment | public | メソッド | applyEquipment の主要処理を担当します。 |
| refreshSkin | public | メソッド | refreshSkin の主要処理を担当します。 |
| generateSkinDataFromUrl | public | メソッド | generateSkinDataFromUrl の主要処理を担当します。 |
| applyMaxHealth | public | メソッド | applyMaxHealth の主要処理を担当します。 |
| navigateToLocation | public | メソッド | navigateToLocation の主要処理を担当します。 |
| navigateToEntity | public | メソッド | navigateToEntity の主要処理を担当します。 |
| cancelNavigation | public | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| isNavigating | public | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| configureNavigator | private | メソッド | configureNavigator の主要処理を担当します。 |
| npcRegistry | private | メソッド | npcRegistry の主要処理を担当します。 |
| createNpc | private | メソッド | createNpc の主要処理を担当します。 |
| configureNpc | private | メソッド | configureNpc の主要処理を担当します。 |
| setNpcSaveFlag | private | メソッド | setNpcSaveFlag の主要処理を担当します。 |
| applySkin | private | メソッド | applySkin の主要処理を担当します。 |
| resolvedTextureFromProfile | private | メソッド | resolvedTextureFromProfile の主要処理を担当します。 |
| applySkinData | private | メソッド | applySkinData の主要処理を担当します。 |
| extractSkinSignatureAndTexture | private | メソッド | extractSkinSignatureAndTexture の主要処理を担当します。 |
| applyEquipmentTrait | private | メソッド | applyEquipmentTrait の主要処理を担当します。 |
| isServantNpc | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| livingEntityFromNpc | private | メソッド | livingEntityFromNpc の主要処理を担当します。 |
| getCustomData | private | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| setCustomData | private | メソッド | setCustomData の主要処理を担当します。 |
| invokeGetter | private | メソッド | invokeGetter の主要処理を担当します。 |
| setSkinUpdates | private | メソッド | setSkinUpdates の主要処理を担当します。 |
| tryInvoke | private | メソッド | tryInvoke の主要処理を担当します。 |
| stringOrNull | private | メソッド | stringOrNull の主要処理を担当します。 |
| safeSetDropChance | private | メソッド | safeSetDropChance の主要処理を担当します。 |
| trySetNpcData | private | メソッド | trySetNpcData の主要処理を担当します。 |
| spawnNpc | private | メソッド | spawnNpc の主要処理を担当します。 |
| enumConstant | private | メソッド | enumConstant の主要処理を担当します。 |
| deregisterNpc | private | メソッド | deregisterNpc の主要処理を担当します。 |
| invokeNoArgs | private | メソッド | invokeNoArgs の主要処理を担当します。 |
| cloneOrNull | private | メソッド | cloneOrNull の主要処理を担当します。 |
public LevelServantCitizensBridge(Plugin plugin)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
Plugin pluginなし
public boolean isAvailable()条件判定を行い、後続処理の分岐に使える真偽値を返します。
なし
public SpawnedNpc spawn(Player owner, Location loc, String displayName, String skinName, Object skinSource)spawn の主要処理を担当します。
Player ownerLocation locString displayNameString skinNameObject skinSourceなし
public void destroy(SpawnedNpc handle)destroy の主要処理を担当します。
SpawnedNpc handleなし
public void cleanupOrphanedServants()cleanupOrphanedServants の主要処理を担当します。
なし
public void cleanupOrphanedServants(java.util.Set<java.util.UUID> protectedEntityIds)cleanupOrphanedServants の主要処理を担当します。
java.util.Set<java.util.UUID> protectedEntityIdsなし
public void sync(SpawnedNpc handle, Location to)sync の主要処理を担当します。
SpawnedNpc handleLocation toなし
public void swingMainArm(SpawnedNpc handle)swingMainArm の主要処理を担当します。
SpawnedNpc handleなし
public void playHurtReaction(SpawnedNpc handle, float yaw)playHurtReaction の主要処理を担当します。
SpawnedNpc handlefloat yawなし
public void applyEquipment(SpawnedNpc handle, LevelServantPlayerNpcBridge.EquipmentSnapshot equipment)applyEquipment の主要処理を担当します。
SpawnedNpc handleLevelServantPlayerNpcBridge.EquipmentSnapshot equipmentなし
public void refreshSkin(SpawnedNpc handle, Player owner, String skinName, Object skinSource)refreshSkin の主要処理を担当します。
SpawnedNpc handlePlayer ownerString skinNameObject skinSourceなし
public LevelServantSkinData generateSkinDataFromUrl(String url)generateSkinDataFromUrl の主要処理を担当します。
String urlなし
public void applyMaxHealth(SpawnedNpc handle, double maxHealth)applyMaxHealth の主要処理を担当します。
SpawnedNpc handledouble maxHealthなし
public void navigateToLocation(SpawnedNpc handle, Location to, double speedModifier)navigateToLocation の主要処理を担当します。
SpawnedNpc handleLocation todouble speedModifierなし
public void navigateToEntity(SpawnedNpc handle, LivingEntity target, double speedModifier)navigateToEntity の主要処理を担当します。
SpawnedNpc handleLivingEntity targetdouble speedModifierなし
public void cancelNavigation(SpawnedNpc handle)条件判定を行い、後続処理の分岐に使える真偽値を返します。
SpawnedNpc handleなし
public boolean isNavigating(SpawnedNpc handle)条件判定を行い、後続処理の分岐に使える真偽値を返します。
SpawnedNpc handleなし
private void configureNavigator(Object nav, double speedModifier)configureNavigator の主要処理を担当します。
Object navdouble speedModifierなし
private Object npcRegistry() throws ExceptionnpcRegistry の主要処理を担当します。
Exception
private Object createNpc(Object registry, String displayName) throws ExceptioncreateNpc の主要処理を担当します。
Object registryString displayNameException
private void configureNpc(Object npc, Player owner)configureNpc の主要処理を担当します。
Object npcPlayer ownerなし
private void setNpcSaveFlag(Object npc, boolean save)setNpcSaveFlag の主要処理を担当します。
Object npcboolean saveなし
private void applySkin(Object npc, Player owner, String skinName, Object skinSource)applySkin の主要処理を担当します。
Object npcPlayer ownerString skinNameObject skinSourceなし
private boolean resolvedTextureFromProfile(Object trait, Class<?> skinTraitClass, String skinName, Object skinSource)resolvedTextureFromProfile の主要処理を担当します。
Object traitClass<?> skinTraitClassString skinNameObject skinSourceなし
private void applySkinData(Object trait, Class<?> skinTraitClass, LevelServantSkinData skinData)applySkinData の主要処理を担当します。
Object traitClass<?> skinTraitClassLevelServantSkinData skinDataなし
private String[] extractSkinSignatureAndTexture(Object profile)extractSkinSignatureAndTexture の主要処理を担当します。
Object profileなし
private void applyEquipmentTrait(Object npc, LevelServantPlayerNpcBridge.EquipmentSnapshot equipment)applyEquipmentTrait の主要処理を担当します。
Object npcLevelServantPlayerNpcBridge.EquipmentSnapshot equipmentなし
private boolean isServantNpc(Object npc)条件判定を行い、後続処理の分岐に使える真偽値を返します。
Object npcなし
private LivingEntity livingEntityFromNpc(Object npc)livingEntityFromNpc の主要処理を担当します。
Object npcなし
private Object getCustomData(Object npc, String key)必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
Object npcString keyなし
private void setCustomData(Object npc, String key, Object value)setCustomData の主要処理を担当します。
Object npcString keyObject valueなし
private Object invokeGetter(Object target, String name)invokeGetter の主要処理を担当します。
Object targetString nameなし
private void setSkinUpdates(Object trait, Class<?> skinTraitClass, boolean update)setSkinUpdates の主要処理を担当します。
Object traitClass<?> skinTraitClassboolean updateなし
private void tryInvoke(Object target, String method)tryInvoke の主要処理を担当します。
Object targetString methodなし
private String stringOrNull(Object o)stringOrNull の主要処理を担当します。
Object oなし
private void safeSetDropChance(EntityEquipment eq, String method, float value)safeSetDropChance の主要処理を担当します。
EntityEquipment eqString methodfloat valueなし
private void trySetNpcData(Object npc, String metadataField, Object value)trySetNpcData の主要処理を担当します。
Object npcString metadataFieldObject valueなし
private boolean spawnNpc(Object npc, Location loc) throws ExceptionspawnNpc の主要処理を担当します。
Object npcLocation locException
) private Object enumConstant(Class<?> enumClass, String... names)enumConstant の主要処理を担当します。
Class<?> enumClassString... namesなし
private void deregisterNpc(Object registry, Object npc) throws ExceptionderegisterNpc の主要処理を担当します。
Object registryObject npcException
private Object invokeNoArgs(Object target, String method) throws ExceptioninvokeNoArgs の主要処理を担当します。
Object targetString methodException
private static ItemStack cloneOrNull(ItemStack item)cloneOrNull の主要処理を担当します。
ItemStack itemなし
applyEquipment → entity → applyEquipmentTrait → npc → getInventory → setItemInMainHandapplyEquipmentTrait → forName → getClass → getMethod → invoke → enumConstantapplyMaxHealth → entity → forName → npc → getClass → getMethodapplySkin → forName → getClass → getMethod → invoke → tryInvokecleanupOrphanedServants → isAvailable → emptySet → npcRegistry → isServantNpc → livingEntityFromNpc