目次
調査の進捗状況
ずいぶん延期されてる気がしますが、マイクラJEの1.13のリリース日がアナウンスされたので、私の管理しているサーバの対応も準備を始めたいと思います。今回はアイテムIDが大幅に変更されてるので、ちょっと大変そう。
注意:ここに掲載されている情報は、2018/8/14時点の情報です。情報が最新ではないかもしれないので、ご注意を!
現在の進捗状況は以下の様な感じ。
- 【済】テストサーバ構築(Alicorn)
- 【対応中】テストサーバ構築(Avalon)
- 【済】サーバプログラムを1.13化し確認
- 【対応中】プラグインの最新化
- 【対応中】非対応プラグインをなんとかする
- 【未】資源生成準備
- 【未】リリース
今回のVerUpに伴うPluginへの影響(サーバ管理者向け)
エラーが出た時は内容から原因を調べるしか無いので、その手がかりにしてみてください。
ちなみにエラーはこんな感じに出ます。
[21:00:59 ERROR]: エラーの内容 to プラグイン名 ←違う出方をするかもだけど重要 org.bukkit.event.EventException: null ←2行目も重要なことはある at org.bukkit.~ ←これから始まる文字はあまり見てもわからないと思うので無視。 ~略~ at net.minecraft.~ ←これから始まる文字はあまり見てもわからないと思うので無視。 ~略~ at java.~ ←これから始まる文字はあまり見てもわからないと思うので無視。 ~略~ at ○○.○○.○.○.○○ ←○の一部にプラグイン名が書いてある場合は重要。 Caused by: java.lang.NoSuchMethodError: ~ ←これから始まる行も重要。 ~略~ ... 26 more
基本的には最初の2行くらいにどこのプラグインでエラーかが書いてます。ただし、そこを読んでもわからない場合は、Caused byの部分を見ましょう。ここにエラーの理由などが書かれている場合もあります。
at ○○.○○.○.○.○○の部分でプラグイン名が記載されてる場合は、プラグインのどこでエラーが出てるかを示してます。例えばLoad云々config云々ならconfigファイルの読み込み失敗とかかも?
- java.lang.NullPointerException
これが出てもなんだかわからない。ダメかもしれないし、もしかしたら運良く動くかも。 - Could not pass event ○○Event to <プラグイン名>
記載のプラグインでエラーが出てる。「○○Event」ってのがゲーム内の出来事を意味してる。「PlayerDeathEvent」なら「プレイヤーが死んだ時」の処理がうまくいってないって意味になる。(翻訳しても意味がわからないこともあります) - Caused by: java.lang.NoSuchMethodError: ○○.○○.○.○.○(○のどこかにプラグイン名)
あるいは、java.lang.NoClassDefFoundError: ○○/○○/○/○/○(○のどこかにプラグイン名)
エラーの途中に表示されますが、表示されてるプラグインと連携がうまくいってない。エラーになったプラグイン自体が悪いか、連携先のプラグインが悪い。
○○の部分が「org.bukkit~」や「net.minecraft~」の場合は、バージョン差異が原因の場合が多いです。残念ながらそのプラグインは1.13には対応してないって意味になりますね。 - java.lang.IllegalArgumentException: Cannot get key of Legacy Material
プラグインの中で古いアイテムIDが使われてる。運が良ければconfigに書いてる古いアイテムIDを最新化することで直ることもあり。 - org.bukkit.command.CommandException: Unhandled exception executing command ‘○○’ in <プラグイン名>
コマンド実行中の問題ですね。○○の部分がコマンド名になってるはず。
今回のVerUpに伴うPluginへの影響(プラグイン作者向け)
主に内部(プログラム)に対する考察です。プログラムを書かない人は無視していいですね。
ざっくりしか書いてないので、ゲーム的な変化点を含めて細かい変更はこちら(https://minecraft-ja.gamepedia.com/1.13)などを参考にして下さい。
- 【結構重要】plugin.ymlにapi-version: 1.13を追加すべき
これを書かないと、1.13のプラグインプログラムはなかなか思うように動かないです。 - minecraft:cave_airとminecraft:void_airの追加
プラグインの内部処理で「ブロックの無い場所」をnullやminecraft:airで判定してるところが多いかなと主ます。特に「minecraft:airで判定」してる部分は、場所によって「minecraft:cave_air」になり「ブロックが無い」判定にならなくなるんじゃない?って気がしています。洞窟内で怪しい動作をするプラグインがあれば、これを疑う必要がありそう。 - いよいよアイテムをID(数字)で扱う関数がいくつか廃止され始めましたね(これまでは非推奨だけど使えた)。その上、上記のairもそうですが、アルファベットでの名称もかなり変化があります。
対照表は以下が見やすい。
https://minecraft-ja.gamepedia.com/1.13/%E5%B9%B3%E5%9D%A6%E5%8C%96
これに関する詳細は後述に記載します。 - (前から?)getPlayer().getItemInHand()→getPlayer().getInventory().getItemInMainHand()
- (前から?)getPlayer().getMaxHealth()→getPlayer().getAttribute( Attribute.GENERIC_MAX_HEALTH ).getValue()
アイテムID(数字)関連関数の廃止(変更)と、ID(アルファベット)の変化関連について
まだ書きかけ。Material系が多くなると思うけど、https://minecraft-ja.gamepedia.com/1.13/%E5%B9%B3%E5%9D%A6%E5%8C%96を見てもわかんないとこを中心に書いてます。
- Material.getMaterial(int)がMaterial.getMaterial(String)になってる
- Material名は(ItemStackやBlock).getType().name()で調べることができます。
- Material.SIGN_POSTが無い→Material.SIGNになってる
- Material.REDSTONE_TORCH_ON、Material.REDSTONE_TORCH_OFFが無い→Material.REDSTONE_TORCHになってる
- 新しいID(Minecraft.graniteなど)は(ItemStackやBlock).getType().getKey().toString()で調べられます。
- Material.SKELETON_SKULLとか書くとエラーになります。アイテムIDが変った影響っぽい。
プラグイン別動作確認状況
使用Verはすこし名前を変えてる部分もあります。(bはビルド番号です)
Folkは公式じゃないよの意味。公式がバージョンアップしてない場合に、別の人が更新してくれてることがあるので、それを書いてます。ちなみにTacは私が直接直している意味です。
Plugin Name | 使用Ver | Folk | 1.13で動作 |
---|---|---|---|
BungeeCord | b1333 | OK | |
BungeeTabListPlus | 2.8.6 | OK | |
AntiCreeper | v4.20 | OK | |
AntiWither | v0.6 | OK | |
ArmorStandEditor | 1.13-20 | OK | |
BlockHat | v1.12 | OK | |
BottledExp | 1.6.1_1.13_tac_b1 | Tac | OK |
ChairsReloaded | 4.10_1.13tac_b1 | Tac | OK |
ChestCommands | v3.1.4 | OK | |
ChestShopLogger | 0.1.8-SNAPSHOT-tac1.0-1.12 | Tac | OK |
ChestShop | v3.8.12 | OK | |
CountryFilter | 1.2016.01.05-tac1.9 | Tac | OK |
CustomSkulls | v0.2_1.13_tac_b1 | Tac | OK |
dynmap | 3.0-1.13_prep-HEAD | OK | |
Dynmap-Towny | 0.70 | dynmap次第 | |
Dynmap-WorldGuard | 0.80 | NG | |
EchoPet | Borlea_v1.0.4-SNAPSHOT-b | Borlea(Arnuh) | 未確認 |
EpicBoss | 0.1.0_tac1.13_b1 | Tac | OK |
Essentials | 2.x-SNAPSHOT-b16 | OK | |
EbiFly | 1.0_1.12_tac1 | Tac | OK |
FoundDiamonds | v3.6.4_tac1.9 | Tac | OK |
GeoIPTools | v1.0.2 | NG | |
HawkEye | v1.6.2-b56 | OK | |
HolographicDisplays | v2.3.0_b7 | OK | |
Jobs | 4.7.2 | OK | |
LWC | v4.5.0-SNAPSHOT-b938_DoorBugFix | Tac | OK |
LegendaryMessages | v6.0.2 | OK | |
Lottery_Unofficial | 1.1.1 | OK | |
LunaChat | v2.8.0 | OK | |
MCBans | 4.4.4 | OK | |
mcMMO | 1.6.0-b38 | OK | |
MobArena | v0.98.1 | NG(起動失敗) | |
Modifyworld | 1.20-SNAPSHOT_Pieter12345 | Pieter12345 | OK |
MonetaryDeathPenalty | v2.23 | NG | |
Multiverse-Core | 2.6.0_b738 | OK | |
Multiverse-Portals | 2.5.2-SNAPSHOT_b765 | OK | |
MyPet | 2.3.3-SNAPSHOT_b1196 | NG(起動失敗) 有料版(Premium)は対応してるので、Free版もそのうち対応する? |
|
OpenInv | v3.3.4_alpha1.jar | OK | |
PermissionsEx | 1.23.4a | OK | |
PlgLogCmd | v2.0 | 未確認 | |
PluginManager | v1.2.2 | OK | |
ProtocolLib | b414 | OK | |
Questioner | v0.6 | 未確認 | |
RecipeManager | v2.11.0 | NG(起動失敗) |
|
RunAs | v1.1 | OK | |
ScoreboardStats | v0.10.1 | OK | |
ServerSigns | b22 | OK | |
SilkSpawners | b423 | 未確認 | |
SimpleSort | v1.6 | NG | |
SimpleVoteListener | v2.6 | 未確認 | |
SkylandsPlus | andrewkm_b20160304 | andrewkm | ダメ? |
Stats | v2.0.2-tac1.9 | Tac | 未確認 |
StopKorean | v2.0 | OK | |
TacTools | 1.13.0-1.8.0 | 改修中 | |
Tombstone | 1.3.8-tac1.9 | Tac | NG |
TownyChatSupport | v1.0 | 未確認 | |
TownyNameUpdater | v1.0 | 未確認 | |
Towny | v0.91.4.7 | 未確認 | |
TreeAssist | v5.9.11_tac1.13 | Tac | OK |
Vault | 1.6.6 | OK | |
Votifier | 1.9 | 未確認 | |
WorldBorder | v1.8.7 | OK | |
worldedit | bukkit-7.0.0-SNAPSHOT-dist_b3790 | OK | |
worldguard | legacy-7.0.0-SNAPSHOT-dist_b1735 | OK |
プラグインにどのような効果があるか書いて頂けるとたすかります
プラグインの紹介を目的とした記事じゃ無いので記載予定は無いです.
ちなみに、私が管理してるサーバに入れてるプラグインなので、サーバの説明サイトにはプラグイン名と説明も載ってます.
ChairsReloadedの1.13バージョンを使いたいんですが
ファイルを送っていただけないですか?
ChairsReloadedはv5で対応したみたいです。
私が改造しているのを配布するにはGPLに違反しないよう対応するなどが大変なので、配布はしません.