広告

bitFlyer ビットコインを始めるなら安心・安全な取引所で

カウンター

  • 40694総訪問者数:
  • 31今日の訪問者数:
  • 34昨日の訪問者数:
  • 41一日あたりの訪問者数:
  • 0現在オンライン中の人数:
  • 2014年9月21日カウント開始日:

マインクラフト1.13サーバプラグイン対応メモ

調査の進捗状況

ずいぶん延期されてる気がしますが、マイクラJEの1.13のリリース日がアナウンスされたので、私の管理しているサーバの対応も準備を始めたいと思います。今回はアイテムIDが大幅に変更されてるので、ちょっと大変そう。

注意:ここに掲載されている情報は、2018/8/14時点の情報です。情報が最新ではないかもしれないので、ご注意を!

現在の進捗状況は以下の様な感じ。

  1. 【済】テストサーバ構築(Alicorn)
  2. 【対応中】テストサーバ構築(Avalon)
  3. 【済】サーバプログラムを1.13化し確認
  4. 【対応中】プラグインの最新化
  5. 【対応中】非対応プラグインをなんとかする
  6. 【未】資源生成準備
  7. 【未】リリース

今回の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(起動失敗)
プログラムコードは1.13対応してそう?勘違いでした.全然動静がわからないです.
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

 

3のコメントがあります : マインクラフト1.13サーバプラグイン対応メモ

  • 匿名

    プラグインにどのような効果があるか書いて頂けるとたすかります

  • プラグインの紹介を目的とした記事じゃ無いので記載予定は無いです.
    ちなみに、私が管理してるサーバに入れてるプラグインなので、サーバの説明サイトにはプラグイン名と説明も載ってます.

  • ほるすたいん

    ChairsReloadedの1.13バージョンを使いたいんですが
    ファイルを送っていただけないですか?

コメントを残す

これらのHTMLタグが利用可能です

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

Time limit is exhausted. Please reload CAPTCHA.