コンテンツにスキップ

Level#

Level はプレイヤーがトップアイランドを目指して競えるようにします!ブロックを設置してアイランドレベルを上げましょう!

作成・メンテナンス: tastybento

インストール#

  1. Level アドオンの jar を BentoBox プラグインの addons フォルダに配置します。
  2. サーバーを再起動します。
  3. アドオンはデータフォルダを作成し、その中に config.yml が作成されます。
  4. config.yml を希望通りに編集します。設定にはブロックの価値が指定されています(下記参照)。
  5. 変更を加えた場合はサーバーを再起動します。

設定#

Level アドオンには 3 つの一般的な設定があります:

  • config.yml ファイルにはデフォルトのアドオン設定が含まれています。
  • blockconfig.yml ファイルには各ブロックの価値が含まれています。
  • /panels/ にはプレイヤーの GUI を管理するファイルが含まれています。

config.yml#

設定ファイルにはアドオンのメイン機能が含まれています。

最新の config.yml はこちらで確認できます。

このセクションではアドオンの全体的な設定を定義します。

disabled-game-modes

Level アドオンが動作しない GameModeAddon を指定できます。

Level はこれらのゲームモードアドオンにフックしません。

デフォルト: []

log-report-to-console

コンソールからコマンドを実行した場合にレベルレポートを表示できます。

デフォルト: true

concurrent-island-calcs

同時に実行できるアイランドレベル計算の数を指定できます。

CPU が対応できる場合、キューに複数ある場合は並列アイランド計算を実行できます。

デフォルト: 1

calculation-timeout

レベル計算を停止するまでの分数を指定できます。

通常、計算は数秒しかかからないため、これがトリガーされる場合は何かがおかしいです。

デフォルト: 5

zero-new-island-levels

スターターブロックをアイランドレベルに含めるかどうかを指定できます。

true の場合、Level はスターターアイランドのレベルを計算し、将来のレベル計算からそれを差し引きます。 全スターターブロックが削除されるとプレイヤーのレベルはマイナスになる可能性があります。

false の場合、プレイヤーのスターターアイランドブロックはレベルにカウントされます。

デフォルト: true

login

プレイヤーのログイン時にアイランドレベルを計算するよう設定できます。

プレイヤーがログインした時に静かにアイランドレベルを計算します。

デフォルト: false

nether

ネザーアイランドをレベル計算に含められます。

警告: ゲーム途中でこれを有効にすると、アイランドを持つプレイヤーのアイランドレベルが急上昇します。新しいアイランドは正しくゼロになります。

デフォルト: false

end

エンドアイランドをレベル計算に含められます。

警告: ゲーム途中でこれを有効にすると、アイランドを持つプレイヤーのアイランドレベルが急上昇します。新しいアイランドは正しくゼロになります。

デフォルト: false

include-chests

チェストの内容物をレベル計算に含められます。

警告: レベル計算が長くなり、サーバーのパフォーマンスに影響する可能性があります。

デフォルト: false

underwater

水中ブロックの倍率を指定できます。

ブロックが海面より低い場合、より高い価値を持てます(例: 2倍)。 海がある場合に水中開発を促進します。値は小数でも可能です。

デフォルト: 1.0

levelcost

アイランドレベル1の価値を指定できます。

デフォルト: 100

最小値: 1

level-calc

レベル計算の計算式を指定できます。

  • blocks - デスペナルティを差し引いた全ブロック価値の合計
  • level_cost - 線形方程式における1レベルの価値

この計算式には +、=、*、/、sqrt、^、sin、cos、tan、log(自然対数)が使えます。 結果は常にlong整数に丸められます。

例えば、非線形の代替オプション: 3 * sqrt(blocks / level_cost)

デフォルト: blocks / level_cost

levelwait

レベルリクエスト間のクールダウンを秒数で指定できます。

デフォルト: 60

deathpenalty

デスペナルティを指定できます。

プレイヤーが死ぬたびに失うブロック価値。 デフォルト値の 100 は、死ぬたびにプレイヤーが 1 レベル失うことを意味します(levelcost が 100 の場合)。

この機能を使用しない場合はゼロに設定してください。

デフォルト: 100

sumteamdeaths

デスペナルティに全チームメンバーの死亡を合計できます。

false の場合、リーダーの死亡のみがカウントされます。

デフォルト: false

shorthand

アイランドレベルの表示を短縮できます。

大きなレベル値を四捨五入して表示します(例: 10,345 → 10k)。

デフォルト: false

blockconfig.yml#

ブロック設定ファイルにはブロックの価値が含まれています。

最新の blockconfig.yml はこちらで確認できます。

このセクションではブロックの価値とその制限を定義します。

ヒント

このファイルの値は整数(全数)のみをサポートします。

ヒント

正しいマテリアル名は Spigot のマテリアルページで確認できます。

注意: これが最新の Spigot マテリアルリストです: MATERIALS

limits

このセクションには特定のブロックの制限が記載されています。 この量を超えるブロックはカウントされません。 この制限は全ゲームモードに適用され、ワールド固有ではありません。

形式: MATERIAL: NUMBER

blocks

このセクションには全ゲームモード(ワールド)におけるブロックの価値が記載されています。 ワールド固有の値を指定するには次のセクションを使用してください。 記載されていないブロックは価値 0 となります。AIR は常にゼロです。

形式: MATERIAL: NUMBER

CraftEngine のカスタムブロックもサポートされています(BentoBox 3.15.0+ が必要)。ネームスペース ID をキーとして使用してください:

blocks:
  mynamespace:my_block: 50
  mynamespace:custom_ore: 3
worlds

特定のワールドで異なる価値を持つブロックを記載します。 ブロックが記載されていない場合は、ブロックセクションのデフォルト値が使用されます。 ワールド名をプレフィックスとして付けます。その値は関連するネザーとエンドに適用されます(存在する場合)。

例:

    worlds:
      AcidIsland_world:
        SAND: 0
        SANDSTONE: 0
        ICE: 0

この例では、AcidIsland は砂、砂岩、氷を除く全てのブロックで BSkyBlock と同じ価値を使用します。

カスタマイズ可能な GUI#

BentoBox 1.17 API ではカスタマイズ可能な GUI を実装する機能が導入されました。カスタマイズをできる限りシンプルにしようとしましたが、一部の機能については説明が必要です。 BentoBox カスタム GUI の詳細はこちらを参照してください: カスタム GUI

GUI をカスタマイズするにはどうすればいいですか?

Level アドオンの GUI をカスタマイズするにはバージョン 2.10.0 が必要です。これが実装された最初のバージョンです。アドオンは /plugins/bentobox/addons/level の下に panels というディレクトリを作成します。

現在カスタマイズできる GUI は 3 つです:

  • トップパネル: top_panel - 上位 10 つのアイランドを表示できます。
  • 詳細ブロックパネル: detail_panel - ゲーム内でブロック価値の詳細リストを表示できます。
  • ブロック価値パネル: value_panel - ゲーム内で各ブロックの価値を表示できます。

各 GUI にはそれぞれに固有の機能があります。

PREVIOUS|NEXT ボタンタイプとは何ですか?

このボタンは detail_panel と value_panel で利用できます。 PREVIOUS と NEXT ボタンタイプは、GUI のスペースより多くのブロックがある場合に自動ページングを作成できます。 これらのタイプには data の下に追加パラメーターがあります:

  • indexing - ボタンにページ番号を表示するかどうかを示します。

例:

    icon: tipped_arrow[potion_contents={custom_color:11546150}]
    title: level.gui.buttons.previous.name
    description: level.gui.buttons.previous.description
    data:
      type: PREVIOUS
      indexing: true
    action:
      left:
        tooltip: level.gui.tips.click-to-previous

TOP ボタンタイプとは何ですか?

このボタンは top_panel で利用できます。アイランドレベルで上位 X 位のアイランドを表示します。

icon のデフォルトは適切なプレイヤースキンの PLAYER_HEAD です。有効にすると指定されたマテリアルに置き換えられます。

data フィールドの index で、現在のスポットに表示するトップ 10 の順位を指定できます。

トップパネルには追加アドオンが必要な 2 つのアクションがあります:

  • warp - Warps アドオンが必要。プレイヤーのアイランドにワープサインが存在する場合のみ表示されます。
  • visit - Visit アドオンが必要。プレイヤーのアイランドへの訪問が許可されている場合のみ表示されます。

フォールバックにより、トップスポットにプレイヤーがいない場合の背景アイコンを変更できます。

例:

    #icon: PLAYER_HEAD
    title: level.gui.buttons.island.name
    description: level.gui.buttons.island.description
    data:
      type: TOP
      index: 1
    actions:
      warp:
        click-type: LEFT
        tooltip: level.gui.tips.click-to-warp
      visit:
        click-type: RIGHT
        tooltip: level.gui.tips.right-click-to-visit
    fallback:
      icon: LIME_STAINED_GLASS_PANE
      title: level.gui.buttons.island.empty

VIEW ボタンタイプとは何ですか?

このボタンは top_panel で利用できます。閲覧者のアイランドレベルを表示します。

icon のデフォルトは適切なプレイヤースキンの PLAYER_HEAD です。有効にすると指定されたマテリアルに置き換えられます。

view アクションでプレイヤーのアイランドの詳細メニューを見ることができます。

例:

    #icon: PLAYER_HEAD
    title: level.gui.buttons.island.name
    description: level.gui.buttons.island.description
    data:
      type: VIEW
    actions:
      view:
        click-type: unknown
        tooltip: level.gui.tips.click-to-view

BLOCK ボタンタイプとは何ですか?

このボタンは detail_panel と value_panel で利用できます。指定されたマテリアルをアイコンとして表示します。

例:

  #icon: STONE
  title: level.gui.buttons.value.name
  description: level.gui.buttons.value.description
  data:
    type: BLOCK

コマンド#

ヒント

[player_command][admin_command] は実行中のゲームモードによって異なるコマンドです。 ゲームモードの config.yml ファイルにはこれらの値を変更するオプションがあります。 例えば BSkyBlock では、デフォルトの [player_command]island、デフォルトの [admin_command]bsbadmin です。

  • /[player_command] top: トップパネルにアクセスします。[gamemode].island.top 権限が必要です。
  • /[player_command] level: プレイヤーのレベル計算をトリガーします。[gamemode].island.level 権限が必要です。
  • /[player_command] value [material]: ブロックの価値を確認できます。[gamemode].island.value 権限が必要です。
  • /[player_command] donate: チェストスタイルの GUI を開いてブロックをアイランドのレベルに直接寄付します。寄付されたポイントは将来のレベル再計算後も保持されます。[gamemode].island.level.donate 権限が必要です。
  • /[player_command] donate hand [amount]: GUI を開かずにプレイヤーが手に持っているアイテム(または指定した数量)をアイランドレベルに直接寄付します。[gamemode].island.level.donate 権限が必要です。
  • /[admin_command] level <player>: プレイヤーのレベル計算をトリガーします。[gamemode].admin.level 権限が必要です。
  • /[admin_command] levelstatus: キューにあるアイランドの数を表示します。[gamemode].admin.levelstatus 権限が必要です。
  • /[admin_command] sethandicap <player> <number>: アイランドレベルの初期値を設定できます。[gamemode].admin.level.sethandicap 権限が必要です。
  • /[admin_command] top: チャットでトップ 10 のアイランドを表示します。[gamemode].admin.top 権限が必要です。
  • /[admin_command] top remove <player>: プレイヤーをトップから削除できます。[gamemode].admin.top.remove 権限が必要です。

権限#

ヒント

[gamemode] は実行中のゲームモードによって異なるプレフィックスです。 プレフィックスはゲームモード名の小文字です。例えば BSkyBlock を使用している場合、プレフィックスは bskyblock です。 同様に AcidIsland を使用している場合、プレフィックスは acidisland です。

  • [gamemode].intopten - (デフォルト: true) - プレイヤーがトップ 10 パネルに表示されることを許可します。
  • [gamemode].island.level - (デフォルト: true) - プレイヤーが /[player_command] level コマンドを使用できます。
  • [gamemode].island.top - (デフォルト: true) - プレイヤーが /[player_command] top コマンドを使用できます。
  • [gamemode].island.value - (デフォルト: true) - プレイヤーが /[player_command] value コマンドを使用できます。
  • [gamemode].island.level.details.blocks - (デフォルト: true) - プレイヤーがアイランドのブロック詳細リストを表示できます。
  • [gamemode].island.level.details.spawners - (デフォルト: false) - プレイヤーがアイランドのスポナー詳細リストを表示できます。
  • [gamemode].island.level.details.underwater - (デフォルト: false) - プレイヤーがアイランドの水中ブロック詳細リストを表示できます。
  • [gamemode].island.level.details.above-sea-level - (デフォルト: false) - プレイヤーがアイランドの海面より上のブロック詳細リストを表示できます。
  • [gamemode].island.level.donate - (デフォルト: true) - プレイヤーが /[player_command] donate コマンドを使用できます。
  • [gamemode].admin.level - (デフォルト: op) - プレイヤーが /[admin_command] level <player> コマンドを使用できます。
  • [gamemode].admin.levelstatus - (デフォルト: op) - プレイヤーが /[admin_command] levelstatus コマンドを使用できます。
  • [gamemode].admin.level.sethandicap - (デフォルト: op) - プレイヤーが /[admin_command] sethandicap <player> <number> コマンドを使用できます。
  • [gamemode].admin.top - (デフォルト: op) - /[admin_command] top コマンドへのアクセスを許可します。
  • [gamemode].admin.top.remove - (デフォルト: op) - /[admin_command] top remove <player> コマンドへのアクセスを許可します。
何か不足していますか?

このアドオンの addon.yml ファイルで権限の完全なリストを確認できます。
以下のリストに不足しているものがあれば、お知らせください!

プレースホルダー#

Tip

[gamemode] is a prefix that differs depending on the gamemode you are running.

The prefix is the lowercased name of the gamemode, i.e. if you are using BSkyBlock, the prefix is bskyblock.

Properly translated placeholders for each gamemode can be found:

Please read the main Placeholders page.

Placeholder Description Level version
%Level_[gamemode]_island_level% Island level of the player's island 1.9.0
%Level_[gamemode]_visited_island_level% Island level of the island the player is standing on 1.9.0
%Level_[gamemode]_top_value_<number>% Island level of the <number>-th island in the Top 10 1.9.0
%Level_[gamemode]_top_name_<number>% Island owner's name of the <number>-th island in the Top 10 1.9.0
%Level_[gamemode]_top_island_name_<number>% Name of the <number>-th island in the Top 10 2.11.0
%Level_[gamemode]_top_members_<number>% List of the members of the `-th island in the Top 10 2.11.0
%Level_[gamemode]_top_weighted_value_<number>% Weighted island level (level/number of members) of the <number>-th island in the Top 10 2.12.0
%Level_[gamemode]_top_weighted_name_<number>% Weighted island level name (level/number of members) of the <number>-th island in the Top 10 2.12.0
%Level_[gamemode]_top_weighted_members_<number>% Weighted island members (level/number of members) of the <number>-th island in the Top 10 2.12.0
%Level_[gamemode]_top_weighted_island_name_<number>% Weighted island name (level/number of members) of the <number>-th island in the Top 10 2.12.0
%Level_[gamemode]_points_to_next_level% Points to the next level for player 2.3.3
%Level_[gamemode]_rank_value% Displays island rank value 2.7.2
%Level_[gamemode]_island_level_raw% Unformatted island level 2.8.1
%Level_[gamemode]_island_total_points% Total number of points counted before applying level formula 2.10.0
%Level_[gamemode]_island_level_max% Maximum level this island has ever been. Current level maybe lower. 2.10.0

よくある質問#

機能 X を追加してもらえますか?

こちらのリストに追加してください。

level-cost をレベルごとに増加させるにはどうすればいいですか?

level-cost 設定は固定値であり、BentoBox はアイランドレベルをレベルごとに反復するのではなく、総ブロック数に単一の計算式を適用してアイランドレベルを計算するため、レベルごとに反復的に増加させることはできません。

増加するレベルコストを実現する方法は level-calc 計算式を使用することです。例えば、各レベルが前のレベルより 50% 難しくなるようにする場合(つまり、レベル 1 は 100 ブロック、レベル 2 は 150、レベル 3 は 225 など)の計算式は:

level-calc: 2.4661 * log(blocks) - (2.4661 * log(level_cost) - 1)

ここで level_cost はレベル 1 に到達するために必要なブロック数です。

そのプログレッションのグラフはこちらです:

template

警告

この計算式はレベル 25 あたりで漸近線になり始め、レベル 26 や 27 に到達するには非常に多くのブロックが必要になり、時間の経過とともにほとんどのプレイヤーが同じ最大レベルに収束する可能性があります。プログレッションカーブを選ぶ際にこの点を考慮してください。

カスタム計算式の導出

特定のプログレッションカーブに合った計算式を作成するには:

  1. スプレッドシート(Excel や Google シートなど)でターゲットレベルとそれに対応するブロックコストの表を作成します。
  2. 表の X/Y グラフを作成します。
  3. グラフを右クリックしてトレンドラインを追加します。カーブに最もよく合う近似タイプ(線形、対数、指数など)を選択し、「グラフに方程式を表示」を有効にします。
  4. 得られた方程式で xblocks に置き換えて level-calc の値として使用します。

例えば、上記の 50% プログレッションはこの方法で導出され、次の式になります:

level-calc: 2.4661 * log(blocks) - 10.357

template template

変更履歴#

v2.23.0 の新機能

リリース日: 2026-02-21

  • Oraxen と Nexo のファーニチャー/カスタムブロックサポート。 Level が Oraxen のファーニチャーメカニクスと Nexo のカスタムブロック・ファーニチャーをアイランドレベルにカウントできるようになりました。これらの統合はベータ版です。どちらかのプラグインをインストールしている場合は有効にしてください。
  • 新しいブロックごとのプレースホルダー: [gamemode]_island_count_<block>(アイランド上の特定ブロックの数)、[gamemode]_island_value_<block>(ブロックタイプの価値)、[gamemode]_island_limit_<block>(設定されたブロック制限)。ブロックキーにはアンダースコアを使用(例: _island_count_minecraft_stone)。

Release v2.23.0

v2.24.0 の新機能 — 対応が必要

リリース日: 2026-04-12

  • ブロック寄付システム。 プレイヤーが /[player_command] donate(GUI)または /[player_command] donate hand [amount](手持ちから素早く寄付)を使ってアイランドのレベルにブロックを永続的に寄付できるようになりました。寄付されたポイントはアイランドごとに保存され、レベル再計算後も再追加されます。
  • 新しい ISLAND_BLOCK_DONATION 保護フラグで誰が寄付できるかを制御します。デフォルトはオーナーのみ。メンバーランクまで拡張可能です。
  • detail_panel.yml に寄付履歴を表示する新しい DONATED タブを追加。
  • level-cost 計算式でより大きなチームを不利にするための新しい island_members 変数が利用可能。
  • 管理者レベルレポートに寄付ブロックの内訳を含めるようになりました。
  • 全ロケールファイルを MiniMessage フォーマットに移行。
  • 🆕 ロシア語(ru.yml)ロケールを追加。
  • 並行書き込み時のトップテン順序のバグを修正。
  • 吊り看板、ツタ、洞窟のツタのブロックアイコンが正しくレンダリングされるように修正。

🔺 新しい DONATED タブテンプレートが生成されるよう、再起動前に plugins/BentoBox/addons/Level/panels/detail_panel.yml を削除してください。このファイルはアップグレード時に上書きされません。

🔡 カスタマイズがある場合はロケールファイルを再生成してください — 古い & カラーコードはもはや有効ではありません。

Release v2.24.0

v2.25.0 の新機能

リリース日: 2026-04-26

  • CraftEngine カスタムブロックサポート。 CraftEngine のブロックがアイランドレベル計算でカウントされるようになりました。ネームスペース ID を使って blockconfig.yml に追加してください(例:mynamespace:my_block: 50)。BentoBox 3.15.0+ が必要です。config.ymldisabled-plugin-hooks: [CraftEngine] で無効化できます。
  • hand キーワードのローカライズ対応。 /island donate/island valuehand 引数が新しいロケールキー island.donate.hand.keyword で翻訳可能になりました。英語の hand は常にフォールバックとして受け付けられます。
  • 🔡 英語以外の 16 のロケールファイルを更新し、不足しているキーを追加しました。
  • 🔡 ウクライナ語ロケールが完全に翻訳されました。

🔡 新しい island.donate.hand.keyword キーを取得するためにロケールファイルを再生成してください。

Release v2.25.0

v2.26.0 の新機能

リリース日: 2026-05-04

  • 設定可能な寄付パネル。 寄付 GUI が新しい panels/donation_panel.yml テンプレートで完全に設定可能になりました。価値、詳細、トップテンの各パネルと同じ仕組みです。サーバー管理者はパネルを 1~6 行にリサイズし、4 つの名前付きボタン(INFOCANCELPREVIEWCONFIRM)の位置とアイコンを変更し、装飾アイテムを追加できます。寄付グリッドは枠でも名前付きボタンでもないすべてのセルを自動で埋めます。
  • force-shown: [1,2,3,4] でパネルが使う行数を制御します(1~6 行サポート)。4 つの必須ボタンは data.type に従って配置されます。テンプレートが見つからないか必須ボタンのいずれかが存在しない場合、パネルは従来のハードコードされた 4 行レイアウトにフォールバックします。
  • 🐛 装飾用テンプレートアイテムが実際にインベントリに表示されるようになりました。寄付パネルのカスタム title: も尊重されるようになりました。force-shown は他のパネル YAML と同様にリストとしてパースされます。
  • API の破壊的変更なし、ロケール変更なし、config.yml の移行なし。

⚙️ 寄付パネルレイアウト。 初回起動時に新しい panels/donation_panel.yml がデータフォルダに展開されます。触らなければ 2.25.0 と同じレイアウトでレンダリングされ、編集すればカスタマイズできます。

Release v2.26.0

翻訳#

翻訳の改善にご協力ください

BentoBoxとその拡張機能のほとんどの翻訳はAIの助けを借りて 生成されているため、作業の大部分はすでに完了しています — ただしAIは完璧ではありません。コミュニティに本当に必要なのは、 エラーの報告と修正です。

  • 誤りや不自然な表現を見つけた場合は、 bentobox.world(GitHubオーガニゼーションへの ショートリンク)からissueまたはPRを開くか、 Discordでご連絡ください。
  • 新しい言語を追加したい場合は、該当リポジトリの src/main/resources/locales/に新しいロケールファイルを追加する PRを開くか、Discordでご相談ください。
言語 言語コード 進捗
英語(アメリカ) en-US 100%(デフォルト)
インドネシア語 id 100%
ウクライナ語 uk 100%
オランダ語 nl 100%
スペイン語 es 100%
チェコ語 cs 100%
トルコ語 tr 100%
ドイツ語 de 100%
ハンガリー語 hu 100%
フランス語 fr 100%
ベトナム語 vi 100%
ポルトガル語 pt 100%
ポーランド語 pl 100%
ラトビア語 lv 100%
ロシア語 ru 100%
中国語(中国) zh-CN 100%
韓国語 ko 100%

API#

Level 2.7.2 と BentoBox 1.17 以降、他のプラグインが Level アドオンのデータに直接アクセスできます。ただし、アドオンリクエストは依然として多くの依存関係を使用したくないプラグインには良い解決策です。

Maven 依存関係#

Level は他のプラグイン向け API を提供しています。これは Level 2.8.1 以降に対応しています。

注意

Maven POM.xml に Level 依存関係を追加してください:

    <repositories>
        <repository>
            <id>codemc-repo</id>
            <url>https://repo.codemc.io/repository/bentoboxworld/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>world.bentobox</groupId>
            <artifactId>level</artifactId>
            <version>2.8.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

最新の Level バージョンを使用してください。

ワールド内のアイランドのプレイヤーレベルを取得するには、アイランドがあるワールドを取得し、そのワールドでプレイヤーがアイランドのオーナーであることを確認した後、Level に問い合わせます。

Level の JavaDocs はこちらで確認できます。

イベント#

説明

プレイヤーのレベルが計算されたときにトリガーされるイベントです。

クラスへのリンク: IslandLevelCalculatedEvent

変数

  • Island island - アイランドオブジェクト。
  • UUID targetPlayer - レベルを計算したプレイヤーの ID。
  • Results results - 計算されたアイランドの結果。

コード例

@EventHandler(priority = EventPriority.MONITOR)
public void onLevelCalculated(IslandLevelCalculatedEvent event) {
    UUID user = event.getTargetPlayer();
    Island island = event.getIsland();
    Results results = event.getResults();

    // death handicap from results.
    int deathHandicap = event.getDeathHandicap();

    // the island initial level from results.
    long initialLevel = event.getInitialLevel();

    // the island level from results.
    long level = event.getLevel();

    // this will overwrite island level to 100.
    event.setLevel(100);

    // number of points required to next level
    long pointsToNextLevel = event.getPointsToNextLevel();

    // the report text from results.
    List<String> report = event.getReport();
}

説明

プレイヤーのレベルが計算される前にトリガーされるイベントです。

クラスへのリンク: IslandPreLevelEvent

変数

  • Island island - アイランドオブジェクト。
  • UUID targetPlayer - レベルを計算したプレイヤーの ID。

コード例

@EventHandler(priority = EventPriority.LOW)
public void beforeLevelCalculated(IslandPreLevelEvent event) {
    UUID user = event.getTargetPlayer();
    Island island = event.getIsland();
}

アドオンリクエストハンドラー#

このAPIはもはや必要ありません。Level は現在 Bukkit プラグインとしてロードされているため、そのメソッドに直接アクセスできます。Level の JavaDocs はこちらで確認できます。例えばプレイヤーのレベルを取得したい場合は、LevelsManager クラスのメソッドから直接取得できます。ただし、レガシーの理由からこのドキュメントは保存されています。

アドオンリクエストハンドラーの詳細はこちらをご覧ください。

説明

指定されたワールドにおけるこのプレイヤーのアイランドレベルを返します。

入力

  • world-name: String - ワールドの名前。
  • player: UUID - プレイヤーの UUID。

出力

プレイヤーのアイランドレベル、または入力が無効な場合やこのプレイヤーがこのワールドにアイランドを持っていない場合は 0L

失敗

world-name が提供されていないか、world-name が存在しないかゲームモードワールドでない場合、このハンドラーは 0L を返します。

コード例

    /**
     * Returns the level of this player's island in the given world.
     * @param playerUUID UUID of the player, not null.
     * @param worldName Name of the world (Overworld) the island is in, not null.
     * @return the player's island level or {@code 0L} if the input was invalid or
     *         if this player does not have an island in this world.
     */
    public long getIslandLevel(UUID playerUUID, String worldName) {
        return (Long) new AddonRequestBuilder()
            .addon("Level")
            .label("island-level")
            .addMetaData("world-name", worldName)
            .addMetaData("player", playerUUID)
            .request();
    }

説明

アイランドレベルのトップ 10 のアイランドオーナーの UUID をキーとし、アイランドレベルを値とするマップを返します。

入力

  • world-name: String - ワールドの名前。

出力

トップ 10 のアイランドオーナーの UUID をキーとし、アイランドレベルを値とする Map<UUID, Long>

失敗

world-name が提供されていないか、world-name が存在しないかゲームモードワールドでない場合、このハンドラーは空のマップを返します。

コード例

    /**
     * Returns the players whose island they own is in the Top 10 mapped to the level of their island.
     * @param worldName Name of the world (Overworld) the island is in, not null.
     * @return a Map containing the UUIDs of the island owners whose island is in the Top 10, mapped to the level of their island,
     *         or an empty map if the specified world doesn't exist or doesn't contain islands.
     */
    public Map<UUID, Long> getTopTen(String worldName) {
        return (Map<UUID, Long>) new AddonRequestBuilder()
            .addon("Level")
            .label("top-ten-level")
            .addMetaData("world-name", worldName)
            .request();
    }

最終更新日: 2026年5月9日 23:22:46