Citizens が存在する場合に、しもべを本物の PLAYER NPC として扱うための軽量ブリッジ。

4Fields
1Constructors
42Methods
719Lines
Package
com.example.rankingplugin.level
Source
level/LevelServantCitizensBridge.java
Kind
class
Roles
自動抽出なし
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。 全クラス章立てガイドを見る
サブシステム横断ガイドもあります。 このクラスを含む上位の流れは こちらの処理遷移図ページ から読むと把握しやすいです。

クラス説明

Citizens が存在する場合に、しもべを本物の PLAYER NPC として扱うための軽量ブリッジ。
戦闘ロジックは RankingPlugin 側で持ち、Citizens には PLAYER エンティティ生成とナビゲーションだけを任せる。

責務と見どころ

重点クラスの詳細解説

Citizens が存在する場合に、しもべを本物の PLAYER NPC として扱うための軽量ブリッジ。level パッケージの中でも 719 行規模の中核クラスで、複数責務の集約点が一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。

最初に追う読む順番

  1. LevelServantCitizensBridge
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. createNpc
    実体や対象状態を作る段階で、後続フローがどのデータを前提に動くかを掴めます。
  3. spawn
    実体や対象状態を作る段階で、後続フローがどのデータを前提に動くかを掴めます。
  4. spawnNpc
    実体や対象状態を作る段階で、後続フローがどのデータを前提に動くかを掴めます。
  5. sync
    sync の主要処理を担当します。
  6. applyEquipment
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。
  7. applyMaxHealth
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。
  8. applySkin
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。
  9. applySkinData
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。

内部サブシステムの地図

入口 API と対象解決

外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。

主なフィールド

終了処理と掃除

停止時やフロー終端で残る実体・タスク・キャッシュを戻す出口です。

主なフィールド
なし

代表フロー詳解

変更時の注意点

外部接点

外部ルート

このクラス内で直接見つかる主な Web ルート/項目名です。

GET textureGET valueGET valueGET signatureGET signatureGET uuidGET propertiesGET nameGET valueGET signature

フィールド

VisibilityTypeName役割
privateStringSERVANT_DATA_KEYSERVANT_DATA_KEY の状態を保持します。
privateStringOWNER_DATA_KEYOWNER_DATA_KEY の状態を保持します。
privatePluginpluginプラグイン本体参照です。
privateBooleanavailableavailable の状態を保持します。

コンストラクタ / 初期化

Signature説明主要呼び出し
public LevelServantCitizensBridge(Plugin plugin)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。主要呼び出しなし

メソッド索引

NameVisibilityKind説明
LevelServantCitizensBridgepublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
isAvailablepublicメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
spawnpublicメソッドspawn の主要処理を担当します。
destroypublicメソッドdestroy の主要処理を担当します。
cleanupOrphanedServantspublicメソッドcleanupOrphanedServants の主要処理を担当します。
cleanupOrphanedServantspublicメソッドcleanupOrphanedServants の主要処理を担当します。
syncpublicメソッドsync の主要処理を担当します。
swingMainArmpublicメソッドswingMainArm の主要処理を担当します。
playHurtReactionpublicメソッドplayHurtReaction の主要処理を担当します。
applyEquipmentpublicメソッドapplyEquipment の主要処理を担当します。
refreshSkinpublicメソッドrefreshSkin の主要処理を担当します。
generateSkinDataFromUrlpublicメソッドgenerateSkinDataFromUrl の主要処理を担当します。
applyMaxHealthpublicメソッドapplyMaxHealth の主要処理を担当します。
navigateToLocationpublicメソッドnavigateToLocation の主要処理を担当します。
navigateToEntitypublicメソッドnavigateToEntity の主要処理を担当します。
cancelNavigationpublicメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
isNavigatingpublicメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
configureNavigatorprivateメソッドconfigureNavigator の主要処理を担当します。
npcRegistryprivateメソッドnpcRegistry の主要処理を担当します。
createNpcprivateメソッドcreateNpc の主要処理を担当します。
configureNpcprivateメソッドconfigureNpc の主要処理を担当します。
setNpcSaveFlagprivateメソッドsetNpcSaveFlag の主要処理を担当します。
applySkinprivateメソッドapplySkin の主要処理を担当します。
resolvedTextureFromProfileprivateメソッドresolvedTextureFromProfile の主要処理を担当します。
applySkinDataprivateメソッドapplySkinData の主要処理を担当します。
extractSkinSignatureAndTextureprivateメソッドextractSkinSignatureAndTexture の主要処理を担当します。
applyEquipmentTraitprivateメソッドapplyEquipmentTrait の主要処理を担当します。
isServantNpcprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
livingEntityFromNpcprivateメソッドlivingEntityFromNpc の主要処理を担当します。
getCustomDataprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
setCustomDataprivateメソッドsetCustomData の主要処理を担当します。
invokeGetterprivateメソッドinvokeGetter の主要処理を担当します。
setSkinUpdatesprivateメソッドsetSkinUpdates の主要処理を担当します。
tryInvokeprivateメソッドtryInvoke の主要処理を担当します。
stringOrNullprivateメソッドstringOrNull の主要処理を担当します。
safeSetDropChanceprivateメソッドsafeSetDropChance の主要処理を担当します。
trySetNpcDataprivateメソッドtrySetNpcData の主要処理を担当します。
spawnNpcprivateメソッドspawnNpc の主要処理を担当します。
enumConstantprivateメソッドenumConstant の主要処理を担当します。
deregisterNpcprivateメソッドderegisterNpc の主要処理を担当します。
invokeNoArgsprivateメソッドinvokeNoArgs の主要処理を担当します。
cloneOrNullprivateメソッドcloneOrNull の主要処理を担当します。

メソッド詳細

LevelServantCitizensBridge

コンストラクタpublic
public LevelServantCitizensBridge(Plugin plugin)

依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

isAvailable

メソッドpublic
public boolean isAvailable()

条件判定を行い、後続処理の分岐に使える真偽値を返します。

引数

throws

なし

主要な呼び出し順

getServergetPluginManagergetPluginisEnabledforName

spawn

メソッドpublic
public SpawnedNpc spawn(Player owner, Location loc, String displayName, String skinName, Object skinSource)

spawn の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

isAvailablegetWorldnpcRegistrycreateNpcconfigureNpcapplySkinspawnNpcderegisterNpc

destroy

メソッドpublic
public void destroy(SpawnedNpc handle)

destroy の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

cancelNavigationentityremoveScoreboardTagnpcsetNpcSaveFlagtryInvokederegisterNpcregistry

cleanupOrphanedServants

メソッドpublic
public void cleanupOrphanedServants()

cleanupOrphanedServants の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

emptySet

cleanupOrphanedServants

メソッドpublic
public void cleanupOrphanedServants(java.util.Set<java.util.UUID> protectedEntityIds)

cleanupOrphanedServants の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

isAvailableemptySetnpcRegistryisServantNpclivingEntityFromNpccontainsgetUniqueIddestroy

sync

メソッドpublic
public void sync(SpawnedNpc handle, Location to)

sync の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

entityisValidgetWorldteleportsetRotationgetYawgetPitch

swingMainArm

メソッドpublic
public void swingMainArm(SpawnedNpc handle)

swingMainArm の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

entityswingMainHandgetClassgetMethodinvoke

playHurtReaction

メソッドpublic
public void playHurtReaction(SpawnedNpc handle, float yaw)

playHurtReaction の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

entitygetLocationteleportgetWorldgetXgetYgetZgetPitch

applyEquipment

メソッドpublic
public void applyEquipment(SpawnedNpc handle, LevelServantPlayerNpcBridge.EquipmentSnapshot equipment)

applyEquipment の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

entityapplyEquipmentTraitnpcgetInventorysetItemInMainHandcloneOrNullmainHandsetItemInOffHand

refreshSkin

メソッドpublic
public void refreshSkin(SpawnedNpc handle, Player owner, String skinName, Object skinSource)

refreshSkin の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

applySkinnpc

generateSkinDataFromUrl

メソッドpublic
public LevelServantSkinData generateSkinDataFromUrl(String url)

generateSkinDataFromUrl の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

isAvailableisBlankforNamegetMethodinvokevalueOftoHexStringtoLowerCase

applyMaxHealth

メソッドpublic
public void applyMaxHealth(SpawnedNpc handle, double maxHealth)

applyMaxHealth の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

entityforNamenpcgetClassgetMethodinvokegetMethodsgetName

navigateToLocation

メソッドpublic
public void navigateToLocation(SpawnedNpc handle, Location to, double speedModifier)

navigateToLocation の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

npcgetClassgetMethodinvokeconfigureNavigatorentityteleport

navigateToEntity

メソッドpublic
public void navigateToEntity(SpawnedNpc handle, LivingEntity target, double speedModifier)

navigateToEntity の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

npcgetClassgetMethodinvokeconfigureNavigatorgetMethodsgetNameequals

cancelNavigation

メソッドpublic
public void cancelNavigation(SpawnedNpc handle)

条件判定を行い、後続処理の分岐に使える真偽値を返します。

引数

throws

なし

主要な呼び出し順

npcgetClassgetMethodinvoke

isNavigating

メソッドpublic
public boolean isNavigating(SpawnedNpc handle)

条件判定を行い、後続処理の分岐に使える真偽値を返します。

引数

throws

なし

主要な呼び出し順

npcgetClassgetMethodinvoke

configureNavigator

メソッドprivate
private void configureNavigator(Object nav, double speedModifier)

configureNavigator の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getClassgetMethodinvoke

npcRegistry

メソッドprivate
private Object npcRegistry() throws Exception

npcRegistry の主要処理を担当します。

引数

throws

Exception

主要な呼び出し順

forNamegetMethodinvoke

createNpc

メソッドprivate
private Object createNpc(Object registry, String displayName) throws Exception

createNpc の主要処理を担当します。

引数

throws

Exception

主要な呼び出し順

getClassgetMethodinvoke

configureNpc

メソッドprivate
private void configureNpc(Object npc, Player owner)

configureNpc の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getClassgetMethodinvoketrySetNpcDatasetNpcSaveFlagsetCustomDatagetUniqueIdtoString

setNpcSaveFlag

メソッドprivate
private void setNpcSaveFlag(Object npc, boolean save)

setNpcSaveFlag の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

trySetNpcDatasetCustomData

applySkin

メソッドprivate
private void applySkin(Object npc, Player owner, String skinName, Object skinSource)

applySkin の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

forNamegetClassgetMethodinvoketryInvokesetSkinUpdatesapplySkinDataisBlank

resolvedTextureFromProfile

メソッドprivate
private boolean resolvedTextureFromProfile(Object trait, Class<?> skinTraitClass, String skinName, Object skinSource)

resolvedTextureFromProfile の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

extractSkinSignatureAndTextureisBlankgetMethodinvoke

applySkinData

メソッドprivate
private void applySkinData(Object trait, Class<?> skinTraitClass, LevelServantSkinData skinData)

applySkinData の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getMethodinvokecacheKeysafeSignaturetexture

extractSkinSignatureAndTexture

メソッドprivate
private String[] extractSkinSignatureAndTexture(Object profile)

extractSkinSignatureAndTexture の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

safeSignaturetexturegetClassgetMethodinvokevalueOfinvokeGetterequalsIgnoreCase

applyEquipmentTrait

メソッドprivate
private void applyEquipmentTrait(Object npc, LevelServantPlayerNpcBridge.EquipmentSnapshot equipment)

applyEquipmentTrait の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

forNamegetClassgetMethodinvokeenumConstantcloneOrNullmainHandoffHand

isServantNpc

メソッドprivate
private boolean isServantNpc(Object npc)

条件判定を行い、後続処理の分岐に使える真偽値を返します。

引数

throws

なし

主要な呼び出し順

invokeNoArgsgetTypeequalsgetCustomDatavalueOfendsWith

livingEntityFromNpc

メソッドprivate
private LivingEntity livingEntityFromNpc(Object npc)

livingEntityFromNpc の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

invokeNoArgs

getCustomData

メソッドprivate
private Object getCustomData(Object npc, String key)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getClassgetMethodinvokegetMethodsgetNameequalsgetParameterCount

setCustomData

メソッドprivate
private void setCustomData(Object npc, String key, Object value)

setCustomData の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getClassgetMethodinvokegetMethodsgetNameequalsgetParameterCountgetParameterTypes

invokeGetter

メソッドprivate
private Object invokeGetter(Object target, String name)

invokeGetter の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getClassgetMethodinvoke

setSkinUpdates

メソッドprivate
private void setSkinUpdates(Object trait, Class<?> skinTraitClass, boolean update)

setSkinUpdates の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getMethodinvoke

tryInvoke

メソッドprivate
private void tryInvoke(Object target, String method)

tryInvoke の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getClassgetMethodinvoke

stringOrNull

メソッドprivate
private String stringOrNull(Object o)

stringOrNull の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

valueOf

safeSetDropChance

メソッドprivate
private void safeSetDropChance(EntityEquipment eq, String method, float value)

safeSetDropChance の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getClassgetMethodinvoke

trySetNpcData

メソッドprivate
private void trySetNpcData(Object npc, String metadataField, Object value)

trySetNpcData の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getClassgetMethodinvokeforNamegetFieldgetMethodsgetNameequals

spawnNpc

メソッドprivate
private boolean spawnNpc(Object npc, Location loc) throws Exception

spawnNpc の主要処理を担当します。

引数

throws

Exception

主要な呼び出し順

getClassgetMethodsgetNameequalsgetParameterTypesisAssignableFrominvokeisEnum

enumConstant

メソッドprivate
) private Object enumConstant(Class<?> enumClass, String... names)

enumConstant の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

valueOfasSubclassgetEnumConstants

deregisterNpc

メソッドprivate
private void deregisterNpc(Object registry, Object npc) throws Exception

deregisterNpc の主要処理を担当します。

引数

throws

Exception

主要な呼び出し順

getClassgetMethodforNameinvokegetMethodsgetNameequalsgetParameterCount

invokeNoArgs

メソッドprivate
private Object invokeNoArgs(Object target, String method) throws Exception

invokeNoArgs の主要処理を担当します。

引数

throws

Exception

主要な呼び出し順

getClassgetMethodinvoke

cloneOrNull

メソッドprivatestatic
private static ItemStack cloneOrNull(ItemStack item)

cloneOrNull の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

clone

代表的な処理フロー

  1. applyEquipment フロー
    applyEquipment → entity → applyEquipmentTrait → npc → getInventory → setItemInMainHand
    applyEquipment の主要処理を担当します。
  2. applyEquipmentTrait フロー
    applyEquipmentTrait → forName → getClass → getMethod → invoke → enumConstant
    applyEquipmentTrait の主要処理を担当します。
  3. applyMaxHealth フロー
    applyMaxHealth → entity → forName → npc → getClass → getMethod
    applyMaxHealth の主要処理を担当します。
  4. applySkin フロー
    applySkin → forName → getClass → getMethod → invoke → tryInvoke
    applySkin の主要処理を担当します。
  5. cleanupOrphanedServants フロー
    cleanupOrphanedServants → isAvailable → emptySet → npcRegistry → isServantNpc → livingEntityFromNpc
    cleanupOrphanedServants の主要処理を担当します。

外部との接点

Web ルート

GET textureGET valueGET valueGET signatureGET signatureGET uuidGET propertiesGET nameGET valueGET signature

SQL / テーブル

テーブル名の抽出はありませんでした。

関連クラス

補足