LoginSignup
3
4

More than 5 years have passed since last update.

Forge1.7.10Moddingメモ-CoremodsとFMLModを同じJarパッケージにまとめて読み込ませる方法

Last updated at Posted at 2014-09-24

CoremodsとFMLModを同じJarパッケージにまとめて読み込ませる方法

  • この記事はあくまで個人的なメモです。
  • 読みにくいかもしれませんが、仕様です。
  • 当方知識不足なため詳細なことは書かれてません。悪しからず。

概要

Minecraft1.7.10のForge(10.13.0.1180)にて既存書き換えMod(以下CoreMod)及びFMLを用いた通常Mod(以下FMLMod)を1つのjarファイルにまとめる方法。

前提

この説明では以下のソースファイルが存在すると仮定します。
ここではCoreMod,FMLMod共に解説はしません。

CoreMod
TestCorePlugin.java .......'CoreModのメインクラス'
TestModContainer.java(任意) .....'Mod情報(?)を格納するクラス。FMLModで言うmcmod.info'
TestTransformer.java ......'既存クラスを改変するクラス'
ModelCreeper.java(任意) ...'置換クラス。ここでは、クラス自体を
置き換えるCoreModとします'
FMLMod
TestMod.java ...'@Modを含んだ、FMLModのメインクラス'
mcmod.info .....'Mod情報を記入するファイル'

jarにまとめる前の注意点

  • CoreModとFMLModとでModIdをそれぞれ別々に定義する必要がある。CoreModサイドでMod情報を定義しなければ問題ありませんでした。詳細
  • CoreModとFMLModのメインクラスをそれぞれ別パッケージに配置する必要がある。

(例)
test/asm/TestCorePlugin.java
test/fml/TestMod.java

CoreModでMod情報を定義したくない場合は

単にIFMLLoadingPluginクラスを実装したクラスのメソッドgetModContainerClass()の戻り値をnullにするだけ。

TestCorePlugin.class
public String getModContainerClass() {
    return null;
}

パッケージのまとめ方

MANIFEST.MFの記述例

通常のCoreModの場合、ManifestバージョンとFMLCorePluginのみを下記のように記述します。
FMLCorePluginの値には、CoreModとして読み込ませる為のメインクラス(ここではTestCorePluginクラス)をパッケージに沿って記入します。

MANIFEST.MF
Manifest-Version: 1.0
FMLCorePlugin: test.asm.TestCorePlugin

上記にFMLCorePluginContainsFMLMod節を追加することにより、FMLModを読み込ませることが出来ます。
FMLCorePluginContainsFMLModにはFMLModのメインクラス(@Modのあるクラス。ここではTestModクラス)を記入します。

MANIFEST.MF
Manifest-Version: 1.0
FMLCorePlugin: test.asm.TestCorePlugin
FMLCorePluginContainsFMLMod: test.fml.TestMod

jarパッケージのまとめ方

jarパッケージのまとめ方は以下のようになります。

test.jar

  • test
    • asm
      • TestCorePlugin.class
      • TestModContainer.class
      • TestTransformer.class
    • fml
      • TestMod.class
  • META-INF
    • MANIFEST.MF
  • ModelCreeper.class
  • mcmod.info

参考元リンク

この記事で参考になったサイトです。
Coremodsの基礎

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4