自称中級者のMinecraft日記 Eclipseで艦これMOD(仮)に挑戦 メインクラス制作記録3 Initialization
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

自称中級者のMinecraft日記 Eclipseで艦これMOD(仮)に挑戦 メインクラス制作記録3 Initialization

2016-10-08 15:32
  • 12
<目 次>
開発環境の構築編

最初に書くメインクラスの基本形
メインクラス制作記録1 Referenceクラス
メインクラス制作記録2 Proxyクラス
メインクラス制作記録3 Initialization
メインクラス制作記録4 mcmod.info

防具の追加1 登録用Armorクラス
アイテムの追加1 アイテムの登録まで
クリエイティブタブの追加
ブロックの追加1 ブロックの登録まで
レシピの追加1 作業台を使うクラフト
MODのリリーステストの準備
鉱石ブロック1 アイテムをドロップするブロック
鎮守府MOD の配布はじめました
――――――――――――――――――――――――――――――――――――――――

Initialization のコードを書こう

メインクラスには既に、Referenceクラス と Proxyクラスの参照を書き終えているので、最後に Initialization を書きます。


Initialization の部分は CommonProxy を参照するのですが、ClientProxy で書いたものを書き換えるのが早いのでコピーペーストします。



@Override(処理の上書き) を @EventHandler(発生したイベントの処理) に書き換えます。


super.init(event); 」を「 proxy.init(event); 」に書き換えて、CommonProxyクラス で行う処理を見に行くようにします。


各Initialization の役割は proxyクラス と同様です。


この時点で、各クラスの関係はこんな感じになっていると理解していますが、これで合ってるのかなぁ。


一応。こそこそっと書き加えてある「 logger = event.getModLog(); 」というのは、エラーログを出させるようにするコードです。


実行テストをしよう

一旦、メインクラスを書き終わりましたから、緑の▷を押して Mod を実行してみると、


Mods の中に ChinjufuMod が出ています。Minecraft で認識される状態に出来ていることを示しているため、この段階まではうまく行っていることになります。


問題が発生している時は、Minecraft がクラッシュして立ち上がらないか、Mod が認識されません。その際は、各クラスを見直しましょう。

実行テストは要素を追加する度、こまめに行うことをおすすめします。
MCreator ではコードの検証が自動で走りましたが、Eclipseでは自分で実行テストをする必要があります。複数の要素を追加したの実行テストでは、問題の発生箇所の特定という工程が増えるため、結果として制作時間の短縮にならないことが多いです。

(つづく)
広告
他2件のコメントを表示
×
>>2
本当に何度も申し訳ございません。...エラーの個所を1つ見つけました。 21行目public static ChinjuhuMod instance, の ”ChinjuhuMod”の部分がエラーを起こしてたみたいです。 赤い波線が振ってあって ChinjuhuModの型に解決できませんと出ます。 この場合はどこかで名前をまだ書き間違えてるという解釈でよろしいでしょうか?
26ヶ月前
×
「型に解決できません」のほとんどはスペルミスなので、
①スペルが違う
②Eclipseにとってはスペルが違う
といった原因が考えられます。

①の場合は、スペルを見たとおりに直せばエラーは解消されるはずです。

②の場合は、Eclipseの履歴との齟齬なので、たぶんクラスを作り直す方が早いです。

ファイル名の変更をどのように行ったのか分かりませんが、forge-1976-mdkの中にあるフォルダを開いて、ファイル名を直にいじったのあれば、その変更をEclipseはフォローしてくれません。そのため、②のエラーに陥ることがあります。

Eclipseで扱うファイルの変更は、必ずEclipseを通じて行います。
名前の変更であれば、クラスを右クリック→リファクタリング→名前変更
削除であれば、クラスを右クリック→削除
26ヶ月前
×
ChinjuhuModというClassを作り直せばよろしいのでしょうか?
26ヶ月前
×
>>5
自分でやっている作業ではないので確証はありませんが、たぶん、ChinjuhuMod.java を作り直せば通るようになると思います。

仮に通らなかったとしても、Eclipseに新しいワークスペースをつくってやり直す程度のロスです。ロスと言っても、うまくいっていたファイルに関しては、Eclipseを介して、作り直したワークスペースへコピーして流用できますから30分程度で済むのではないでしょうか。

私自身、正統なプログラマーがやる対処法で作ってきたわけではありません。

自分のパソコンの中の、Eclipseというアプリケーションの中の、1ワークスペースの中に限定された話なので、身構えずにいろいろと試してみても大丈夫です。

Eclipseからの「ここを直せ」という指摘は、MODのテスト実行も、jarファイルへのコンパイルもやらされるEclipseからの声です。私が「こうじゃない?」とアドバイスをしても、Eclipseが「まだダメ」と言ったら、正しいのはEclipseの方です。Eclipseに怒られないコードになるよう、がんばってください。

あと、基礎練習として鎮守府MODの作成過程を辿っていると想像していますが、最初から自分が作りたいMODの製作に入ったほうが二度手間にならずに済むと思いますよ。スタイルの違いですから、練習から入るのでも構いませんが。
26ヶ月前
×
>>6
わかりました。取りあえず自分が作りたいMODの製作に切り替えてみようと思います。 いろいろ試行錯誤しながら進めていきたいと思います。頑張ります 本当にありがとうございます。 
26ヶ月前
×
こんにちは。
エラーについての質問です。
modの名前など以外はこの鎮守府modと同じコードを使って進めてみましたが、minecraftでの検証で、"main"classを使用するということであっていますか?
また、検証時に 
error:could not create the java virtual machine.
error:a fatal exception has occurred. program will exit.
という2つのエラーが出るのですが、直し方がわかりません。教えて頂けないでしょうか。
15ヶ月前
×
翻訳で確認したらほとんど概要が書かれていませんでした。すみません。
しかし、同じコードを使っているので、エラーが起きる理由がわかりません。何がおかしい可能性がありますか?
15ヶ月前
×
>>9
JDK のバージョンが一致してない、または入っている JDK が古いのではないでしょうか?

https://games.yahoo.co.jp/qa/detail?qid=1394585313

あと、私の返信を待つよりも、エラーコードを Google検索にかけた方が、早く対処できると思いますよ
15ヶ月前
×
わかりました。確認してみます。ありがとうございました。
15ヶ月前
×
とりあえずここまでできました!
丁寧な解説ありがとうございます‼
13ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。