Player Report Service に関するサービス層・業務処理を担当します。

15Fields
1Constructors
74Methods
2292Lines
Package
com.example.rankingplugin.report
Source
report/PlayerReportService.java
Kind
class
Roles
イベント駆動DB / 永続化非同期 / スケジューラサービス層
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。 全クラス章立てガイドを見る

クラス説明

クラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。

責務と見どころ

重点クラスの詳細解説

通報 GUI、チャット確認、DB 永続化、Discord 通知、管理者解決、荒らし通報者への制裁まで一連の運用フローがここに集中しています。プレイヤー運営系の根幹です。

最初に追う読む順番

  1. ensureTables
    必要テーブルと前提を揃える入口です。
  2. bindDiscordListener
    Discord 側の操作入口がどこで結びつくかを確認します。
  3. openReportGui
    ゲーム内導線の入口です。
  4. startReportPreview
    送信前プレビューの保持とタイムアウト管理を掴みます。
  5. submitReport
    実際の保存・配送・クールダウン付与の本体です。
  6. resolveReport
    管理者の解決処理の中心です。
  7. deleteReportByAdmin
    削除フローの扱いを追います。
  8. applyTrollPenalty
    荒らし通報へのペナルティが複数報告へどう波及するかを見ます。
  9. editReportMessages
    Discord メッセージ更新の共通出口です。

内部サブシステムの地図

代表フロー詳解

変更時の注意点

外部接点

主な永続化テーブル

SQL 文字列から抽出できた主要テーブルです。スキーマ変更時の確認用です。

player_reportsplayer_report_discord_deliveryplayer_report_penaltiesreporter_name

フィールド

VisibilityTypeName役割
privateZoneIdJSTJST の状態を保持します。
privateDateTimeFormatterTS_FMTTS_FMT の状態を保持します。
privateStringSTATUS_OPENSTATUS_OPEN の状態を保持します。
privateStringSTATUS_RESOLVEDSTATUS_RESOLVED の状態を保持します。
privateStringRESOLVE_BUTTON_PREFIXRESOLVE_BUTTON_PREFIX の状態を保持します。
privateStringDELETE_BUTTON_PREFIXDELETE_BUTTON_PREFIX の状態を保持します。
privateStringTROLL_BUTTON_PREFIXTROLL_BUTTON_PREFIX の状態を保持します。
privateStringRESOLVE_MODAL_PREFIXRESOLVE_MODAL_PREFIX の状態を保持します。
privateRankingPluginpluginプラグイン本体参照です。
privateDataSourcedsDB 接続元を保持します。
privateStringserverIdserverId の状態を保持します。
privateMap<UUID, PendingConfirmation>pendingByPlayerpendingByPlayer の状態を保持します。
privateReportGuiControllerguiControllerguiController の状態を保持します。
privateDiscordInteractionListenerinteractionListenerinteractionListener の状態を保持します。
privateJDAboundJdaboundJda の状態を保持します。

コンストラクタ / 初期化

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

メソッド索引

NameVisibilityKind説明
PlayerReportServicepublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
ensureTablespublicメソッド必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
bindDiscordListenerpublicメソッドbindDiscordListener の主要処理を担当します。
sendReportInfopublicメソッドsendReportInfo の主要処理を担当します。
openReportGuipublicメソッドopenReportGui の主要処理を担当します。
startReportPreviewpublicメソッド初期化と各種登録を行い、機能を有効化します。
sendPreviewMessageprivateメソッドsendPreviewMessage の主要処理を担当します。
sendPreviewReminderprivateメソッドsendPreviewReminder の主要処理を担当します。
sendSubmissionSuccessMessageprivateメソッドsendSubmissionSuccessMessage の主要処理を担当します。
onReportConfirmChatpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onQuitpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onReportGuiClickpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onReportGuiSignChangepublicイベント処理イベント発生時の分岐と後続処理を担当します。
onReportGuiClosepublicイベント処理イベント発生時の分岐と後続処理を担当します。
submitReportprivateメソッドsubmitReport の主要処理を担当します。
getServerDisplayNameprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
deliverToAdminsprivateメソッドdeliverToAdmins の主要処理を担当します。
resolveReportprivateメソッドDB への問い合わせまたは更新処理を担当します。
deleteReportByAdminprivateメソッド対象データや登録状態を削除・解除します。
applyTrollPenaltyprivateメソッドapplyTrollPenalty の主要処理を担当します。
notifyReporterResolvedprivateメソッドnotifyReporterResolved の主要処理を担当します。
notifyReporterDeletedprivateメソッドnotifyReporterDeleted の主要処理を担当します。
notifyReporterPenalizedprivateメソッドnotifyReporterPenalized の主要処理を担当します。
scheduleBanReporterprivateメソッドscheduleBanReporter の主要処理を担当します。
updateDiscordMessagesResolvedprivateメソッド状態を永続化または更新し、最新状態へ反映します。
updateDiscordMessagesDeletedprivateメソッド状態を永続化または更新し、最新状態へ反映します。
updateDiscordMessagesTrollprivateメソッド状態を永続化または更新し、最新状態へ反映します。
editReportMessagesprivateメソッドeditReportMessages の主要処理を担当します。
buildOpenEmbedprivateメソッド表示用または出力用のデータを組み立てます。
buildResolvedEmbedprivateメソッド表示用または出力用のデータを組み立てます。
buildDeletedEmbedprivateメソッド表示用または出力用のデータを組み立てます。
buildTrollPenaltyEmbedprivateメソッド表示用または出力用のデータを組み立てます。
baseEmbedprivateメソッドbaseEmbed の主要処理を担当します。
insertReportprivateメソッド状態を永続化または更新し、最新状態へ反映します。
deleteReportprivateメソッド対象データや登録状態を削除・解除します。
saveDeliveryprivateメソッド状態を永続化または更新し、最新状態へ反映します。
findReportprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
findOpenReportsByReporterprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
snapshotOpenReportsByReporterprivateメソッドsnapshotOpenReportsByReporter の主要処理を担当します。
snapshotReportprivateメソッドsnapshotReport の主要処理を担当します。
findDeliveriesprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
countOpenReportspublicメソッドDB への問い合わせまたは更新処理を担当します。
getCooldownRemainingMillisprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getPenaltyStateprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
incrementPenaltyprivateメソッドDB への問い合わせまたは更新処理を担当します。
mapReportprivateメソッドmapReport の主要処理を担当します。
isEnabledpublicメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
getMaxOpenPerPlayerprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getCooldownMillisprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getConfirmTimeoutMillisprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getTrollPenaltyHoursprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getTrollBlockMillisprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getBanAfterTrollStrikesprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
isDeleteOpenReportsOnTrollprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
getTrollBanReasonprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getAdminDiscordIdsprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
isAdminUserprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
isOkprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
isCancelprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
resolveButtonIdprivateメソッドresolveButtonId の主要処理を担当します。
deleteButtonIdprivateメソッド対象データや登録状態を削除・解除します。
trollButtonIdprivateメソッドtrollButtonId の主要処理を担当します。
resolveModalIdprivateメソッドresolveModalId の主要処理を担当します。
sanitizeTitleprivateメソッドsanitizeTitle の主要処理を担当します。
sanitizeBodyprivateメソッドsanitizeBody の主要処理を担当します。
sanitizeResolutionCommentprivateメソッドsanitizeResolutionComment の主要処理を担当します。
clipFieldprivateメソッドclipField の主要処理を担当します。
clipForDbprivateメソッドclipForDb の主要処理を担当します。
formatSecondsprivateメソッドformatSeconds の主要処理を担当します。
formatTsprivateメソッドformatTs の主要処理を担当します。
formatRemainingprivateメソッドformatRemaining の主要処理を担当します。
formatInstantOrDashprivateメソッドformatInstantOrDash の主要処理を担当します。
parseIdprivateメソッド入力テキストや設定値を解析して内部表現へ変換します。
buildResolveModalprivateメソッド表示用または出力用のデータを組み立てます。

メソッド詳細

PlayerReportService

コンストラクタpublic
public PlayerReportService(RankingPlugin plugin, DataSource ds, String serverId)

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

引数

throws

なし

主要な呼び出し順

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

ensureTables

メソッドpublic
public void ensureTables()

必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。

引数

throws

なし

主要な呼び出し順

getLogger

bindDiscordListener

メソッドpublic
public void bindDiscordListener()

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

引数

throws

なし

主要な呼び出し順

getDiscordNotifiergetJdaaddEventListenergetLoggerinfo

sendReportInfo

メソッドpublic
public void sendReportInfo(Player player)

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

引数

throws

なし

主要な呼び出し順

getMaxOpenPerPlayercountOpenReportsgetUniqueIdmaxgetCooldownRemainingMillisgetPenaltyStategetBlockedRemainingMillisgetConfirmTimeoutMillis

openReportGui

メソッドpublic
public void openReportGui(Player player)

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

引数

throws

なし

主要な呼び出し順

openMain

startReportPreview

メソッドpublic
public void startReportPreview(Player player, String categoryInput, String title, String body)

初期化と各種登録を行い、機能を有効化します。

引数

throws

なし

主要な呼び出し順

isEnabledsendMessagegetDiscordNotifiergetJdagetAdminDiscordIdsisEmptyadmin_user_idfromInput

sendPreviewMessage

メソッドprivate
private void sendPreviewMessage(Player player, PendingConfirmation pending, long openCount, int maxOpen)

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

引数

throws

なし

主要な呼び出し順

maxgetConfirmTimeoutMillisgetCooldownMillissendMessagegetServerDisplayNamedisplayName

sendPreviewReminder

メソッドprivate
private void sendPreviewReminder(Player player, PendingConfirmation pending, long openCount, int maxOpen)

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

引数

throws

なし

主要な呼び出し順

sendMessagesendPreviewMessage

sendSubmissionSuccessMessage

メソッドprivate
private void sendSubmissionSuccessMessage(Player player, SubmissionResult result)

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

引数

throws

なし

主要な呼び出し順

getCooldownMillissendMessage

onReportConfirmChat

イベント処理public
public void onReportConfirmChat(AsyncPlayerChatEvent event)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayergetUniqueIdisExpiredremovesetCancelledgetSchedulerrunTaskisOnline

onQuit

イベント処理public
public void onQuit(PlayerQuitEvent event)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayergetUniqueIdremove

onReportGuiClick

イベント処理public
public void onReportGuiClick(InventoryClickEvent event)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getWhoClickedhandleInventoryClick

onReportGuiSignChange

イベント処理public
public void onReportGuiSignChange(SignChangeEvent event)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayerhandleSignChange

onReportGuiClose

イベント処理public
public void onReportGuiClose(InventoryCloseEvent event)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayerhandleInventoryClose

submitReport

メソッドprivate
private SubmissionResult submitReport(UUID reporterUuid, String reporterName, PendingConfirmation pending)

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

引数

throws

なし

主要な呼び出し順

isEnabledfailuregetDiscordNotifiergetJdagetAdminDiscordIdsisEmptygetPenaltyStategetBlockedRemainingMillis

getServerDisplayName

メソッドprivate
private String getServerDisplayName()

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

引数

throws

なし

主要な呼び出し順

getConfiggetStringisBlank

deliverToAdmins

メソッドprivate
private int deliverToAdmins(JDA jda, ReportRow row, List<String> adminIds)

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

引数

throws

なし

主要な呼び出し順

isBlankretrieveUserByIdcompleteopenPrivateChannelsendMessageEmbedsbuildOpenEmbedbuildsetActionRow

resolveReport

メソッドprivatesynchronized
private synchronized ActionResult resolveReport(long reportId, User resolver, String resolutionComment)

DB への問い合わせまたは更新処理を担当します。

引数

throws

なし

主要な呼び出し順

isAdminUsergetIdnotAllowedsanitizeResolutionCommentisBlankerrorfindReportisEmpty

deleteReportByAdmin

メソッドprivatesynchronized
private synchronized ActionResult deleteReportByAdmin(long reportId, User resolver)

対象データや登録状態を削除・解除します。

引数

throws

なし

主要な呼び出し順

isAdminUsergetIdnotAllowedfindReportisEmptynotFoundsnapshotReportdeleteReport

applyTrollPenalty

メソッドprivatesynchronized
private synchronized TrollActionResult applyTrollPenalty(long reportId, User resolver)

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

引数

throws

なし

主要な呼び出し順

isAdminUsergetIdnotAllowedfindReportisEmptynotFoundequalsIgnoreCasealreadyHandled

notifyReporterResolved

メソッドprivate
private void notifyReporterResolved(ReportRow row)

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

引数

throws

なし

主要な呼び出し順

getSchedulerrunTaskfromStringgetPlayerisOnlinesendMessageisBlank

notifyReporterDeleted

メソッドprivate
private void notifyReporterDeleted(ReportRow row, String deletedBy)

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

引数

throws

なし

主要な呼び出し順

getSchedulerrunTaskfromStringgetPlayerisOnlinesendMessage

notifyReporterPenalized

メソッドprivate
private void notifyReporterPenalized(ReportRow row, PenaltyState penalty, int removedReports)

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

引数

throws

なし

主要な呼び出し順

getSchedulerrunTaskfromStringgetPlayerisOnlinesendMessageformatInstantOrDashgetBanAfterTrollStrikes

scheduleBanReporter

メソッドprivate
private void scheduleBanReporter(ReportRow row, String resolverName)

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

引数

throws

なし

主要な呼び出し順

getSchedulerrunTaskfromStringgetOfflinePlayergetNameisBlankgetTrollBanReasongetBanList

updateDiscordMessagesResolved

メソッドprivate
private void updateDiscordMessagesResolved(ReportRow row)

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

引数

throws

なし

主要な呼び出し順

editReportMessagesfindDeliveriesbuildResolvedEmbedsecondaryresolveButtonIdasDisabled

updateDiscordMessagesDeleted

メソッドprivate
private void updateDiscordMessagesDeleted(ReportSnapshot snapshot, String deletedBy)

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

引数

throws

なし

主要な呼び出し順

editReportMessagesbuildDeletedEmbedsecondarydeleteButtonIdasDisabled

updateDiscordMessagesTroll

メソッドprivate
private void updateDiscordMessagesTroll(ReportSnapshot snapshot, String actedBy, PenaltyState penalty)

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

引数

throws

なし

主要な呼び出し順

editReportMessagesbuildTrollPenaltyEmbedsecondarytrollButtonIdasDisabled

editReportMessages

メソッドprivate
private void editReportMessages(List<DeliveryRow> deliveries, EmbedBuilder embed, Button disabledButton)

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

引数

throws

なし

主要な呼び出し順

getDiscordNotifiergetJdagetPrivateChannelByIdretrieveUserByIdcompleteopenPrivateChanneleditMessageEmbedsByIdbuild

buildOpenEmbed

メソッドprivate
private EmbedBuilder buildOpenEmbed(ReportRow row)

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

引数

throws

なし

主要な呼び出し順

baseEmbedsetTitlesetColoraddFieldformatTsclipField

buildResolvedEmbed

メソッドprivate
private EmbedBuilder buildResolvedEmbed(ReportRow row)

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

引数

throws

なし

主要な呼び出し順

isBlankofNullablemaporElsebaseEmbedsetTitlesetColoraddField

buildDeletedEmbed

メソッドprivate
private EmbedBuilder buildDeletedEmbed(ReportRow row, String deletedBy)

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

引数

throws

なし

主要な呼び出し順

baseEmbedsetTitlesetColoraddFieldclipField

buildTrollPenaltyEmbed

メソッドprivate
private EmbedBuilder buildTrollPenaltyEmbed(ReportRow row, String actedBy, PenaltyState penalty)

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

引数

throws

なし

主要な呼び出し順

formatTsbaseEmbedsetTitlesetColoraddFieldclipFieldgetBanAfterTrollStrikes

baseEmbed

メソッドprivate
private EmbedBuilder baseEmbed(ReportRow row)

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

引数

throws

なし

主要な呼び出し順

fromDbKeyaddFielddisplayNameclipFieldsetFooter

insertReport

メソッドprivate
private long insertReport(UUID reporterUuid, String reporterName, PendingConfirmation pending)

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

引数

throws

なし

主要な呼び出し順

player_reportsgetConnectionprepareStatementsetStringgetConfiggetStringdbKeytoString

deleteReport

メソッドprivate
private void deleteReport(long reportId)

対象データや登録状態を削除・解除します。

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetLongexecuteUpdategetLoggerwarninggetMessage

saveDelivery

メソッドprivate
private void saveDelivery(long reportId, String discordUserId, String privateChannelId, String messageId)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementplayer_report_discord_deliverysetLongsetStringexecuteUpdategetLoggerwarning

findReport

メソッドprivate
private Optional<ReportRow> findReport(long reportId)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetLongexecuteQuerynextmapReportgetLoggerwarning

findOpenReportsByReporter

メソッドprivate
private List<ReportRow> findOpenReportsByReporter(String reporterUuid)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetStringexecuteQuerynextmapReportgetLoggerwarning

snapshotOpenReportsByReporter

メソッドprivate
private List<ReportSnapshot> snapshotOpenReportsByReporter(String reporterUuid)

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

引数

throws

なし

主要な呼び出し順

findOpenReportsByReportersnapshotReport

snapshotReport

メソッドprivate
private ReportSnapshot snapshotReport(ReportRow row)

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

引数

throws

なし

主要な呼び出し順

findDeliveries

findDeliveries

メソッドprivate
private List<DeliveryRow> findDeliveries(long reportId)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetLongexecuteQuerynextgetStringgetLoggerwarning

countOpenReports

メソッドpublic
public long countOpenReports(UUID reporterUuid)

DB への問い合わせまたは更新処理を担当します。

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetStringtoStringexecuteQuerynextgetLonggetLogger

getCooldownRemainingMillis

メソッドprivate
private long getCooldownRemainingMillis(UUID reporterUuid)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetStringtoStringexecuteQuerynextgetTimestampgetLogger

getPenaltyState

メソッドprivate
private PenaltyState getPenaltyState(UUID reporterUuid)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetStringtoStringexecuteQuerynextgetTimestampgetInt

incrementPenalty

メソッドprivate
private PenaltyState incrementPenalty(String reporterUuid, String reporterName, User resolver, String reason)

DB への問い合わせまたは更新処理を担当します。

引数

throws

なし

主要な呼び出し順

getTrollBlockMillisnowplusMillisgetConnectionsetAutoCommitprepareStatementsetStringexecuteQuery

mapReport

メソッドprivate
private ReportRow mapReport(ResultSet rs) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getTimestampgetLonggetStringtoInstant

isEnabled

メソッドpublic
public boolean isEnabled()

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

引数

throws

なし

主要な呼び出し順

getConfiggetBoolean

getMaxOpenPerPlayer

メソッドprivate
private int getMaxOpenPerPlayer()

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

引数

throws

なし

主要な呼び出し順

maxgetConfiggetInt

getCooldownMillis

メソッドprivate
private long getCooldownMillis()

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

引数

throws

なし

主要な呼び出し順

maxgetConfiggetLong

getConfirmTimeoutMillis

メソッドprivate
private long getConfirmTimeoutMillis()

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

引数

throws

なし

主要な呼び出し順

maxgetConfiggetLong

getTrollPenaltyHours

メソッドprivate
private long getTrollPenaltyHours()

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

引数

throws

なし

主要な呼び出し順

maxgetConfiggetLong

getTrollBlockMillis

メソッドprivate
private long getTrollBlockMillis()

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

引数

throws

なし

主要な呼び出し順

maxgetConfiggetLong

getBanAfterTrollStrikes

メソッドprivate
private int getBanAfterTrollStrikes()

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

引数

throws

なし

主要な呼び出し順

maxgetConfiggetInt

isDeleteOpenReportsOnTroll

メソッドprivate
private boolean isDeleteOpenReportsOnTroll()

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

引数

throws

なし

主要な呼び出し順

getConfiggetBoolean

getTrollBanReason

メソッドprivate
private String getTrollBanReason()

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

引数

throws

なし

主要な呼び出し順

getConfiggetString

getAdminDiscordIds

メソッドprivate
private List<String> getAdminDiscordIds()

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

引数

throws

なし

主要な呼び出し順

getConfiggetStringisBlanktrimgetStringList

isAdminUser

メソッドprivate
private boolean isAdminUser(String discordUserId)

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

引数

throws

なし

主要な呼び出し順

getAdminDiscordIdsequals

isOk

メソッドprivate
private boolean isOk(String normalized)

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

引数

throws

なし

主要な呼び出し順

equals

isCancel

メソッドprivate
private boolean isCancel(String normalized)

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

引数

throws

なし

主要な呼び出し順

equals

resolveButtonId

メソッドprivate
private String resolveButtonId(long reportId)

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

引数

throws

なし

主要な呼び出し順

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

deleteButtonId

メソッドprivate
private String deleteButtonId(long reportId)

対象データや登録状態を削除・解除します。

引数

throws

なし

主要な呼び出し順

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

trollButtonId

メソッドprivate
private String trollButtonId(long reportId)

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

引数

throws

なし

主要な呼び出し順

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

resolveModalId

メソッドprivate
private String resolveModalId(long reportId)

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

引数

throws

なし

主要な呼び出し順

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

sanitizeTitle

メソッドprivate
private String sanitizeTitle(String title)

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

引数

throws

なし

主要な呼び出し順

trimreplace

sanitizeBody

メソッドprivate
private String sanitizeBody(String body)

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

引数

throws

なし

主要な呼び出し順

trim

sanitizeResolutionComment

メソッドprivate
private String sanitizeResolutionComment(String body)

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

引数

throws

なし

主要な呼び出し順

trimlengthsubstring

clipField

メソッドprivate
private String clipField(String s, int maxLen)

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

引数

throws

なし

主要な呼び出し順

lengthsubstringmax

clipForDb

メソッドprivate
private String clipForDb(String s, int maxLen)

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

引数

throws

なし

主要な呼び出し順

lengthsubstring

formatSeconds

メソッドprivate
private long formatSeconds(long millis)

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

引数

throws

なし

主要な呼び出し順

max

formatTs

メソッドprivate
private String formatTs(Instant instant)

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

引数

throws

なし

主要な呼び出し順

format

formatRemaining

メソッドprivate
private String formatRemaining(long millis)

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

引数

throws

なし

主要な呼び出し順

max

formatInstantOrDash

メソッドprivate
private String formatInstantOrDash(Instant instant)

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

引数

throws

なし

主要な呼び出し順

formatTs

parseId

メソッドprivate
private Long parseId(String customId, String prefix)

入力テキストや設定値を解析して内部表現へ変換します。

引数

throws

なし

主要な呼び出し順

parseLongsubstringlength

buildResolveModal

メソッドprivate
private Modal buildResolveModal(long reportId)

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

引数

throws

なし

主要な呼び出し順

createsetRequiredsetMaxLengthsetPlaceholderbuildresolveModalIdaddActionRow

代表的な処理フロー

  1. onReportConfirmChat フロー
    onReportConfirmChat → getPlayer → getUniqueId → isExpired → remove → setCancelled
    イベント発生時の分岐と後続処理を担当します。
  2. onQuit フロー
    onQuit → getPlayer → getUniqueId → remove
    イベント発生時の分岐と後続処理を担当します。
  3. onReportGuiClick フロー
    onReportGuiClick → getWhoClicked → handleInventoryClick
    イベント発生時の分岐と後続処理を担当します。
  4. onReportGuiClose フロー
    onReportGuiClose → getPlayer → handleInventoryClose
    イベント発生時の分岐と後続処理を担当します。
  5. onReportGuiSignChange フロー
    onReportGuiSignChange → getPlayer → handleSignChange
    イベント発生時の分岐と後続処理を担当します。

外部との接点

Web ルート

このクラス内に目立つ Web ルート定義は見つかりませんでした。

SQL / テーブル

player_reportsplayer_report_discord_deliveryplayer_report_penaltiesreporter_name

関連クラス

補足