skip to content
Fabric Wiki
User Tools
Register
Log In
Site Tools
Search
Tools
Show pagesource
Old revisions
Backlinks
Recent Changes
Media Manager
Sitemap
Register
Log In
>
Recent Changes
Media Manager
Sitemap
Trace:
•
modding_tips
Sidebar
スタートに戻る
チュートリアル
インストール
開発環境のセットアップ
Log4j デバッグメッセージの有効化
Minotaur を使用した Modrinth への Mod 公開
CurseGradle を使用した Curseforge への Mod 公開
基本
Minecraft の基本コンセプト
Fabric を使用した Mod 製作の導入
Minecraft のソースコードの読み方
規則と用語
基本的な規則と用語
サーバー側とクライアント側の用語
レジストリへの登録
レジストリの概要
レジストリの種類
開発ツール
サードパーティのライブラリ Mod
Minecraft を再起動せずに変更を適用
言語ファイルの作成
マッピングの使用
応用
CrowdinTranslateを使用したライブコミュニティ翻訳の提供
GitHub Actionsを使用したコミット内にあるエラーの検出方法
Mod 製作の Tips
Java コードベースで Yarn マッピングの更新
DataFixers[工事中]
Access Widener
リフレクション
Enum(列挙型)の追加
インターフェイスインジェクション
アイテム
アイテムについて
実用的な例:アイテムの追加
アイテムグループの作成
ツールチップの追加
クラフトレシピの追加
防具の追加
道具の追加
盾の追加
カスタムエンチャントの追加
モデルプレディケートプロバイダーの追加
ブロックとブロックエンティティ
ブロックの追加
ブロック状態の付与
向きのあるブロックの追加
水没可能なブロックの追加
ブロックエンティティの追加
カスタムインベントリの作成
ブロックとアイテムの色の動的変化
ブロックの外観の操作
動的なブロックとアイテムのレンダリング
カスタムモデルを使用した動的なブロックとアイテムのレンダリング
ブロックエンティティレンダラーを使用した動的なブロックとアイテムのレンダリング
コンテナブロックの追加
拡張された ScreenHandlers とのカスタムデータの同期
PropertyDelegates との整数の同期
カスタム作物の追加
液体
液体の作成
エンティティ
エンティティの追加
カスタムスポーンエッグの追加
カスタム飛び道具の作成
ワールド生成
ディメンションの概念
カスタム鉱石の生成
フィーチャーの追加
木の追加(上級)
構造物の追加
バイオームの追加
ジェネレータタイプの追加
ディメンションの追加
カスタムポータルの作成
レシピタイプ
レシピタイプについて
レシピタイプの追加(下書き)
クッキングレシピタイプの作成
カッティングレシピタイプの作成
その他
採掘高度
レイキャスティング
カスタムキーバインド
コマンドの作成
ネットワーク
ステータス効果
パーティクルの追加
音の再生
カスタムゲームルール
カスタムデータ/リソースパックのリソース
タグの規則
有用なチュートリアルのリスト
プレイヤーの統計の追加
イベント
イベントのリッスン(下書き)
カスタムイベントの作成
既存のルートテーブルへのアイテムの追加
イベントインデックス(下書き)
ミックスイン
導入
Mixin registration
Injects
Accessors and Invokers
Redirectors
Method redirectors
例
Hotswapping Mixins
Exporting Mixin Classes
動的なデータの生成
動的なレシピの生成
動的なモデルの生成
Minecraft 1.15 のチュートリアル
Using Jigsaws in StructureFeatures
Minecraft 1.14 のチュートリアル
Rendering blocks and items dynamically using block entity renderers
Manipulating a Block's appearance
Adding a Cookie Creeper Entity
ローダー 0.3.x から 0.4.x への更新
Fabric に貢献する
The Fabric Feature Procedure
Fabric on GitHub
Game mappings repository + contribution documentation
チョットワカル人向け
Updating Yarn to a new Minecraft version
ja:tutorial:modding_tips
Table of Contents
Mod 製作の Tips
基本(API)
ミックスイン
ネットワーキング
落とし穴
Mod 製作の Tips
これは、API のユーザーへのアドバイスに関する経験から集められた、さまざまな Fabric 関連の改造のヒントのコレクションです。
基本(API)
Fabric の
API
開発のインジェクションベースのアプローチにより、エンドユーザーに見える方法でクラスに完全にパッチを適用する傾向はありません。そのため、実行できないことに遭遇したときに、バニラクラスの Fabric 拡張を見つけることがあります。例えば:
Block.Settings → FabricBlockSettings
EntityType.Builder → FabricEntityTypeBuilder
組み込みのリソース パックまたはデータ パックの場合、 “assets/[mod id]” または “data/[mod id]” ディレクトリパスがそれぞれ存在することを確認してください。 IDEA ユーザーは、誤って “assets.[mod id]” ディレクトリを作成してしまうことがあります。これは機能しません。
ミックスイン
クラスを実装していないインターフェースにキャストしたり、 final クラスをキャストしたり、ミックスインをターゲットクラスにキャストしたりするには、 “(TargetClass) (Object) sourceClassObject” トリックを使用できます。
@Redirect および @ModifyConstant mixin は現在ネストできません (同じ領域で複数の Mod によって同時に適用されます)。これは開発の途中で変更される可能性があります―― とはいえ、現時点では、@Overwrite と一緒に、可能であればそれらを避けてください(または、Fabric の
API
にフックを持ち込むことについて話し合うか、よりニッチなものについては、小さな JAR-in-JAR に入れることを検討してください)。
プライベートではないカスタムフィールドまたはメソッドを追加する場合は、 “[modid]$” または別の一意の文字列をプレフィックスとして付け、 @Unique で注釈を付けます。基本的に、 “secretValue” ではなく “mymod$secretValue” です。これは、同じ名前のフィールドまたはメソッドを追加する Mod 間の競合を避けるためです。
ネットワーキング
パケットは常に
ネットワークスレッド
で実行を開始しますが、ほとんどの Minecraft へのアクセスはスレッドセーフではありません。一般に、何をしているのか正確にわからない場合は、ネットワークスレッドでパケットを解析し(すべての値を読み取り)、
タスクキュー
を使用して
メインサーバー/クライアントスレッド
で追加の操作を実行します。
落とし穴
java.awt
パッケージとそのサブパッケージは使用しないでください。 AWT は、すべてのシステムでうまく機能するわけではありません。何人かのユーザーが Minecraft がハングアップしたと報告しています。
ja/tutorial/modding_tips.txt
· Last modified: 2022/08/13 08:57 by
skytomo
Page Tools
Show pagesource
Old revisions
Backlinks
Back to top