他Modの他バージョン対応を作る

これは私(まる/にまゆー etc...)が他の作者様のModの他バージョン対応を作る過程を記録したものです。


発端

まず、私は マインクラフト非公式日本ユーザーフォーラム で自作Modを公開しております。
また、そこで簡単なModの制作依頼も受け付けるようにしています。
そのトピックに、
「Useful Chest MOD」の1.10.2対応版の作成をお願いできないでしょうか?
という依頼が来たのが今回、このページを作成しようと思ったきっかけです。


全体の流れ

①ソースコードが公開されていないか調べる(発見した→⑥へ、公開されていなかった→②へ)
②作者にコンタクトが取れないか、またソースコードを譲渡してもらえないかを聞いてみる(成功→⑥へ、失敗→③へ)
③自分が得意なバージョンでそのModが公開されていないか調べる(発見した→④へ、公開されていなかった→自分はここで諦めます...)
④対象のModをデコンパイルする
⑤ソースコードのエラーを直す
⑥目的のバージョンに直す
⑦ビルドする


今回の顛末

ソースコードの探索

  • ソースコードを探し回ったが、発見できなかった
  • 作者へコンタクトを取ろうとしたが、フォーラムでの最終ログイン時間が5年ほど前だったため、無理だと判断
  • 1.7.x版を公開しているページを発見、ダウンロード成功

jarファイルの解析

  • jd-gui を使い、jarファイルをデコンパイル、ソースコードを保存

ソースコードの復元

  • コンパイルの段階で書き換えられてしまった関数、変数名を復元する(func_〇〇,field_〇〇系)

方針転換

  • jarファイルをデコンパイルしたらそのModはScalaで書かれていたことが判明
  • .javaファイルが無茶苦茶なことになっていた
  • .scalaファイルが同封されていたのでそれを頑張って.javaファイルに翻訳することに
  • 挫折、諦めてscalaで書くことにした

1.7.10から1.10.2への変換

  • import周りやメソッド、フィールド名を1.10.2に合わせて修正する
  • 特に、
import cpw...
以下は全てダメになってしまっているので要注意

完成

  • 念入りにデバッグをし、ビルドしたら完成!
  • こうしてまたひとつModが世に解き放たれたのだった…



  • テスト - 管理人 2018-02-06 20:15:19
最終更新:2018年06月03日 12:37