(かなり適当だけど・・・Bukkit変換チュートリアル終了) |
(導入を追加、javaファイルの修正を追記) |
||
62行目: | 62行目: | ||
また、パス打ち込みでクラスファイルを参照している箇所をsrcからserverに変更します。 | また、パス打ち込みでクラスファイルを参照している箇所をsrcからserverに変更します。 | ||
+ | |||
+ | その後、公式サーバーとBukkitで値の持ち方が違う箇所がある場合はエラーとなりますので、<br/> | ||
+ | Bukkitで扱っている方式に手動で変更していきます。 | ||
==コンパイル== | ==コンパイル== | ||
71行目: | 74行目: | ||
エラー箇所がなければそのままコンパイルし、classファイルを作るといいと思います。<br/> | エラー箇所がなければそのままコンパイルし、classファイルを作るといいと思います。<br/> | ||
+ | ==導入== | ||
+ | コンパイルしたclassファイルをWinRar等を使用してBukkitのjarファイルに格納します。<br/> | ||
<comments /> | <comments /> |
2012年3月27日 (火) 15:36時点における最新版
既存の公式サーバー用のMODをBukkitサーバー用のMODに変換する方法です。
よって、「既存の公式サーバー用のMOD」がなければできません。
また、別製作者のSSPMODをSMPにする場合はきちんと製作者のライセンスを見てからやってください。
これはMCPを使用します。
また、Mappingファイルを置き換えるため通常のMODのデコンパイルは出来なくなります。
よって既存のプロジェクトがある場合、バックアップを取ってから行なってください。
Mappingファイルを取得する[編集]
MC Port CentralからMappingデータをダウンロードします。
現在のバージョンは1.1までしかありません。
1.23以降はBukkit推奨バージョンが出来てからだと思います。
MC Port Centralの対象トピック
http://www.mcportcentral.co.za/index.php?topic=47.0
Mappingsの対応バージョンを確認してダウンロードします。
ダウンロードしたファイルを解凍すると
・class.csv
・field.csv
・methods.csv
の3つのファイルがありますので、
それらをMCPROOTのconfフォルダに上書きします。
MCPでデコンパイル[編集]
Mappingデータを置き換えたら、
jarフォルダに公式サーバーのJarファイルをコピーします。
このJarファイルに変換する「公式サーバー用MOD」を導入します。
前提MODがある場合必ず導入してください。
MOD導入が終わったら、
MCPROOTのdecompile.batを実行するだけです。
srcフォルダからデコンパイルしたデータを抜きとる[編集]
MCPROOT/src/minecraft_server/net/minecraft
フォルダ以下にデコンパイルされたjavaファイルがありますので
「変換対象のMODのjavaファイル」だけを抜き取ります。
例:
mod_hogehoge
Entityhogehoge
Itemhogehoge
が変換対象MODに含まれているクラスファイルであれば
mod_hogehoge.java
Entityhogehoge.java
Itemhogehoge.java
ファイルを抜き取ります。
javaファイルの修正[編集]
このままでは、コンパイル時エラーが出力されるので
~.javaファイルのパッケージを修正します。
修正前
package net.minecraft.src;
修正後
package net.minecraft.server;
また、パス打ち込みでクラスファイルを参照している箇所をsrcからserverに変更します。
その後、公式サーバーとBukkitで値の持ち方が違う箇所がある場合はエラーとなりますので、
Bukkitで扱っている方式に手動で変更していきます。
コンパイル[編集]
EclipseないしNetBeansで
Bukkitのjarライブラリを追加しておくと作業しやすいと思います。
(※前提MODがある場合はBukkit.jarに予め導入しておくこと)
公式のMODと違って、難読化処理は必要ないので
エラー箇所がなければそのままコンパイルし、classファイルを作るといいと思います。
導入[編集]
コンパイルしたclassファイルをWinRar等を使用してBukkitのjarファイルに格納します。
コメントの自動更新を有効化