始まり
カスタムディメンジョンをMultiverseCore(以降mvc)で作成して、それらディメンジョン間を移動するためのプラグインを作成したのだが、どうにもうまく動作しない。
上手く動作しないというのは、mvc での設定が反映されていないディメンジョンに飛んでしまうというものだ。
(ディメンジョン名はmvc で作成した時と同じなのだが、ディメンジョンの環境設定だけが異なる)
原因
テレポートをする際に、テレポート先のディメンジョンを読み込んでいないとディメンジョンのロードがかかり、タイムアウトで鯖から蹴られてしまう。
それを防ぐためにテレポートプラグインが起動する時点でWorldCreator を動かしてディメンジョンを読み込んでいた。
しかし、そのロード方法に問題があった。
WorldCreator#createWorld でディメンジョンをロードするといくつかのディメンジョン設定が無視されるようで、そのためにmvc で設定したものと異なる環境になってしまっていた。
"If the world already exists, it will be loaded from disk and some options may be ignored."
対策
mvc がカスタムディメンジョンをすべて読み込んだ後にテレポートプラグインを起動するようにすればよいので、plugin.yml の softDepend に Multiverse-Core を記載した。
本来は依存するプラグインなどを記載し、依存先よりも先に読み込まれないようにするための設定だと思われるが、単に起動のタイミングを前後させているだけなのでこのような使い方もできるようだ。