起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
Discord Notifier を担当するclassです。
com.example.rankingplugin.discorddiscord/DiscordNotifier.javaclassクラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。
Discord Notifier を担当するclassです。discord パッケージの中でも 363 行規模の中核クラスで、Web 導線が一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。
DiscordNotifiercreateshutdownGracefullyshutdowngetJdanotifyBootWithEventsallownotifyGenericsafe初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。
メモリ状態と保存状態を揃え、結果を次の呼び出しや画面表示へ繋ぐ部分です。
停止時やフロー終端で残る実体・タスク・キャッシュを戻す出口です。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
private DiscordNotifier(JavaPlugin plugin, JDA jda, String channelId, boolean onBoot, boolean onPreStart, boolean onCreated, boolean onStarted, boolean onEnded, boolean includeRewards, ConfigurationSection perType) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | 主要呼び出しなし |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| DiscordNotifier | private | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| create | public | メソッド | create の主要処理を担当します。 |
| getJda | public | メソッド | RankingPlugin 側で追加リスナー登録などを行うために公開。 |
| notifyBootWithEvents | public | メソッド | notifyBootWithEvents の主要処理を担当します。 |
| allow | private | メソッド | allow の主要処理を担当します。 |
| notifyGeneric | public | メソッド | notifyGeneric の主要処理を担当します。 |
| safe | private | メソッド | safe の主要処理を担当します。 |
| notifyShutdown | public | メソッド | notifyShutdown の主要処理を担当します。 |
| notifyShutdownSync | public | メソッド | 停止時に確実に届けたい場合のブロッキング版(タイムアウト付き) |
| shutdownGracefully | public | メソッド | 動作中の処理やリソースを安全に停止・解放します。 |
| shutdown | public | メソッド | 動作中の処理やリソースを安全に停止・解放します。 |
private DiscordNotifier(JavaPlugin plugin, JDA jda, String channelId, boolean onBoot, boolean onPreStart, boolean onCreated, boolean onStarted, boolean onEnded, boolean includeRewards, ConfigurationSection perType)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
JavaPlugin pluginJDA jdaString channelIdboolean onBootboolean onPreStartboolean onCreatedboolean onStartedboolean onEndedboolean includeRewardsConfigurationSection perTypeなし
public static DiscordNotifier create(JavaPlugin plugin)create の主要処理を担当します。
JavaPlugin pluginなし
public JDA getJda()RankingPlugin 側で追加リスナー登録などを行うために公開。
なし
public void notifyBootWithEvents(List<SimpleEvent> running, List<SimpleEvent> upcoming)notifyBootWithEvents の主要処理を担当します。
List<SimpleEvent> runningList<SimpleEvent> upcomingなし
private boolean allow(String type, Phase phase)allow の主要処理を担当します。
String typePhase phaseなし
public void notifyGeneric(String type, String name, Phase phase, LocalDateTime start, LocalDateTime end, Map<Integer, Long> topRewards /* null可 */, String paramsPreview /* 任意 */)notifyGeneric の主要処理を担当します。
String typeString namePhase phaseLocalDateTime startLocalDateTime endMap<Integer, Long> topRewards /* null可 */String paramsPreview /* 任意 */なし
private static String safe(String s)safe の主要処理を担当します。
String sなし
public void notifyShutdown()notifyShutdown の主要処理を担当します。
なし
public boolean notifyShutdownSync(long timeoutMillis)停止時に確実に届けたい場合のブロッキング版(タイムアウト付き)
long timeoutMillisなし
public void shutdownGracefully(long timeoutMillis)動作中の処理やリソースを安全に停止・解放します。
long timeoutMillisなし
public void shutdown()動作中の処理やリソースを安全に停止・解放します。
なし
shutdownGracefully → shutdown → currentTimeMillis → getStatus → sleep → currentThreadshutdown → shutdownNowcreate → getConfig → getConfigurationSection → getBoolean → getString → isEmptynotifyBootWithEvents → getTextChannelById → getLogger → warning → getName → getDescriptionnotifyGeneric → allow → getTextChannelById → setTitle → setColor → addField