Citizens/Sentinel なしで、見た目だけをプレイヤーNPC化する NMS/packet ブリッジ。

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

クラス説明

Citizens/Sentinel なしで、見た目だけをプレイヤーNPC化する NMS/packet ブリッジ。
実戦AI/当たり判定は別の内部Mobが持ち、このクラスは「完全プレイヤー見た目」を配信する。

責務と見どころ

重点クラスの詳細解説

Citizens/Sentinel なしで、見た目だけをプレイヤーNPC化する NMS/packet ブリッジ。level パッケージの中でも 835 行規模の中核クラスで、スケジューラが一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。

最初に追う読む順番

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

内部サブシステムの地図

起動・前提準備

初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。

主なメソッド
主なフィールド

イベント受理と主処理

Bukkit イベントや内部イベントを受けたあと、どの状態を更新するかをまとめています。

主なメソッド
主なフィールド

代表フロー詳解

変更時の注意点

外部接点

外部ルート

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

GET texturesGET textures

フィールド

VisibilityTypeName役割
privateintANIMATION_SWING_MAIN_ARMANIMATION_SWING_MAIN_ARM の状態を保持します。
privatebyteENTITY_EVENT_HURTENTITY_EVENT_HURT の状態を保持します。
privatePluginpluginプラグイン本体参照です。
privateReflectionAccessaccessaccess の状態を保持します。
privatebooleanbootstrapTriedbootstrapTried の状態を保持します。
privatebooleanloggedUnavailableloggedUnavailable の状態を保持します。
privateMap<UUID, ArmorStandPoseState>armorStandPoseStatesarmorStandPoseStates の状態を保持します。

コンストラクタ / 初期化

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

メソッド索引

NameVisibilityKind説明
LevelServantPlayerNpcBridgepublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
spawnpublicメソッドspawn の主要処理を担当します。
destroypublicメソッドdestroy の主要処理を担当します。
syncpublicメソッドsync の主要処理を担当します。
swingMainArmpublicメソッドswingMainArm の主要処理を担当します。
playHurtReactionpublicメソッドplayHurtReaction の主要処理を担当します。
showTopublicメソッドshowTo の主要処理を担当します。
updateEquipmentpublicメソッド状態を永続化または更新し、最新状態へ反映します。
extractTexturePropertypublicメソッドextractTextureProperty の主要処理を担当します。
spawnArmorStandFallbackprivateメソッドspawnArmorStandFallback の主要処理を担当します。
updateArmorStandFallbackprivateメソッド状態を永続化または更新し、最新状態へ反映します。
clampprivateメソッドclamp の主要処理を担当します。
applyArmorStandEquipmentprivateメソッドapplyArmorStandEquipment の主要処理を担当します。
buildFallbackHeadprivateメソッド表示用または出力用のデータを組み立てます。
cloneOrNullprivateメソッドcloneOrNull の主要処理を担当します。
showToAllprivateメソッドshowToAll の主要処理を担当します。
accessprivateメソッドaccess の主要処理を担当します。
buildNpcNameprivateメソッド表示用または出力用のデータを組み立てます。

メソッド詳細

LevelServantPlayerNpcBridge

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

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

引数

throws

なし

主要な呼び出し順

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

spawn

メソッドpublic
public VisualHandle spawn(World world, Location loc, UUID ownerId, String ownerName, TextureProperty texture, EquipmentSnapshot equipment)

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

引数

throws

なし

主要な呼び出し順

accessnameUUIDFromBytesgetBytesbuildNpcNamenewGameProfilenewServerPlayerentityIdgetUID

destroy

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

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

引数

throws

なし

主要な呼び出し順

moderemoveuuidgetEntityarmorStandIdisValidaccessgetOnlinePlayers

sync

メソッドpublic
public boolean sync(VisualHandle handle, Location to)

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

引数

throws

なし

主要な呼び出し順

getWorldmodegetEntityarmorStandIdgetUIDequalsupdateArmorStandFallbackaccess

swingMainArm

メソッドpublic
public boolean swingMainArm(VisualHandle handle)

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

引数

throws

なし

主要な呼び出し順

modecomputeIfAbsentuuidcurrentTimeMillisgetEntityarmorStandIdupdateArmorStandFallbackgetLocation

playHurtReaction

メソッドpublic
public boolean playHurtReaction(VisualHandle handle, float yaw)

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

引数

throws

なし

主要な呼び出し順

modecomputeIfAbsentuuidcurrentTimeMillisgetEntityarmorStandIdupdateArmorStandFallbackgetLocation

showTo

メソッドpublic
public void showTo(Player viewer, VisualHandle handle, float yaw)

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

引数

throws

なし

主要な呼び出し順

modeaccessgetWorldgetUIDequalsworldIdnewPlayerInfoAddPacketserverPlayer

updateEquipment

メソッドpublic
public boolean updateEquipment(VisualHandle handle, EquipmentSnapshot equipment)

状態を永続化または更新し、最新状態へ反映します。

引数

throws

なし

主要な呼び出し順

modegetEntityarmorStandIdapplyArmorStandEquipment

extractTextureProperty

メソッドpublic
public TextureProperty extractTextureProperty(Object profileLike)

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

引数

throws

なし

主要な呼び出し順

accessgetLoggerlog

spawnArmorStandFallback

メソッドprivate
private VisualHandle spawnArmorStandFallback(World world, Location loc, UUID ownerId, String ownerName, EquipmentSnapshot equipment)

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

引数

throws

なし

主要な呼び出し順

spawnsetGravitysetMarkersetSmallsetArmssetBasePlatesetSilentsetVisible

updateArmorStandFallback

メソッドprivate
private void updateArmorStandFallback(VisualHandle handle, ArmorStand stand, Location to)

状態を永続化または更新し、最新状態へ反映します。

引数

throws

なし

主要な呼び出し順

computeIfAbsentuuidclonegetXgetZsqrtminsetYaw

clamp

メソッドprivatestatic
private static double clamp(double v, double min, double max)

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

引数

throws

なし

主要な呼び出し順

maxmin

applyArmorStandEquipment

メソッドprivate
private void applyArmorStandEquipment(ArmorStand stand, EquipmentSnapshot equipment)

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

引数

throws

なし

主要な呼び出し順

getEquipmentsetItemInMainHandcloneOrNullmainHandsetItemInOffHandoffHandsetBootsboots

buildFallbackHead

メソッドprivate
private ItemStack buildFallbackHead(UUID ownerId, String ownerName)

表示用または出力用のデータを組み立てます。

引数

throws

なし

主要な呼び出し順

getItemMetasetOwningPlayergetOfflinePlayersetItemMeta

cloneOrNull

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

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

引数

throws

なし

主要な呼び出し順

clone

showToAll

メソッドprivate
private void showToAll(VisualHandle handle, World world, float yaw)

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

引数

throws

なし

主要な呼び出し順

accessgetPlayerssendPacketnewPlayerInfoAddPacketserverPlayernewAddEntityPacketnewRotateHeadPacketgetScheduler

access

メソッドprivate
private ReflectionAccess access()

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

引数

throws

なし

主要な呼び出し順

getLoggerinfolog

buildNpcName

メソッドprivate
private String buildNpcName(String ownerName, UUID ownerId)

表示用または出力用のデータを組み立てます。

引数

throws

なし

主要な呼び出し順

replaceAllisBlanktoStringreplacesubstringlength

代表的な処理フロー

  1. updateArmorStandFallback フロー
    updateArmorStandFallback → computeIfAbsent → uuid → clone → getX → getZ
    状態を永続化または更新し、最新状態へ反映します。
  2. updateEquipment フロー
    updateEquipment → mode → getEntity → armorStandId → applyArmorStandEquipment
    状態を永続化または更新し、最新状態へ反映します。
  3. buildNpcName フロー
    buildNpcName → replaceAll → isBlank → toString → replace → substring
    表示用または出力用のデータを組み立てます。
  4. buildFallbackHead フロー
    buildFallbackHead → getItemMeta → setOwningPlayer → getOfflinePlayer → setItemMeta
    表示用または出力用のデータを組み立てます。
  5. applyArmorStandEquipment フロー
    applyArmorStandEquipment → getEquipment → setItemInMainHand → cloneOrNull → mainHand → setItemInOffHand
    applyArmorStandEquipment の主要処理を担当します。

外部との接点

Web ルート

GET texturesGET textures

SQL / テーブル

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

関連クラス

補足