Mixin は、ASM を使用し、プラグイン可能な組み込みサービスまたはユーザー提供のサービスのセットを介してランタイム クラスローディング プロセスにフックする Java 用のトレイト/ミックスイン フレームワークです。組み込みサービスは現在 Mojang の LegacyLauncher システムをサポートしていますが、これは非推奨となり、拡張性が高く Java 8 以降をサポートする cpw による ModLauncher が優先されます。
Mixinの主なドキュメントは Wiki にあります。
個々の機能と注釈に関する追加のドキュメントは、広範な Javadoc にあります。さらにヘルプが必要な場合は、Sponge Discord サーバーのチャンネル#mixin
を使用してください。
Mixin バイナリは Jenkins 経由で入手でき、次の Maven リポジトリに公開されます。
難読化タスクを処理するために、Mixin はコンパイル時に動作してツールチェーンに適用する難読化マッピングを生成するアノテーション プロセッサを提供します。 Gradle 5 以降を使用している場合、アノテーション プロセッサはcompile
設定から自動的にロードされなくなり、 annotationProcessor
設定を介して明示的に指定する必要があります。この目的のために、Mixin は、 :processor
分類子を介して、必要な依存関係をすべて含む「fat jar」アーティファクトを提供します。たとえば、ビルドで依存関係org.spongepowered:mixin:1.2.3
使用する場合、 annotationProcessor 設定で依存関係org.spongepowered:mixin:1.2.3:processor
を指定する必要があります。
Minecraft Forge プロジェクトで Mixin を使用している場合は、MixinGradle プラグインを使用して Mixin Annotation Processor の構成を簡素化できます。これは、プロジェクトの Mixin AP を構成するための簡単な構文を提供します。MixinGradle の構成方法については、MixinGradle README を参照してください。
Mixin を使用して開発する場合、Eclipse 内でMixin Annotation Processor を使用してコンテキスト依存のエラーと警告を提供し、ミックスインのトラブルシューティングをより簡単に行うことができます。そのためには:
gradle build
コマンドを実行して mixin jar を生成します。Java Compiler
-> Annotation Processing
-> Factory Path
に移動します。Enable project specific settings
チェックボックスをオンにしますAdd External JARs
ボタンをクリックし、サフィックス-processorが付いた生成された mixin jar を選択します (ヒント: Mixin/build/libs
にあるはずです)。Java Compiler
-> Annotation Processing
に移動します。Enable project specific settings
チェックボックスをオンにしますEnable annotation processing
チェックボックスをオンにしますProcessor options
ボックスの横にあるNew...
ボタンをクリックします。Key
reobfSrgFileに設定しますValue
mcp-srg.srg
ファイルへの完全修飾パスに設定します (マッピング ファイルの場所はプラットフォームによって異なります。場所がわからない場合は、以下の Discord リンクに従ってください)。OK
をクリックして変更を適用しますIntelliJ IDEA でMixinを操作するための拡張機能は、DemonWav によって開発された Minecraft Development for IntelliJ IDEA プラグインを介して利用できます。
構成でminVersion
プロパティを指定することは非常に重要です。次のバージョン履歴を使用すると、機能がいつ導入されたか (場合によっては重大なバグが修正されたか) を判断し、どのminVersion
指定する必要があるかを判断することができます。
バージョン | 日付 | 機能・変更点 |
---|---|---|
0.8.3 | 2021年2月 |
|
2020年9月 |
| |
0.8 | 2020年1月 |
|
0.7.11 | 2018年7月 |
|
0.7.10 | 2018年6月 |
|
0.7.9 | 2018年4月 |
|
0.7.8 | 2018年4月 |
|
0.7.7 | 2018年3月 |
|
0.7.6 | 2017年11月 |
|
0.7.5 | 2017年10月 |
|
0.7.4 | 2017年9月 |
|
0.7.3 | 2017年8月 |
|
0.7.2 | 2017年8月 |
|
0.7.1 | 2017年8月 |
|
0.7 | 2017年7月 |
|
0.6.15 | 2017年7月 |
|
0.6.14 | 2017年7月 |
|
0.6.13 | 2017年7月 |
|
0.6.12 | 2017年6月 |
|
0.6.11 | 2017年6月 |
|
0.6.10 | 2017年5月 |
|
0.6.8 | 2017年2月 |
|
0.6.7 | 2017年1月 |
|
0.6.6 | 2017年1月 |
|
0.6.5 | 2017年1月 |
|
0.6.4 | 2017年1月 |
|
0.6.3 | 2016年12月 |
|
0.6.2 | 2016年12月 |
|
0.6.1 | 2016 年 11 月 |
|
0.6 | 2016年10月 |
|
0.5.17 | 2016年10月 |
|
0.5.16 | 2016年10月 |
|
0.5.14 | 2016 年 9 月 |
|
0.5.13 | 2016 年 9 月 |
|
0.5.10 | 2016年6月 |
|
0.5.9 | 2016年6月 |
|
0.5.8 | 2016年6月 |
|
0.5.7 | 2016年6月 |
|
0.5.6 | 2016年5月 |
|
0.5.5 | 2016 年 4 月 |
|
0.5.4 | 2016 年 4 月 |
|
0.5.3 | 2016 年 2 月 |
|
0.5.2 | 2016 年 2 月 |
|
0.5.1 | 2016 年 2 月 |
|
0.4.19 | 2016 年 2 月 |
|
0.4.18 | 2016 年 2 月 |
|
0.4.17 | 2016年1月 |
|
0.4.15 | 2016年1月 |
|
0.4.14 | 2016年1月 |
|
0.4.13 | 2016年1月 |
|
0.4.11 | 2016年1月 |
|
0.4.10 | 2015年12月 |
|
0.4.8 | 2015年12月 |
|
0.4.6 | 2015 年 9 月 |
|
0.4.4 | 2015 年 7 月 |
|
0.4.3 | 2015年5月 |
|
0.4 | 2015年5月 |
|
0.3.2 | 2015 年 4 月 |
|
0.3.1 | 2015 年 4 月 |
|
0.3 | 2015 年 3 月 |
|
0.2 | 2015 年 3 月 |
|
0.1 | 2015年1月 |
|