注意事項
- ゲームでのチート行為は、時には犯罪となりえます。チートが禁止されているサーバーでは使用せず、自分のワールドや、2B2Tといったチートが許可されているサーバーでのみ使用してください。また、この記事のコードを使用する際に生じた損害について、一切の責任を負いかねます。
こんにちは、1年前からアナーキーサーバーにハマっているNodokaです。ハッククライアントの作り方についての日本語での情報が少なかったので、ここに残しておきます。
筆者はJavaを始めたばかりなので、規則に従っていないコードや、無駄なコードがあるかもしれませんが、スルーして頂きたいです…()
使用するMinecraftのバージョンは、1.12.2です。
モジュールの実装、コマンドの実装、簡単なKillauraまで、何記事かに分けて書いていく予定です。
Javaの基本的な文法を知っている前提で書いていきます。
また、各記事で書いたコードは、全てgithubに載せてあるのでぜひ参考にしてください。
今回は第一回の環境構築です。
MinecraftForgeのMdkセットアップ
まずは、下記リンクよりMinecraftForgeのMdkをダウンロードしてください。
Downloads for Minecraft Forge for Minecraft 1.12.2
筆者が使用したバージョンは、1.12.2 – 14.23.5.2860です。
ダウンロードができたら、任意のフォルダに解凍して、フォルダ名を作りたいハッククライアントの名前に変更してください。
解凍したフォルダがそのまま作業用のフォルダになります。
私は「Onigiri Client」と名付けました。
また、以下のファイルは使用しないので削除してください。
プロジェクトの読み込み
最低限のファイルの準備はできたので、プロジェクトを読み込んでいきます。
好きなIDEがある場合、そのIDEで先ほどのフォルダを開いてください。Gradleプロジェクトを開けるものであれば何でもいいと思います。
本記事では、IntelliJ IDEAを使用していきます。
IntelliJの場合は、プロジェクトを読み終わると以下のような画面になります。
環境によっては時間がかかるので、気長に待ちましょう。
クライアントの初期設定
読み込みが終わったら、早速クライアントのセットアップをしていきます。
プロジェクトには、Example Modというサンプルコードがあります。
海外の方のクライアント作成チュートリアルの多くでは、このファイルを削除していますが、1からコードを書いていくのは面倒なのでこれを編集していきます。
まずは、「ExampleMod」というファイルと、「com.example.examplemod」というパッケージの名前を変更します。
「ExampleMod」は、自分のハッククライアントの名前にすると良さそうです。
このファイルは、以下メインファイルと呼ぶことにします。(次回以降についても同様に呼びます。)
パッケージ名は、
<TLD> . <ドメイン名> . <クライアント名>
とつけるのが一般的だそうです。
自分のWebサイトのない方は、
me. <ハンドルネーム> . <クライアント名>
などと命名するといいと思います。
次は、メインファイルを編集していきます。
このファイルの、MODID、NAME、VERSIONを変更し、initの中身を消去してください。
例↓
public void preInit(FMLPreInitializationEvent event)
は、ゲームが起動して一番最初に実行される処理で、public void init(FMLInitializationEvent event)
は、Modの読み込みができたときに実行される処理です。
次に、resourcesフォルダ内のmcmod.infoを編集していきます。
コロンより右側の項目をお好みで変更してください。
例↓
これで今回行う設定は完了ですが、このままでは、resourcesフォルダ内のファイルを読み込まない現象が発生することがあるので、以下のコードをbuild.gradleファイルの末尾に追加してください。
copy { delete { delete “$buildDir/classes/java/main” } into “$buildDir/classes/java/main” from sourceSets.main.resources }
環境構築 (1.12.2) | TNT Modders
ここまでできたら、試しに実行してみましょう。
Gradleタブから、Tasks/fg_runs/runClient を実行します。
初回ビルドは時間がかかることがあるので、しばらく待ちましょう。
私の環境では約3分要しました。
Modメニューを開いて、このように正しく読み込めていればOKです。
おまけ – ウインドウのタイトルを変える
lwjglのDisplay.setTitle()を使うことでウインドウのタイトルを変更することができます。
これを、メインファイルのinit関数内に書いていきます。
例↓
再び実行して、以下のようにウインドウのタイトルが変更されればOKです。
最後に
今回は、Minecraft1.12.2のハッククライアント作成の第一回、環境構築について説明しました。
次回は、モジュールのシステムを作り、実際に自分のモジュールを作成していきます。
今回までのサンプルコードは下記リンクにあります。
Nodoka4318/OnigiriClient at day1 (github.com)
最後まで読んで頂きありがとうございました!!