起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
/rp trade / /rp receive のGUIと配送処理。
com.example.rankingplugin.tradetrade/TradeManager.javaclass/rp trade / /rp receive のGUIと配送処理。
/rp trade / /rp receive のGUIと配送処理。trade パッケージの中でも 651 行規模の中核クラスで、運用中の主ループ・スケジューラが一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。
TradeManageropenTradeopenMailboxopenMailhandleTradeSendClickhandleMailboxClickhandleMailViewClickonJoinonClick初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。
イベント受理、定期監視、判定、進行更新など、実際に挙動を生む中心ロジックです。
メモリ状態と保存状態を揃え、結果を次の呼び出しや画面表示へ繋ぐ部分です。
Bukkit イベントや内部イベントを受けたあと、どの状態を更新するかをまとめています。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public TradeManager(JavaPlugin plugin, javax.sql.DataSource ds, CurrencyService currency) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | 主要呼び出しなし |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| TradeManager | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| openTrade | public | メソッド | openTrade の主要処理を担当します。 |
| openMailbox | public | メソッド | DB への問い合わせまたは更新処理を担当します。 |
| onJoin | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onClick | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onClose | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onDrag | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| handleTradeSendClick | private | メソッド | 入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。 |
| handleMailboxClick | private | メソッド | 入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。 |
| openMail | private | メソッド | DB への問い合わせまたは更新処理を担当します。 |
| handleMailViewClick | private | メソッド | 入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。 |
| getGuiKind | private | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| icon | private | メソッド | icon の主要処理を担当します。 |
| payIcon | private | メソッド | payIcon の主要処理を担当します。 |
| mailboxEntryItem | private | メソッド | mailboxEntryItem の主要処理を担当します。 |
| calcCost | private | メソッド | calcCost の主要処理を担当します。 |
| collectSendItems | private | メソッド | collectSendItems の主要処理を担当します。 |
| clearSendItems | private | メソッド | clearSendItems の主要処理を担当します。 |
| returnItemsToPlayer | private | メソッド | returnItemsToPlayer の主要処理を担当します。 |
| giveItemsToPlayer | private | メソッド | giveItemsToPlayer の主要処理を担当します。 |
| notifyReceiver | private | メソッド | notifyReceiver の主要処理を担当します。 |
| fmt | private | メソッド | fmt の主要処理を担当します。 |
public TradeManager(JavaPlugin plugin, javax.sql.DataSource ds, CurrencyService currency)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
JavaPlugin pluginjavax.sql.DataSource dsCurrencyService currencyなし
public void openTrade(Player sender, String targetNameRaw)openTrade の主要処理を担当します。
Player senderString targetNameRawなし
public void openMailbox(Player receiver)DB への問い合わせまたは更新処理を担当します。
Player receiverなし
public void onJoin(PlayerJoinEvent e)イベント発生時の分岐と後続処理を担当します。
PlayerJoinEvent eなし
public void onClick(InventoryClickEvent e)イベント発生時の分岐と後続処理を担当します。
InventoryClickEvent eなし
public void onClose(InventoryCloseEvent e)イベント発生時の分岐と後続処理を担当します。
InventoryCloseEvent eなし
public void onDrag(InventoryDragEvent e)イベント発生時の分岐と後続処理を担当します。
InventoryDragEvent eなし
private void handleTradeSendClick(InventoryClickEvent e, Player p)入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。
InventoryClickEvent ePlayer pなし
private void handleMailboxClick(InventoryClickEvent e, Player p)入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。
InventoryClickEvent ePlayer pなし
private void openMail(Player p, long mailId)DB への問い合わせまたは更新処理を担当します。
Player plong mailIdなし
private void handleMailViewClick(InventoryClickEvent e, Player p)入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。
InventoryClickEvent ePlayer pなし
private String getGuiKind(Inventory inv)必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
Inventory invなし
private ItemStack icon(Material mat, String name, List<String> lore)icon の主要処理を担当します。
Material matString nameList<String> loreなし
private ItemStack payIcon(long cost, boolean confirm)payIcon の主要処理を担当します。
long costboolean confirmなし
private ItemStack mailboxEntryItem(TradeMailDao.MailHeader h)mailboxEntryItem の主要処理を担当します。
TradeMailDao.MailHeader hなし
private long calcCost(Inventory inv)calcCost の主要処理を担当します。
Inventory invなし
private List<ItemStack> collectSendItems(Inventory inv)collectSendItems の主要処理を担当します。
Inventory invなし
private void clearSendItems(Inventory inv)clearSendItems の主要処理を担当します。
Inventory invなし
private void returnItemsToPlayer(Player p, Inventory inv)returnItemsToPlayer の主要処理を担当します。
Player pInventory invなし
private void giveItemsToPlayer(Player p, ItemStack[] items)giveItemsToPlayer の主要処理を担当します。
Player pItemStack[] itemsなし
private void notifyReceiver(Player receiver, String senderName, int countHint)notifyReceiver の主要処理を担当します。
Player receiverString senderNameint countHintなし
private static String fmt(long v)fmt の主要処理を担当します。
long vなし
onClose → getPlayer → getView → getTopInventory → getGuiKind → equalsonDrag → getWhoClicked → getView → getTopInventory → getGuiKind → equalsonClick → getWhoClicked → getView → getTopInventory → getGuiKind → handleTradeSendClickonJoin → getPlayer → getScheduler → runTaskAsynchronously → countMails → getNamehandleMailViewClick → setCancelled → getClickedInventory → getView → getTopInventory → getSlot