🇩🇪 Deutsch (German)
🇩🇪 Deutsch (German)
Erscheinungsbild
🇩🇪 Deutsch (German)
🇩🇪 Deutsch (German)
Erscheinungsbild
Diese Seite ist für folgende Version geschrieben:
1.21.4
Auf dieser Seite wird die Struktur eines Fabric-Mod-Projekts und der Zweck der einzelnen Dateien und Ordner im Projekt erläutert.
fabric.mod.json Die Datei fabric.mod.json ist die Hauptdatei, die deinen Mod für den Fabric Loader beschreibt. Sie enthält Informationen wie die ID des Mods, die Version und die Abhängigkeiten.
Die wichtigsten Felder in der Datei fabric.mod.json sind:
id: Die Mod-ID, Welche einzigartig sein sollte.name: Der Name des Mods.environment: Die Umgebung in der dein Mod läuft, wie beispielsweise client, server, oder * für beide.entrypoints: Die Einstiegspunkte, die dein Mod bereitstellt, wie beispielsweise main oder client.depends: Die Mods, von denen dein Mod abhängt.mixins: Die Mixins, die dein Mod bereitstellt.Nachfolgend siehst du eine Beispieldatei fabric.mod.json - dies ist die Datei fabric.mod.json für das Referenzprojekt, das diese Dokumentationsseite betreibt.
fabric.mod.json{
"schemaVersion": 1,
"id": "fabric-docs-reference",
"version": "1.0.0",
"name": "Fabric docs reference",
"icon": "assets/fabric-docs-reference/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"com.example.docs.FabricDocsReference",
"com.example.docs.event.FabricDocsReferenceEvents",
"com.example.docs.command.FabricDocsReferenceCommands",
"com.example.docs.effect.FabricDocsReferenceEffects",
"com.example.docs.potion.FabricDocsReferencePotions",
"com.example.docs.sound.FabricDocsReferenceSounds",
"com.example.docs.damage.FabricDocsReferenceDamageTypes",
"com.example.docs.item.FabricDocsReferenceItems",
"com.example.docs.enchantment.FabricDocsReferenceEnchantments",
"com.example.docs.block.FabricDocsReferenceBlocks",
"com.example.docs.block.entity.FabricDocsReferenceBlockEntities",
"com.example.docs.component.FabricDocsReferenceComponents",
"com.example.docs.advancement.FabricDocsReferenceDatagenAdvancement",
"com.example.docs.networking.FabricDocsReferenceNetworking",
"com.example.docs.networking.basic.FabricDocsReferenceNetworkingBasic"
],
"client": [
"com.example.docs.client.command.FabricDocsReferenceClientCommands",
"com.example.docs.FabricDocsBlockEntityRenderer",
"com.example.docs.FabricDocsDynamicSound",
"com.example.docs.FabricDocsReferenceClient",
"com.example.docs.rendering.HudRenderingEntrypoint",
"com.example.docs.network.basic.FabricDocsReferenceNetworkingBasicClient"
],
"fabric-datagen": [
"com.example.docs.datagen.FabricDocsReferenceDataGenerator"
]
},
"mixins": [
"fabric-docs-reference.mixins.json",
{
"config": "fabric-docs-reference.client.mixins.json",
"environment": "client"
}
],
"depends": {}
}Wie bereits erwähnt, enthält die Datei fabric.mod.json ein Feld namens entrypoints - dieses Feld wird verwendet, um die Einstiegspunkte anzugeben, die dein Mod bereitstellt.
Der Template-Mod-Generator erstellt standardmäßig sowohl einen main- als auch einen client-Einstiegspunkt:
main wird für allgemeinen Code verwendet und ist in einer Klasse enthalten, die ModInitializer implementiertclient Einstiegspunkt wird für clientspezifischen Code genutzt und seine Klasse implementiert ClientModInitializerDiese Einstiegspunkte werden jeweils aufgerufen, wenn das Spiel beginnt.
Hier ist ein Beispiel für einen einfachen main-Einstiegspunkt, der eine Nachricht an die Konsole ausgibt, wenn das Spiel startet:
public class FabricDocsReference implements ModInitializer {
// This logger is used to write text to the console and the log file.
// It is considered best practice to use your mod id as the logger's name.
// That way, it's clear which mod wrote info, warnings, and errors.
public static final String MOD_ID = "fabric-docs-reference";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
@Override
public void onInitialize() {
// This code runs as soon as Minecraft is in a mod-load-ready state.
// However, some things (like resources) may still be uninitialized.
// Proceed with mild caution.
LOGGER.info("Hello Fabric world!");
}
}src/main/resources Der Ordner src/main/resources wird verwendet, um die Ressourcen zu speichern, die dein Mod verwendet, wie Texturen, Modelle und Sounds.
Es ist auch der Ort, an dem sich die Datei fabric.mod.json und alle Mixin-Konfigurationsdateien befinden, die dein Mod verwendet.
Assets werden in einer Struktur gespeichert, die die Struktur von Ressourcenpaketen widerspiegelt - eine Textur für einen Block würde zum Beispiel in assets/mod-id/textures/block/block.png gespeichert werden.
src/client/resources Der Ordner src/client/resources wird verwendet, um Client-spezifische Ressourcen zu speichern, wie Texturen, Modelle und Sounds, die nur auf der Client-Seite verwendet werden.
src/main/java Der Ordner src/main/java wird verwendet, um den Java-Quellcode für deinen Mod zu speichern - er existiert sowohl auf der Client- als auch auf der Serverumgebung.
src/client/java Der Ordner src/client/java wird verwendet, um clientspezifischen Java-Quellcode zu speichern, wie zum Beispiel Rendering-Code oder clientseitige Logik - wie zum Beispiel Blockfarbenprovider.