起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
Network Storage Service に関するサービス層・業務処理を担当します。
com.example.rankingplugin.storagestorage/NetworkStorageService.javaclassクラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。
Network Storage Service に関するサービス層・業務処理を担当します。storage パッケージの中でも 444 行規模の中核クラスで、運用中の主ループ・スケジューラが一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。
NetworkStorageServiceopenonCommandonClickonDragonClosesaveThrottlesaveNowreload初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。
イベント受理、定期監視、判定、進行更新など、実際に挙動を生む中心ロジックです。
メモリ状態と保存状態を揃え、結果を次の呼び出しや画面表示へ繋ぐ部分です。
Bukkit イベントや内部イベントを受けたあと、どの状態を更新するかをまとめています。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public NetworkStorageService(JavaPlugin plugin) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | getDataFolder → reload → getCommand → setExecutor → getPluginManager → registerEvents |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| NetworkStorageService | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| reload | public | メソッド | reload の主要処理を担当します。 |
| onCommand | public | メソッド | /networkstorage |
| getUnlocked | public | メソッド | 現在解放済みスロット数(プレイヤー単位) |
| getNextExpandCost | public | メソッド | 次の1枠を解放する価格(線形:1万×(現在の追加段階)) |
| expandOne | public | メソッド | 1枠拡張(上限到達ならfalse) |
| open | public | メソッド | open の主要処理を担当します。 |
| lockedIcon | private | メソッド | lockedIcon の主要処理を担当します。 |
| toDisplayItem | private | メソッド | toDisplayItem の主要処理を担当します。 |
| stripDisplayMeta | private | メソッド | stripDisplayMeta の主要処理を担当します。 |
| hasDisplayTag | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| restoreLocks | private | メソッド | restoreLocks の主要処理を担当します。 |
| onClick | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onDrag | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onClose | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| refreshTopSlot | private | メソッド | refreshTopSlot の主要処理を担当します。 |
| pathUnlocked | private | メソッド | pathUnlocked の主要処理を担当します。 |
| pathItem | private | メソッド | pathItem の主要処理を担当します。 |
| getItem | private | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| setItem | private | メソッド | setItem の主要処理を担当します。 |
| isStackable | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| canMerge | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| saveThrottle | private | メソッド | 状態を永続化または更新し、最新状態へ反映します。 |
| saveNow | private | メソッド | 状態を永続化または更新し、最新状態へ反映します。 |
public NetworkStorageService(JavaPlugin plugin)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
JavaPlugin pluginなし
public void reload()reload の主要処理を担当します。
なし
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)/networkstorage
CommandSender senderCommand commandString labelString[] argsなし
public int getUnlocked(UUID uuid)現在解放済みスロット数(プレイヤー単位)
UUID uuidなし
public long getNextExpandCost(UUID uuid)次の1枠を解放する価格(線形:1万×(現在の追加段階))
UUID uuidなし
public boolean expandOne(UUID uuid)1枠拡張(上限到達ならfalse)
UUID uuidなし
public void open(Player p)open の主要処理を担当します。
Player pなし
private ItemStack lockedIcon()lockedIcon の主要処理を担当します。
なし
private ItemStack toDisplayItem(ItemStack stored)toDisplayItem の主要処理を担当します。
ItemStack storedなし
private ItemStack stripDisplayMeta(ItemStack it)stripDisplayMeta の主要処理を担当します。
ItemStack itなし
private boolean hasDisplayTag(ItemStack it)条件判定を行い、後続処理の分岐に使える真偽値を返します。
ItemStack itなし
private void restoreLocks(Inventory top, int unlocked)restoreLocks の主要処理を担当します。
Inventory topint unlockedなし
public void onClick(InventoryClickEvent e)イベント発生時の分岐と後続処理を担当します。
InventoryClickEvent eなし
public void onDrag(InventoryDragEvent e)イベント発生時の分岐と後続処理を担当します。
InventoryDragEvent eなし
public void onClose(InventoryCloseEvent e)イベント発生時の分岐と後続処理を担当します。
InventoryCloseEvent eなし
private void refreshTopSlot(InventoryView v, int slot, UUID u)refreshTopSlot の主要処理を担当します。
InventoryView vint slotUUID uなし
private String pathUnlocked(UUID u)pathUnlocked の主要処理を担当します。
UUID uなし
private String pathItem(UUID u, int idx)pathItem の主要処理を担当します。
UUID uint idxなし
private ItemStack getItem(UUID u, int slot)必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
UUID uint slotなし
private void setItem(UUID u, int slot, ItemStack it)setItem の主要処理を担当します。
UUID uint slotItemStack itなし
private boolean isStackable(ItemStack it)条件判定を行い、後続処理の分岐に使える真偽値を返します。
ItemStack itなし
private boolean canMerge(ItemStack a, ItemStack b)条件判定を行い、後続処理の分岐に使える真偽値を返します。
ItemStack aItemStack bなし
private void saveThrottle()状態を永続化または更新し、最新状態へ反映します。
なし
private void saveNow()状態を永続化または更新し、最新状態へ反映します。
なし
NetworkStorageService → getDataFolder → reload → getCommand → setExecutor → getPluginManageronClick → getView → equals → getTitle → setCancelled → getWhoClickedonClose → equals → getView → getTitle → getPlayer → getUniqueIdonDrag → equals → getView → getTitle → setCancelledonCommand → opensaveNow → save → getLogger → severe → getMessage