サーバー/サーバーラッパー/CraftBukkit,Spigot
ここでは、Spigotの設定について記述してある。
サーバーの設定
spigot.yml
Spigot Configuration(SpigotMC)
サーバーのファイル
CraftBukkitサーバーの1.8.8で生成されるファイル類です。
json形式は、いじるのが難しいため通常はコマンドから設定変更をします。それらは、コマンドを参照して下さい。
ファイル/フォルダ名 | 説明 | 追加説明 |
craftbukkit.1.8.8.jar | サーバーファイルです。 | それぞれのサーバー/サーバーMODのものです。 |
logs(フォルダ) | 起動時からのサーバーのログファイルが入っています。起動をすることで新しいファイルが生成されます。 | 基本的に「西暦-月-日(-同日に複数回起動した際に生成される).log.gz」のように生成されます。lastest.logは最新のログファイル(その時起動している時/最後に生成された)ものとなります。 |
world(フォルダ) | これは、初期状態で生成されるワールドデータです。 | このデータを消すことで、ワールドを再生成がすることが出来ます。 |
banned-ips.json | これは、IPBANのデータが入っています。 IPBANとは、指定したIPからの接続を拒否することです。 |
現在は、json形式のため、編集には技術が必要かもしれません。 |
banned-players.json | これは、プレーヤーBANのデータが入っています。 プレーヤーBANとは、指定したプレーヤーからの接続を拒否することです。 |
現在は、json形式のため、編集には技術が必要かもしれません。 |
eula.txt | EULAに同意するか書き込むためのファイルです。 | EULAとは利用規約の意味です。 |
ops.json | OPの設定のためのデータが入っています。 OPとは、サーバーの管理者で一部の管理用コマンドなどが使用可能になります。 |
現在は、json形式のため、編集には技術が必要かもしれません。 |
server.properties | サーバーの設定を変更することが出来るファイルです。 | 詳細はserver.propertiesでの設定変更を参照して下さい。 |
usercache.json | プレーヤーの情報を保存しているらしい。 | わからない |
whitelist.json | ホワイトリストの設定のためのデータが入っています。 ホワイトリストとは、指定したユーザーIDのみの接続を許可することです。 有効にするには、server.properties内のwhite-listの項目が有効になっていなくてはなりません。 |
現在は、json形式のため、編集には技術が必要かもしれません。 |
以下より、バニラ(公式)サーバーで生成されないファイルです。
ファイル/フォルダ名 | 説明 | 追加説明 |
plugins(フォルダ) | Bukkitプラグインを追加するフォルダです。基本的にこのフォルダにプラグインを入れることで導入ができます。 | |
world_nether(フォルダ) | ネザーのワールドデータです。 | なぜわかれているのか不明。 |
world_the_end(フォルダ) | エンドのワールドデータです。 | なぜわかれているのか不明。 |
bukkit.yml | Bukkitによって追加された詳細な設定が可能なファイルです。詳細は、bukkit.ymlを参照して下さい。 | バニラ(公式)サーバーのserver.propertiesを強化したものです。 |
commands.yml | コマンドエイリアスを設定したり、コマンドブロックのコマンド動作を上書き設定したりすることが可能なファイルです。詳細は、commands.ymlを参照して下さい。 | Bukkit 1.7.2-R0.3以降に追加されました。 |
help.yml | ||
permissions.yml |
bukkit.yml
この項目は、BukkitWiki(en)/Bukkit.yml並びに、BukkitJPWiki(運営停止)を参考にしています。
settingセクション
CraftBukkitサーバーの一般的な設定項目です。
項目 | タイプ | 標準設定 | 説明 |
allow-end | boolean | true | ジエンドを有効にします。 |
warn-on-overload | boolean | true | サーバーが重いときにコンソールに[WARNING] Can't keep up! Did the system time change, or is the server overloaded?のメッセージを表示するかどうかを設定します。 |
permissions-file | string, filename | permissions.yml | パーミッション設定ファイル名を指定します。PermissionsExなどのパーミッション管理プラグインを導入しているとそちらが利用されるので、CraftBukkit標準のパーミッションファイルは、あまり使われないかも知れません。 |
update-folder | string, foldername | update | アップデートされたプラグインが置かれるフォルダのフォルダ名を設定します。このフォルダはpluginsフォルダの中に作成されます。絶対パスは指定できません。 |
plugin-profiling | boolean | false | /timingsコマンドの使用可否を設定します。プラグインがリスナー登録している処理が、どの程度の負荷がかかっているかを調査することが可能です。 |
connection-throttle | long, milliseconds | 4000 | クライアントが再接続可能になるまでの時間を設定します。0 に設定すると、connection-throttle機能を無効にできますが、あなたのサーバーが攻撃の危険にさらされます(テストサーバーにのみ使われるべき設定です)。 |
query-plugins | boolean | true | サーバーがリモートから要求されたときに、プラグインのリストをかえすかどうかを設定します。 |
deprecated-verbose | string | default | プラグインが無効化されたイベントにリスナー登録しようとしたときに、警告を表示するかどうかの設定です。trueまたはfalseを設定すると、警告の表示/非表示を設定することができます。 defaultを設定すると、開発者が警告を抑制するマークをつけていない場合、警告が常に表示されるようになります。 |
shutdown-message | string | Server closed | サーバーが停止したときにクライアントに表示されるメッセージです。 |
spawn-limitsセクション
動物やMOBが、1チャンクに何体までスポーンできるかを設定する項目です。
項目 | タイプ | 標準設定 | 説明 |
monsters | integer | 70 | 1チャンクあたりにスポーンできるモンスター数を設定します。 |
animals | integer | 15 | 1チャンクあたりにスポーンできる動物の数を設定します。 |
water-animals | integer | 5 | 1チャンクあたりにスポーンできる水生生物(イカなど)の数を設定します。 |
ambient | integer | 15 | 1チャンクあたりにスポーンできるその他の生物(コウモリなど)の数を設定します。 |
※群集でスポーンした動物やモンスターは、これらの制限に影響されません。個々の制限値があり、それに従います。
chunk-gcセクション
CraftBukkitサーバーが、使用されていないチャンクをアンロードする動作(以下chunk-gc)の設定です。
項目 | タイプ | 標準設定 | 説明 |
period-in-ticks | integer | 600 | chunk-gcが実行される間隔をtick(1tick = 1/20秒)で指定します。0を設定すると、chunk-gcが無効になります。 |
load-threshold | integer | 0 | 前回のchunk-gcから次のchunk-gcまでの間で、ロードされているチャンクの閾値を指定します。ロードされたチャンクが、この設定値より下回った場合、chunk-gcは次回に持ち越されます。 0が指定されている場合は、この閾値に関係なく、period-in-ticksの間隔ごとに毎回chunk-gcが行われます。 |
ticks-perセクション
CraftBukkitサーバーが、特定のtick(1tick = 1/20秒)ごとに動作する機能の設定です。
項目 | タイプ | 標準設定 | 説明 |
animal-spawns | integer | 400 | 動物がスポーンする間隔をtickで指定します。 使用例: ・1に設定した場合、サーバーは毎tick、動物をスポーン処理します。 ・400に設定した場合、サーバーは400tick(=20秒)ごとに、動物をスポーン処理します。 ・0より小さい値を設定した場合、Minecraftのデフォルトへリセットされます。 ・0を設定した場合、動物のスポーンが無効化されます。 |
monster-spawns | integer | 1 | モンスターがスポーンする間隔をtickで指定します。 使用例: ・1に設定した場合、サーバーは毎tick、モンスターをスポーン処理します。 ・400に設定した場合、サーバーは400tick(=20秒)ごとに、モンスターをスポーン処理します。 ・0より小さい値を設定した場合、Minecraftのデフォルトへリセットされます。 ・0を設定した場合、モンスターのスポーンが無効化されます。 |
autosave | integer | 0 | auto-saveを実行する間隔をtickで指定します。 使用例: ・1に設定した場合、サーバーは毎tick、auto-saveを実行します。 ・6000に設定した場合、サーバーは6000tick(=5分)ごとに、auto-saveを実行します。 ・0より小さい値を設定した場合、Bukkitのデフォルトへリセットされます。 ・0を設定した場合、auto-saveは無効化されます。 多くのBukkitサーバーは、既にauto-save用プラグインを利用しています。 そのため、save-allの重い処理をBukkit本体側でも実行すると冗長になるため、Bukkit本体側ではauto-saveを標準では実行しないようにしています。 この設定を使う場合は、save-allの処理はとても重いため、6000tick(=5分)程度の大きな値を指定するようにしてください。 (なお、バニラ(公式)サーバーのauto-save間隔は、6000です。) |
aliasesセクション
この設定はcommands.ymlに移動されました。
databaseセクション
この設定では、データベース(DB)の設定をします。
このセクションでは、eBeansサーバー内部で使用されるプラグインによって共有されるデータベースに対し、様々なデータベース関連の構成オプションを設定することができます。
ただし、ほとんどのプラグインはこのオプションを使用しないため、構成すは任意です。
これらのプロパティを変更すると、Bukkitと統合されたeBeansサーバーを使用する全プラグインにおけるデータベースに接続する方法が変更されます。
username | string | データベースに接続するためのユーザー名です。ドライバーによっては無視される場合があります。 |
isolation | one of SERIALIZABLE, ... | 特に理由がない限り、通常はこのままにします。 |
driver | string, JDBC class name | 使用の必要があるJDBCドライバークラス名です。 この値については、データベースのJavaドライバーのドキュメントを参照します。 |
password | string | データベースに接続するためのパスワードです。ドライバーによっては無視される場合があります。 |
url | string, JDBC database URL | データベースに接続するためのURLです。 MySQL / PostgreSQLまたはその他のサーバークライアントデータベースの場合、これには通常、ホスト名、ポート、およびデータベース名が含まれます。 SQLiteなどのファイルベースにおけるデータベースの場合、これには通常のファイル名が含まれます。 |
以下は、最も一般的に使用される2つのデータベースアプリケーションの各構成の例となります。(後略)
commands.yml
commands.yml は、Bukkit 1.7.2-R0.3 以降で使用可能な設定ファイルで、コマンドエイリアスを設定したり、コマンドブロックのコマンド動作を上書き設定したりすることができる設定ファイルです。
YAMLファイルの記法に従って、内容を編集するため、YAMLファイルのページを参照して下さい。
フォールバックシステムについて
少し話が逸れますが、Bukkit 1.7.2-R0.3 で追加された「フォールバックシステム」について、解説を加えておきます。
フォールバックシステムとは、バニラサーバーやBukkit、導入したプラグインで同じコマンドを定義しているときに、呼び出しの優先順位の定義や、それぞれのコマンドを個別に呼び出しすることができるシステムです。
例えば、/give コマンドは、バニラサーバーのコマンドですが、Bukkitで上書きされており、/give を実行するとBukkitのgiveコマンドが実行されます。
さらに AdminCmdプラグインを導入すると、AdminCmdもgiveコマンドを定義しているため、/give を実行するとAdminCmdのgiveコマンドが実行されます。
この状態で、/minecraft:give と実行すると、バニラサーバーの /give コマンドを実行することができます。
また、/bukkit:give と実行すると、Bukkitの /give コマンドを実行することができます。
コマンドの呼び出し優先順位は、次の通りです。
- エイリアス - commands.ymlに設定するコマンドエイリアスが、全ての設定より優先されて呼び出されます。
- プラグインコマンド - 一致するコマンドエイリアスが無い場合は、プラグインで定義されたコマンドが呼び出されます。
- Bukkitコマンド - 一致するプラグインコマンドが無い場合は、Bukkitで定義されたコマンドが呼び出されます。
- Minecraftコマンド - 一致するBukkitコマンドが無い場合は、バニラサーバーで定義されたコマンドが呼び出されます。
しかし、優先度に関係なく、上記のそれぞれのコマンドを直接呼び出すことも可能です。
種類 | フォールバック | 実行例 |
プラグインコマンド | プラグイン名:コマンド | /mister:time |
Bukkitコマンド | bukkit:command | /bukkit:time |
Minecraftコマンド | minecraft:command | /minecraft:time |
また、それぞれのコマンドに対して、それぞれのパーミッション設定を使用することが可能です。
種類 | パーミッション | パーミッション指定例 |
プラグインコマンド | プラグインが提供しているコマンドは、そのプラグインの指示するパーミッションに従ってください。 | - |
Bukkitコマンド | bukkit.command.* (Bukkit コマンド) | bukkit.command.give |
Minecraftコマンド | minecraft.command.* (Minecraft コマンド) | minecraft.command.give |
command-block-overrides
commands.yml の command-block-overrides は、コマンドブロックに設定されたコマンドの挙動を上書きするための機能です。
もしあなたが、カスタムマップで /summon コマンドと /give コマンドを使いたい時に、シングルのマップやバニラサーバーで作成したマップを CraftBukkit へインポートすると、コマンドの挙動が変わってしまっていて困るかもしれません。
そんなときは、commands.yml の command-block-overrides に次のように設定してください。
コマンドブロックに設定された /summon コマンドは /minecraft:summon として、/give コマンドは /minecraft:give として動作します。
command-block-overrides: - "summon" - "give"
もし、全てのコマンドブロックのコマンドをバニラサーバーのコマンドとして動作させたいのであれば、次のように「*」を設定してください。
command-block-overrides: - "*"
aliases
commands.yml の aliases セクションでは、コマンドエイリアスを設定することができます。
さらには、1つのコマンドエイリアスを実行することで、複数のコマンドを実行することも可能です。
コマンドエイリアスは、Modifier を使用することが可能です。
Modifier の説明一覧は、下表を参考にしてください。
$<argument number> | 指定した番号の引数を参照します。 | say $1 $2 $3 |
$<argument number>- | 指定した番号から始まる引数全てを参照します。 | say $1- |
$$<argument number> | 指定した番号の引数を参照するとともに、その引数を指定必須に設定します。 | say $$1 |
$$<argument number>- | 指定した番号から始まる引数全てを参照します。また、指定した番号の引数を指定必須に設定します。 | say $$1- |
\ | ドル記号($)をエスケープします | say \$100 |
aliasesの設定方法
やりたい事 | 説明 | コマンドの実行例 | 設定方法例 |
既存のコマンドに、コマンドの別名を設定したい。 | 右の設定例のように設定することで、/version コマンドを /icanhasbukkit コマンドでも動作するように設定することが可能です。 | /icanhasbukkit | aliases: icanhasbukkit: - "version" |
コマンドを削除したい。 | 右の設定例のように設定することで、'summon'コマンドを何も動作しないコマンドにすることができます。 Note: 一般プレイヤーにコマンドを実行させたくないだけなのであれば、コマンドを削除するより、パーミッションを使って対応してください。 |
- | aliases: summon: - [] |
コマンド名を変更したい。 | 右の設定例のように設定することで、/version コマンドを動作不能にしつつ、/icanhasversion コマンドに機能を移管することができます。 Note: 一般プレイヤーにコマンドを実行させたくないだけなのであれば、コマンドを削除するより、パーミッションを使って対応してください。 |
/icanhasbukkit | aliases: icanhasversion: - "bukkit:version" version: - [] |
引数を必須に設定する。 | 右の設定例のように設定することで、1番目の引数を指定必須とする /givedirt コマンドを作ることが可能です。 この場合で言うと、/givedirt の後にプレイヤー名を指定しないと、コマンドエイリアスが動作しません。 | /givedirt <player> | aliases: givedirt: - "give $$1 minecraft:dirt" |
複数のコマンドを、1つのコマンドエイリアスでまとめて実行する。 | 右の設定例のように設定することで、/give コマンドでdirtをプレイヤーに与えつつ、/say コマンドで通知を行うことができます。 | /givedirtmsg <player> | aliases: givedirtmsg: - "give $$1 minecraft:dirt" - "say Gave dirt to $$1" |
プラグイン提供のコマンドを実行する。 | 右の設定例のように設定することで、ScrapBukkitというプラグインの /time コマンドを呼び出すことができます。 | /time <set,add> <value> | aliases: time: - "scrapbukkit:time $1-" |
バニラサーバーのコマンドを実行する。 | 右の設定例のように設定することで、バニラサーバーの /time コマンドを呼び出すことができます。 | /time <set,add> <value> | aliases: time: - "minecraft:time $1-" |
Bukkitのコマンドを実行する。 | 右の設定例のように設定することで、Bukkitの /time コマンドを呼び出すことができます。 | /time <set,add> <value> | aliases: time: - "bukkit:time $1-" |
全ての引数を受け取って実行する。 | 「$$1-」とすることで、1番目の引数を必須にしつつ、2番目以降の引数もまとめて取得することが可能です。 右の設定例のように設定することで、/say コマンドと全く同じ動作の /broadcast コマンドを作成することが可能です。 |
/broadcast <message> | aliases: broadcast: - "say $$1-" |
1番目の引数を必須にしつつ、2番めの引数を別途受け取って実行する。 | 「$$1」と「$2-」を併用することも可能です。 右の設定例のように設定することで、既存の /kick コマンドの動作を書き換えします。指定されたプレイヤーをkickしつつ、say コマンドで通知を行います。 |
/ban <player> [optional reason] | aliases: kick: - "bukkit:kick $$1 $2-" - "say Kicked $$1. Reason: $2-" |
ドル記号($)を使用する。 | 右の設定例は、単にドル記号($)を表示したい場合の例です。ドル記号の後に数値がある場合、Modifierとして扱われてしまいますが、ドル記号の前にバックスラッシュ(\)を置くことでエスケープすることが可能です。 | /dollar | aliases: dollar: - "say That will be \$200, thanks!" |
プラグイン
CraftBukkit,Spigotはプラグインによって様々な機能を追加できます。
基本的にはpluginsフォルダに、プラグインのjarファイルを入れるだけですが、プラグインによっては、jarファイルと同名のフォルダを一緒にpluginsフォルダ入れるものもあります。
各プラグインの使い方は、配布ページや付属readme.txt等を参照してください。
SpigotはCraftBukkitと互換性がありますが、完全ではありません。
プラグインの入手リンク
これらのリンクから探すことが出来ます。
CraftBukkit,Spigotプラグイン | Wiki内 |
Bukkit Plugins | Bukkit公式プラグインページ |
SpigotResources | Spigot公式プラグインページ |
呼称について
Bukkit関連ではBukkitとCraftBukkitどちらで呼べばよいのか紛らわしいと思うことがあります。
プロジェクト全体、もしくはプラグイン作成用のAPIをBukkitと呼び、実際にプラグインなどを動作させるソフトウェア(craftbukkit.jarなど)をCraftBukkitと呼んでいるようです。
個人的に呼ぶ場合などは好みで良いと思いますが、wikiなどドキュメントに書く場合は呼び方を統一しましょう。
その他の呼称、表記については、技術的情報集/表記の統一(呼称について)を参照して下さい。
リンク
サイト名 | リンクアドレス | 説明 |
Bukkit | https://dev.bukkit.org/ | Bukkit公式 |
Bukkit Forum | https://bukkit.org/forums/ | Bukkit公式 |
SpigotMC | https://www.spigotmc.org/wiki/spigot/ | Spigot公式 |
SpigotMC CommunityWiki | https://www.spigotmc.org/wiki/index/ | Spigot公式Wiki |