ポーカー ― OP・運営ガイド¶
ポーカー(poker モジュール)の有効化・poker.yml 設定・会場のセットアップ・管理コマンド・権限をまとめます。ポーカーは CasinoPlugin に統合された poker モジュールのため、専用 jar の導入は不要です。
基本情報¶
| 項目 | 値 |
|---|---|
| モジュール ID | poker |
| ゲーム種別 | テキサスホールデム |
| メインコマンド | /poker(エイリアス /pk) |
| 設定ファイル | plugins/CasinoPlugin/modules/poker.yml |
| 有効化フラグ | plugins/CasinoPlugin/config.yml の modules.poker.enabled |
| 依存モジュール | bank モジュール(エメラルドの口座機能。必須) |
| 人数 | 2〜6人(最少2人で開始、看板の上限6人) |
CasinoPlugin のモジュールです
ポーカーは CasinoPlugin の poker モジュールとして動作します。専用 jar はありません。CasinoPlugin 本体の導入・共通設定は CasinoPlugin の OP ページ を参照してください。poker モジュールは起動時に bank(エメラルド銀行)の API が利用可能であることを必要とし、bank が未起動だと poker モジュールは起動に失敗します。
有効化¶
ポーカーを使うには、CasinoPlugin の config.yml で poker モジュールを有効にします。専用 jar の追加は不要です。
# plugins/CasinoPlugin/config.yml
modules:
bank:
enabled: true # 必須。エメラルドの口座機能
poker:
enabled: true # ポーカーを有効化
modules.poker.enabledをtrueにすると、サーバー起動時に poker モジュールが起動し、/pokerコマンドと看板リスナーが登録されます。falseの場合、コマンド・リスナーは一切登録されません。bankモジュールが無効だと、poker モジュールは起動に失敗します(賭け金の処理に銀行の口座機能が必要なため)。- 初回起動時、
plugins/CasinoPlugin/modules/poker.ymlが自動生成されます。
poker.yml 設定項目¶
個別設定は plugins/CasinoPlugin/modules/poker.yml にあります。座標や看板の位置はコマンドから自動で書き込まれるため、手動編集は基本的に settings 部分のみで十分です。
settings(一般設定)¶
| キー | 既定値 | 説明 |
|---|---|---|
settings.maxRaiseAmount |
1000 |
1ハンドあたりの合計ベット額の上限(レイズ上限)。/poker raisemoney でも変更でき、変更内容はこのキーに保存される |
bet_options |
(未設定) | (任意・トップレベルキー)SB掛け金変更GUIに並べる金額リスト。未設定時は既定の18段階(1, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000, 25000, 50000, 100000, 250000, 500000, 1000000)を使用。コマンドからは書き込まれないため、変更する場合のみ手動で追記する |
input(アクション入力・統合版対応)¶
| キー | 既定値 | 説明 |
|---|---|---|
input.click-debounce-ms |
250 | 同じプレイヤーの連続クリックを無視する間隔(統合版の二重入力対策) |
input.turn-timeout-seconds |
90 | マルチ卓の手番の制限時間(秒)。超えると自動でチェック(支払い不要時)/フォールド(支払い必要時)。残り10秒で警告。0 で無効 |
input.action-gui.bedrock |
true | 統合版(Geyser/Floodgate)プレイヤーに手番でアクションGUIを自動表示 |
input.action-gui.all-players |
false | Java版を含む全員にアクションGUIを自動表示する |
solo(ソロモード・Bot対戦・キャッシュゲーム)¶
人が集まらなくてもBot相手に1人で遊べるソロモードの設定です。看板は /poker setsign solo <卓ID>、着席位置は /poker setsolospawn で設定します(自動保存)。プレイヤーは [Poker Solo] 看板または /poker solo <卓ID> で着席します。
| キー | 既定値 | 説明 |
|---|---|---|
solo.result-seconds |
6 | ハンド結果を見せる秒数 |
solo.action-timeout-seconds |
60 | 無操作でチェック/フォールドするまでの秒数 |
solo.rebuy-timeout-seconds |
60 | バスト後のリバイ待ちの制限時間(秒)。過ぎると離席・精算 |
solo.auto-leave-after-timeouts |
3 | 連続タイムアウトで自動離席 |
solo.bot-count |
4 | 1卓のBot数(1〜5) |
solo.bot-buyin-bb |
100 | Botの着席スタック(BB倍) |
solo.bust-threshold-bb |
5 | これ未満になったBotは離席して入れ替わる |
solo.rake-percent |
3 | レーキ(%)。フロップ以降のポットのみ。0で無し |
solo.rake-cap-bb |
5 | レーキ上限(BB倍) |
solo.simulations |
200 | Botの勝率計算の試行回数(50〜2000。大きいほど賢く重い) |
solo.stats-save-interval-seconds |
60 | ソロ戦績をファイルへ保存する間隔(秒) |
solo.tables.<id> |
low/mid/high | 卓(レート)ごとの display・small-blind・big-blind・min-buyin-bb・max-buyin-bb(バイインはBB倍)。既定は low(SB5/BB10, 40〜200BB)・mid(SB50/BB100, 40〜200BB)・high(SB500/BB1000, 40〜150BB) |
solo.bots.<id> |
6体の既定Bot | Botの name・style(TAG/LAG/ROCK/STATION/MANIAC)・mistake-rate・tell(NONE/SLOW_STRONG/FAST_STRONG)・思考時間・台詞など。既定は マサル/おかん/ゲンさん/リン/ジャッキー/先生 の6体 |
ソロ看板・着席位置はコマンドで保存
/poker setsign solo <卓ID>([Poker Solo] 看板を登録)・/poker setsolospawn(着席位置)で設定した内容は poker.yml の solo-signs などへ自動保存されます。Botのレート表(tables)や性格(bots)は poker.yml を直接編集して調整できます。
ダブルアップ・レーキフリーイベントは共通 config.yml で制御
ポーカーは CasinoPlugin 共通機能とも連携します。これらは poker.yml ではなく本体の plugins/CasinoPlugin/config.yml で設定します。
- ダブルアップ:ハンドで利益が出たプレイヤーに「獲得分を賭けて倍にするか」を提案します。本体
doubleup(enabled/max-rounds/cap-amount/tie-rule/timeout-seconds)とgames.poker-solo/games.poker-multiが有効なときに発生します。プレイヤーは/poker doubleupで画面を開き直せます。 - レーキフリーイベント:本体
events.poker-no-rake(既定enabled: false、duration-minutes: 30)が稼働中は、ソロ卓のレーキ(solo.rake-percent)が一時的に無効になります。
signs(公開札看板の位置)¶
signs.sign1 〜 signs.sign5 に、公開カードを表示する5枚の看板の座標が保存されます。/poker setsign card1〜/poker setsign card5 コマンドで設定され、各エントリは world / x / y / z を持ちます。
locations(誘導用の座標)¶
locations.lobby / locations.spawn と、ゲームエリアの対角2点 locations.field1 / locations.field2 に、プレイヤー誘導用の座標が保存されます。/poker setlobby / setstartspawn / setfield <1|2> コマンドで設定され、各エントリは world / x / y / z / yaw / pitch を持ちます。なお locations.gamearea のみ専用のセットアップコマンドが無く、手動記入が必要です(下表参照)。
| 座標 | 役割 |
|---|---|
locations.lobby |
参加看板クリック時とゲーム終了時に転送されるロビー |
locations.gamearea |
ゲーム開始時に全員が転送される着席地点。専用コマンドは無く、poker.yml に手動記入する |
locations.field1 / field2 |
ゲームエリア(対戦卓)の範囲を記録する対角2点(開始時の転送先ではない) |
locations.spawn |
離脱時に転送されるスポーン地点 |
座標・看板は手動編集しない
signs と locations のブロックは、後述のセットアップコマンドを実行した場所の座標が自動で書き込まれます。手動で書く必要はありません。書き込む場合は poker.yml 冒頭のコメントにある形式に従ってください。
セットアップ手順¶
ポーカー会場を作るには、座標3地点と公開札看板5枚を設定します。OP 権限(poker.admin.setup)を持った状態で、以下を順に実行します(座標系はその場に立って、看板系は看板を見ながら実行)。
公開札看板を5枚設置し、それぞれの看板を見ながら1枚ずつ実行します。
参加・離脱用の看板を設置し、看板を見ながら登録します(テキストは自動整形)。
ソロモード(Bot対戦)の設置¶
ソロ卓を使う場合は、卓ごとに着席看板と着席位置を設定します(マルチ対戦の会場とは独立して設置できます)。
卓ID は既定で low / mid / high(poker.yml の solo.tables)です。プレイヤーは [Poker Solo] 看板または /poker solo <卓ID> で着席します。
公開札看板の役割
card1〜card5(poker.yml では signs.sign1〜sign5)の看板には、フロップ・ターン・リバーで公開されるカードが順に表示されます。5枚すべてが設定されていないとゲームを開始できません(/poker start 実行時にチェックされます)。
看板の種類とフォーマット
看板は視線先(5ブロック以内)を見ながら /poker setsign <join|leave|bet|start|solo <卓ID>|card1〜5|delete> で登録します。種別ごとの動作は次のとおりです。
join(lobbyでも可): 参加看板。クリックで待機リストに追加&ロビーへ転送。参加人数(最大6人)を自動表示leave: 離脱看板。クリックで待機リスト/ゲームから離脱bet: SB掛け金変更看板。クリックで SB掛け金変更GUI が開く(金額の変更はOPのみ)。GUIに並ぶ金額は poker.yml のbet_optionsで変更可能start: 開始看板。クリックでゲーム開始(OP専用)card1〜card5: 公開札看板delete(removeでも可): 視線先の登録済み看板を解除(公開札看板の場合は登録を取り消し)
手書きの場合は、参加看板は1行目を [Poker] / [Poker参加] / [PokerJoin] のいずれかに、離脱看板は [PokerLeave] / [Poker離脱] のいずれかにして設置できます(設置時に自動整形)。
ゲーム運営コマンド¶
管理コマンド一覧¶
| コマンド | 必要権限 | 説明 |
|---|---|---|
/poker setlobby |
poker.admin.setup |
現在地をロビー座標に設定 |
/poker setfield <1\|2> |
poker.admin.setup |
現在地をゲームエリアの角1/角2に設定 |
/poker setstartspawn |
poker.admin.setup |
現在地を離脱スポーン座標に設定 |
/poker setsign card<1-5> |
poker.admin.setup |
見ている看板を公開札看板に登録(poker.yml の signs.sign1〜sign5) |
/poker setsign <join\|leave\|bet\|start> |
poker.admin.setup |
見ている看板を参加/離脱/SB掛け金GUI/開始看板として登録(自動整形) |
/poker setsign <delete\|remove> |
poker.admin.setup |
見ている登録済み看板を解除する |
/poker bet <額> |
poker.admin.setup |
スモールブラインド(SB)額を設定(BB はその2倍。ゲーム進行中は変更不可) |
/poker raisemoney <額> |
poker.admin.setup |
レイズ上限を設定(poker.yml に保存される) |
/poker getraisemoney |
なし | 現在のレイズ上限を表示 |
/poker start |
poker.admin.control |
ゲームを開始(最少2人・看板5枚が必要) |
/poker stop |
poker.admin.control |
進行中のゲームを強制終了 |
/poker status |
なし | 設定状況・待機人数・ゲーム状態を表示 |
/poker money |
なし | 現在のポット額を表示 |
/poker join [プレイヤー名] |
poker.admin.control または OP |
プレイヤーを待機リストに追加(プレイヤーは [Poker] 看板から参加) |
/poker leave [プレイヤー名] |
poker.admin.control または OP |
プレイヤーを待機リスト/ゲームから離脱させる |
/poker debug hand <カード7枚> |
poker.admin.debug |
7枚のカードで役判定をテスト(例: SA SK SQ SJ ST H2 D3) |
start / stop はコマンドブロックからも実行可能
/poker start と /poker stop は、コマンドブロックからも実行できます(コマンドブロック実行時は権限チェックが省略されます)。プレイヤー・コンソールから実行する場合は poker.admin.control 権限が必要です。/poker bet はゲーム進行中は実行できません。
権限ノード¶
plugin.yml で定義されている poker 関連の権限です。
| 権限 | 既定 | 用途 |
|---|---|---|
poker.admin |
OP | ポーカー管理コマンドの全権限(下記3つを子に持つ) |
poker.admin.setup |
OP | セットアップ系コマンド(setlobby / setstartspawn / setfield / setsign / bet / raisemoney) |
poker.admin.control |
OP | ゲーム制御系コマンド(start / stop) |
poker.admin.debug |
OP | デバッグ系コマンド(debug hand) |
poker.admin を付与すると、子権限の poker.admin.setup / poker.admin.control / poker.admin.debug がすべて有効になります。/poker status / /poker money / /poker getraisemoney など情報系のコマンドは権限不要で、全員が実行できます。
トラブルシューティング¶
/poker コマンドが「不明なコマンド」になる
poker モジュールが無効化されている可能性があります。config.yml の modules.poker.enabled が true か確認してください。無効モジュールはコマンド・リスナーが一切登録されません。
起動ログに poker モジュールの起動失敗が出る
poker モジュールは起動時に bank(エメラルド銀行)の API を必要とします。modules.bank.enabled が true で、bank モジュールが正常に起動しているか確認してください。bank が未起動だと poker は EmeraldAPI not bound で起動に失敗します。
/poker start でゲームが始まらない
開始には次の条件が必要です。いずれかが不足するとエラーメッセージが表示されます。
- 待機中のプレイヤーが 2人以上 いること。
- 公開札看板
card1〜card5(poker.yml のsign1〜sign5)の 5枚すべて が設定済みであること。 - 既にゲームが進行中でないこと。
/poker status で待機人数を、看板設定は /poker setsign card1〜card5 の実行履歴を確認してください。
/poker setsign で「看板を見ながら実行」と出る
/poker setsign <種別> は、看板ブロックを見ながら(5ブロック以内)実行する必要があります。看板を設置してから、その看板に視点を合わせてコマンドを実行してください。
ゲーム開始時にプレイヤーが転送されない
ゲーム開始時の転送先は locations.gamearea(着席地点)です。この座標が未設定だと転送がスキップされます(看板やプレイは続行できます)。locations.gamearea を設定するセットアップコマンドは無く、poker.yml に world / x / y / z / yaw / pitch の形式で手動記入する必要があります。なお /poker setfield 1 / 2(locations.field1 / field2)はゲームエリアの範囲を記録する対角2点で、開始時の転送先ではありません。ゲーム終了時の転送先はロビー(/poker setlobby)です。
公開カードが看板に表示されない
card1〜card5 に登録した座標に 看板ブロックが実在する か確認してください。看板が破壊・移動されていると表示が更新されません。再設置後、/poker setsign card1〜card5 で登録し直してください。
RAISE の上限を変えたい / ベット額を変えたい
レイズ上限は /poker raisemoney <額>(poker.yml の settings.maxRaiseAmount に保存)、スモールブラインド額は /poker bet <額> で変更します。/poker bet はゲーム進行中は使えないため、ゲーム終了後に実行してください。
途中でプレイヤーが抜けてゲームが止まる
プレイヤーが離脱・切断すると自動でフォールド扱いになります。アクティブな参加者が1人になった時点でそのプレイヤーの勝利としてゲームが終了します。意図せず停止した場合は /poker stop で強制終了できます。