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

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

クラス説明

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

責務と見どころ

重点クラスの詳細解説

Guild Service に関するサービス層・業務処理を担当します。guild パッケージの中でも 785 行規模の中核クラスで、永続化境界・スケジューラが一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。

最初に追う読む順番

  1. GuildService
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. ensureTables
    不足テーブル・設定・内部状態を先に揃える入口です。変更を入れる前提条件の確認地点になります。
  3. createGuild
    実体や対象状態を作る段階で、後続フローがどのデータを前提に動くかを掴めます。
  4. updateRole
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。
  5. dispatchGuildCmds
    dispatchGuildCmds の主要処理を担当します。
  6. leaveGuild
    後片付けと停止の出口です。残骸や再ログイン後の不整合はここを確認します。
  7. addForeignKeyIgnoreErrors
    DB への問い合わせまたは更新処理を担当します。
  8. getGuildId
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
  9. getGuild
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

内部サブシステムの地図

起動・前提準備

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

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

終了処理と掃除

停止時やフロー終端で残る実体・タスク・キャッシュを戻す出口です。

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

代表フロー詳解

変更時の注意点

外部接点

主な永続化テーブル

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

guildsguild_membersguild_contribguild_progressserver_goalsguild_buffsguild_invitesguild_metaguild_sidebar_prefsmvaluevaluelevel

フィールド

VisibilityTypeName役割
privatePluginpluginプラグイン本体参照です。
privateDataSourcedsDB 接続元を保持します。
privateZoneIdtztz の状態を保持します。
privateSeasonServiceseasonService関連サービスへの参照です。

コンストラクタ / 初期化

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

メソッド索引

NameVisibilityKind説明
GuildServicepublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
GuildServicepublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
addForeignKeyIgnoreErrorsprivateメソッドDB への問い合わせまたは更新処理を担当します。
ensureTablespublicメソッド必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
getGuildIdpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getGuildpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getRolepublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
createGuildpublicメソッドDB への問い合わせまたは更新処理を担当します。
leaveGuildpublicメソッドDB への問い合わせまたは更新処理を担当します。
invitepublicメソッドDB への問い合わせまたは更新処理を担当します。
acceptInvitepublicメソッドDB への問い合わせまたは更新処理を担当します。
promotepublicメソッドDB への問い合わせまたは更新処理を担当します。
demotepublicメソッドDB への問い合わせまたは更新処理を担当します。
updateRoleprivateメソッド状態を永続化または更新し、最新状態へ反映します。
setBannerpublicメソッドDB への問い合わせまたは更新処理を担当します。
setTitleKeypublicメソッドsetTitleKey の主要処理を担当します。
upsertMetaprivateメソッドDB への問い合わせまたは更新処理を担当します。
dispatchGuildCmdsprivateメソッドdispatchGuildCmds の主要処理を担当します。
addContributionpublicメソッドDB への問い合わせまたは更新処理を担当します。
scheduleDailyAggregationpublicメソッドDB への問い合わせまたは更新処理を担当します。
fireCompletedGoalsprivateメソッドDB への問い合わせまたは更新処理を担当します。
millisUntilNextResetprivateメソッドmillisUntilNextReset の主要処理を担当します。
grantBuffpublicメソッドDB への問い合わせまたは更新処理を担当します。
getActiveBuffspublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getSidebarModepublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
setSidebarModepublicメソッドDB への問い合わせまたは更新処理を担当します。
getSidebarKeypublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
setSidebarKeypublicメソッドDB への問い合わせまたは更新処理を担当します。
getSidebarLayoutpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
setSidebarLayoutpublicメソッドDB への問い合わせまたは更新処理を担当します。
getRankOfGuildpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getTodayContributionSumpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getServerGoalTargetpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getTopGuildspublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getTopContributorspublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
periodStartprivateメソッドperiodStart の主要処理を担当します。
bytesToUuidprivateメソッドbytesToUuid の主要処理を担当します。
uuidToBytespublicメソッドuuidToBytes の主要処理を担当します。

メソッド詳細

GuildService

コンストラクタpublic
public GuildService(Plugin plugin, DataSource ds, ZoneId tz, SeasonService seasonService)

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

引数

throws

なし

主要な呼び出し順

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

GuildService

コンストラクタpublic
public GuildService(Plugin plugin, DataSource ds, ZoneId tz)

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

引数

throws

なし

主要な呼び出し順

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

addForeignKeyIgnoreErrors

メソッドprivate
private void addForeignKeyIgnoreErrors(Connection c, String sql, String label)

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

引数

throws

なし

主要な呼び出し順

createStatementexecuteUpdategetLoggerinfovalueOfgetMessagecontainsfine

ensureTables

メソッドpublic
public void ensureTables()

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

引数

throws

なし

主要な呼び出し順

guildsguild_membersuk_uuidguild_contribidx_guildidx_ckeyguild_progressserver_goals

getGuildId

メソッドpublic
public Optional<Integer> getGuildId(UUID uuid)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetBytesuuidToBytesexecuteQuerynextgetIntgetLogger

getGuild

メソッドpublic
public Optional<GuildInfo> getGuild(int guildId)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetIntexecuteQuerynextgetIntgetStringgetLogger

getRole

メソッドpublic
public Role getRole(UUID uuid)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetBytesuuidToBytesexecuteQuerynextvalueOfgetString

createGuild

メソッドpublic
public int createGuild(UUID owner, String name, String tag) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getConnectionsetAutoCommitprepareStatementsetBytesuuidToBytesexecuteQuerynextguilds

leaveGuild

メソッドpublic
public void leaveGuild(UUID player) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getConnectionprepareStatementsetBytesuuidToBytesexecuteUpdate

invite

メソッドpublic
public void invite(UUID inviter, UUID invitee, Duration ttl) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getGuildIdorElsegetRolegetConnectionprepareStatementguild_invitessetIntsetBytes

acceptInvite

メソッドpublic
public void acceptInvite(UUID invitee) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getConnectiongetGuildIdorElseprepareStatementsetBytesuuidToBytesexecuteQuerynext

promote

メソッドpublic
public void promote(UUID actor, UUID target) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getGuildIdorElseequalsgetRoleupdateRole

demote

メソッドpublic
public void demote(UUID actor, UUID target) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getGuildIdorElseequalsgetRoleupdateRole

updateRole

メソッドprivate
private void updateRole(int gid, UUID uuid, Role role) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getConnectionprepareStatementsetStringnamesetIntsetBytesuuidToBytesexecuteUpdate

setBanner

メソッドpublic
public void setBanner(int guildId, String bannerData) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getConnectionprepareStatementsetStringsetIntexecuteUpdategetConfiggetStringListgetGuild

setTitleKey

メソッドpublic
public void setTitleKey(int guildId, String titleKey) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

upsertMetagetConfiggetStringListgetGuildorElsedispatchGuildCmds

upsertMeta

メソッドprivate
private void upsertMeta(int guildId, String key, String value) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

getConnectionprepareStatementguild_metasetIntsetStringexecuteUpdate

dispatchGuildCmds

メソッドprivate
private void dispatchGuildCmds(List<String> cmds, GuildInfo g, Map<String,String> extra)

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

引数

throws

なし

主要な呼び出し順

replacenametagentrySetgetKeygetValuedispatchCommandgetConsoleSender

addContribution

メソッドpublic
public void addContribution(UUID uuid, String key, int amount)

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

引数

throws

なし

主要な呼び出し順

getGuildIdifPresentgetConnectionprepareStatementguild_contribsetIntsetBytesuuidToBytes

scheduleDailyAggregation

メソッドpublic
public void scheduleDailyAggregation()

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

引数

throws

なし

主要な呼び出し順

millisUntilNextResetgetSchedulerrunTaskTimerAsynchronouslygetConnectionsetAutoCommitnowwithHourwithMinute

fireCompletedGoals

メソッドprivate
private void fireCompletedGoals()

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementexecuteQuerynextgetStringbroadcastMessagegetConfiggetStringList

millisUntilNextReset

メソッドprivate
private long millisUntilNextReset()

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

引数

throws

なし

主要な呼び出し順

nowwithHourwithMinutewithSecondwithNanoisAfterplusDaysbetween

grantBuff

メソッドpublic
public void grantBuff(int guildId, String buffKey, int level, Duration duration) throws SQLException

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

引数

throws

SQLException

主要な呼び出し順

valueOfnowplustoLocalDateTimegetConnectionprepareStatementguild_buffssetInt

getActiveBuffs

メソッドpublic
public Map<String,Integer> getActiveBuffs(int guildId)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetIntexecuteQuerynextgetStringgetIntgetLogger

getSidebarMode

メソッドpublic
public String getSidebarMode(UUID uuid)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetBytesuuidToBytesexecuteQuerynextgetString

setSidebarMode

メソッドpublic
public void setSidebarMode(UUID uuid, String mode)

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

引数

throws

なし

主要な呼び出し順

equalsIgnoreCasegetConnectionprepareStatementguild_sidebar_prefssetBytesuuidToBytessetStringtoLowerCase

getSidebarKey

メソッドpublic
public String getSidebarKey(UUID uuid)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetBytesuuidToBytesexecuteQuerynextgetString

setSidebarKey

メソッドpublic
public void setSidebarKey(UUID uuid, String key)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementguild_sidebar_prefssetBytesuuidToBytessetStringexecuteUpdategetLogger

getSidebarLayout

メソッドpublic
public String getSidebarLayout(UUID uuid)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetBytesuuidToBytesexecuteQuerynextgetString

setSidebarLayout

メソッドpublic
public void setSidebarLayout(UUID uuid, String layout)

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

引数

throws

なし

主要な呼び出し順

equalsIgnoreCasegetConnectionprepareStatementguild_sidebar_prefssetBytesuuidToBytessetStringtoLowerCase

getRankOfGuild

メソッドpublic
public GuildRank getRankOfGuild(int guildId, String key)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetStringexecuteQuerynextgetIntgetLonggetString

getTodayContributionSum

メソッドpublic
public long getTodayContributionSum(int guildId, String key)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementnowwithHourwithMinutewithSecondwithNanoisAfter

getServerGoalTarget

メソッドpublic
public long getServerGoalTarget(String key)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetStringexecuteQuerynextgetLong

getTopGuilds

メソッドpublic
public List<GuildTopRow> getTopGuilds(String key, int limit)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetStringsetIntmaxexecuteQuerynextgetString

getTopContributors

メソッドpublic
public List<MemberTopRow> getTopContributors(int guildId, String key, int limit, String scope)

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

引数

throws

なし

主要な呼び出し順

valueOfperiodStarttoLocalDateTimegetConnectionprepareStatementsetStringsetTimestampsetInt

periodStart

メソッドprivate
private ZonedDateTime periodStart(String scope)

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

引数

throws

なし

主要な呼び出し順

nowwithHourwithMinutewithSecondwithNanovalueOftoLowerCaseisAfter

bytesToUuid

メソッドprivatestatic
private static UUID bytesToUuid(byte[] b)

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

引数

throws

なし

主要な呼び出し順

wrapgetLong

uuidToBytes

メソッドpublicstatic
public static byte[] uuidToBytes(UUID u)

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

引数

throws

なし

主要な呼び出し順

wrapputLonggetMostSignificantBitsgetLeastSignificantBitsarray

代表的な処理フロー

  1. updateRole フロー
    updateRole → getConnection → prepareStatement → setString → name → setInt
    状態を永続化または更新し、最新状態へ反映します。
  2. ensureTables フロー
    ensureTables → guilds → guild_members → uk_uuid → guild_contrib → idx_guild
    必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
  3. acceptInvite フロー
    acceptInvite → getConnection → getGuildId → orElse → prepareStatement → setBytes
    DB への問い合わせまたは更新処理を担当します。
  4. addContribution フロー
    addContribution → getGuildId → ifPresent → getConnection → prepareStatement → guild_contrib
    DB への問い合わせまたは更新処理を担当します。

外部との接点

Web ルート

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

SQL / テーブル

guildsguild_membersguild_contribguild_progressCURRENT_TIMESTAMPserver_goalsguild_buffsguild_invitesguild_metaguild_sidebar_prefsmvaluevaluelevelmodemetric_keylayout

関連クラス

補足