Skip to Content
MoripaFishing

CatchAnnounce

魚を釣り上げたことをサーバー内にアナウンスする公式 Addon。かつて Core に組み込まれていた 釣果アナウンス機能(PlayerFishingAnnounceListener)を、カスタマイズの幅を広げつつ Core を 肥大化させないために外部 Addon として切り出したもの。

AnglerFishCaughtResultEvent(moripafishing-api)を購読し、釣り上げが確定するたびに config.yml で指定したフォーマットの メッセージをブロードキャストする。メッセージ中の魚名・レアリティ名・ワールド名のプレースホルダーは 翻訳可能コンポーネントとして展開されるため、サーバーに翻訳が登録されていれば閲覧者ごとに クライアントのロケールに応じた表示になる。

導入

  1. サーバーの plugins/ にリリースの MoripaFishing-catch-announce-<version>.jar を配置する(MoripaFishing-Addon-CatchAnnounce は プラグイン名であってファイル名ではない)。
  2. サーバーを起動する。paper-plugin.yml で MoripaFishing を必須依存(Load.BEFORE, required = true)として宣言しているため、 Core より後にロードされる。Core が導入されていない場合、この Addon は読み込まれない。
  3. 初回起動時に plugins/MoripaFishing-Addon-CatchAnnounce/config.yml が生成される。

config.yml

初回起動時には、既定値をそのまま書き出した次の内容が生成される。

plugins/MoripaFishing-Addon-CatchAnnounce/config.yml
messageFormat: "<gray>[<gold>釣果</gold>]</gray> <angler> が <fish_name> <gray>(<rarity_name>, <size>cm)</gray> を釣り上げました"
maxRarityWeight: null
broadcastTarget: ALL
broadcastPermission: "moripafishing.addon.catchannounce.receive"

config.yml は起動時に一度だけ読み込まれる。この Addon はコマンドを一切登録しないため、 設定を変更した場合はサーバーの再起動(またはプラグインのリロード)が必要になる。 YAML として不正な内容や、未知のキーがある場合は読み込みに失敗し、Addon の有効化そのものが失敗する。 以前のバージョンで生成された config.yml に enabled や minRarityWeight が残っている場合は、削除するか maxRarityWeight に書き換える。

フィールド型説明
messageFormatstringMiniMessage形式のメッセージテンプレート。<angler>、<fish_name>、<rarity_name>、<size>、<world_name>、<timestamp>のプレースホルダーが使用可能
maxRarityWeightnumber (小数可) | nullこの値以下のweightを持つレアリティの魚のみアナウンスする。weightがこの値と等しい場合もアナウンスされる。レアリティのweightは値が小さいほどレアな魚を表す。nullの場合は全ての釣果をアナウンスする(デフォルト: null)
broadcastTargetstringアナウンスの送信先。ALL(サーバー全体)、SAME_WORLD(同じ釣り場ワールドに滞在しているつりびとのみ)、PERMISSION(broadcastPermissionの権限を持つプレイヤーのみ)のいずれかを指定する(デフォルト: ALL)
broadcastPermissionstringbroadcastTargetがPERMISSIONのときに参照される権限ノード(デフォルト: moripafishing.addon.catchannounce.receive)

アナウンスを止めたい場合は Addon 自体を取り除く。

SAME_WORLD の送信先は、Core の AnglerManager が管理しているオンラインのつりびとのうち、 釣果が発生したワールドに滞在している者に限られる。

broadcastPermission の権限ノードはプラグインの定義ファイルに宣言されていないため、既定では OP にも継承されない。 LuckPerms などの権限プラグインで明示的に付与する必要がある。

プレースホルダー

  • <angler>: 釣ったプレイヤーの名前
  • <fish_name>: 魚の表示名。翻訳キー moripa_fishing.fish.<魚ID>.name として展開される
  • <rarity_name>: レアリティの表示名。翻訳キー moripa_fishing.rarity.<レアリティID>.name として展開される
  • <size>: 魚のサイズ。小数第2位までの数値文字列(小数点はサーバーのロケールによらず .)で、単位は含まれないためテンプレート側で cm などを記述する
  • <world_name>: 釣り場ワールド名。翻訳キー moripa_fishing.world.<ワールドID>.name として展開される
  • <timestamp>: 釣った日時。ISO 8601 形式の文字列がそのまま入り、整形やロケール対応は行われない

翻訳が登録されていないキーは、翻訳されずにキー文字列がそのまま表示される。 メッセージ全体は MiniMessage として解釈されるため、色や装飾に加えて hover / click などのタグも利用できる。

注意

maxRarityWeightはレアリティのweightと比較される。weightは値が小さいほどレアな魚を意味するため、 「レア度の高い釣果だけをアナウンスしたい」場合は小さい値を設定する。

On this page