HimaJyun前回の記事ではconfig.ymlを利用した設定のセーブやロード、ちょっとした便利な使い方などをご紹介しました。今回はconfig.yml以外にも、複数のymlファイルを取り扱う方法をご紹介しようと思います。前回の記事は「[Bukkitプラグイン制作講座-其之七]config.ymlを扱う」です。実際のコードはGitHubにおいてあります。最後に複数の設定ファイルところでみなさん、気になりませんか?プラグインによっては、config.yml以外の設定ファイルも取り扱えるようになっています。Bukkitにはその様な機能は存在していません、どのようにすれば良いのでしょうか?簡単です、Bukkitの機能を模倣した機能を用意すれば良いのです。模倣版yml操作クラス今回は、Bukkitがymlを操作する手順を模倣して、同じ事がconfig.yml以外でも出来るCustomConfigクラスを作成しようと思います。file);}}単純に引数で受け取った情報を変数にしまい込んでいるだけですね。引数が一つの方のコンストラクタの「this()」は同クラスの別のコンストラクタを呼び出すやり方です。ファイル名が省略されているときにconfig.ymlを使用するようにしています。saveDefaultConfig()これはBukkitのコードをそのままにパクれば真似すれば可能です。false);}}existsメソッドでファイルが存在しているかを確認し、存在していない場合はファイルに保存する。saveResourceはプラグイン(jar)に含まれているファイルを保存するBukkitの機能です。第二引数をtrueにすれば、ファイルが存在しても上書きする仕様ですが、その挙動は危険なのでfalseで......第二引数がfalseならexistsは要らない気がしますけどね、Bukkitがそうなっているので合わせておきましょう。reloadConfig()解説の都合から、先にreloadConfig()を説明しましょう。StandardCharsets.UTF_8)));}YamlConfigurationのloadConfigurationで設定ファイルをロードしています。次に、getResourceと言うこれまたjarに含まれるファイルを取得できるBukkitの機能を利用しています。これの取得結果を元に、setDefaultsでデフォルトの設定を行っている訳ですね。ちなみに、StandardCharsets.UTF_8の部分はBukkitではCharsets.UTF_8になっています。Charsets.UTF_8はGoogleのライブラリ、StandardCharsets.UTF_8はJava7からの機能で、どちらも中身はCharset.forName("UTF-8")です。作成しているプラグインがJava6に対応する必要がある場合のみ気を付けて下さい。getConfig()超シンプル設計です。config;}configがnullの時だけreloadConfig()を読んでいる、たったそれだけですね。getConfig()の本質はreloadConfig()ってなわけです。saveConfig()こちらもBukkitに設定を保存する機能が備わっているので、nullチェックの後にそれを呼び出しているだけです。ex);}}使ってみるでは、実際に使ってみましょう。(CustomConfigクラスの実物もGitHubにあります)......と言っても、onEnableとかでnewすればそれだけで終わりですね。TODO:ここで設定ファイルを利用してゴニョゴニョする。}後は、「config.getConfig()」みたいにして設定をロードするだけ。最後に......記事にしてみたら中身がうす~い!!割とハマる話題のクセに解説してみると中身がな~い!!と言うか、何故Bukkitにこの機能を載せないのかが謎ですね、それとも載っているけど私が気付いていないだけ?兎にも角にも、これで複数の設定ファイルを取り扱う事が出来る様になりました、実際のコードはGitHubにおいてありますので参考にしてみて下さい。蚊除けのために扇風機を付け、扇風機が寒いから......続きを読む→シンボリックリンクのパフォーマンスが気になった便利な便利なシンボリックリンク、その用途はWebサイトのホットデプロイやらMun......続きを読む→[VisualStudio]さまざまな「ブレークポイント」の使い方ブレークポイント、あるのが当たり前なので当たり前に使っていますけど、ブレークポイ......続きを読む→VisualStudio用のMinecraftモッディング拡張機能をインストールした、そして消した。MicrosoftがMinecraftの乗っ取りに本腰を入れてきました(?)......続きを読む→[Bukkitプラグイン制作講座-其之三]コマンドに応答する他のネタが山ほどあるので少し間が空いてしまいましたね、他のネタが沢山あったから間......続きを読む→PREV[Bukkitプラグイン制作講座-其之七]config.ymlを扱うNEXT[VisualStudio]C++でもXMLドキュメントコメントを自動挿入したい!!ナカのヒト:HimaJyun​散って美しいのは桜だけです、情報はまとまっていた方が美しいのです。