mc-fabric-api · v1.14.4 · 2026-09-15 · sha256 9de38d959b42e3b4

mc-fabric-api v1.14.4A

Immutable. This exact content is served forever at /api/v1/blob/9de38d959b42e3b4.

---
name: mc-fabric-api
description: Fabric API 模块系统。fabric-command-api-v1、内容注册表、networking。触发词:Fabric API、fabric-api、modImplementation、fabric-networking
platform: fabric
version: "1.14.4"
dependencies: []
mappings: yarn
---

# Fabric API 模块(Fabric 1.14.4)

## 概述

Fabric API 是模块化的官方扩展库。日常开发引入 **完整 `fabric-api`** 即可;模块名只作对照,**不要钉死**过期的单模块版本号。

## 添加依赖

```groovy
dependencies {
    modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
}
```

`fabric_api_version` 写在 `gradle.properties`,与当前 Minecraft 匹配。不要用 `net.fabric.sdk:`。需要传递给其它 mod 时再用 `modApi`。

## 常用模块

### fabric-command-api-v1(命令系统)

```java
CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> {
    dispatcher.register(
        CommandManager.literal("mycommand")
            .then(CommandManager.argument("player", EntityArgumentType.player())
                .executes(ctx -> {
                    ServerPlayerEntity player = EntityArgumentType.getPlayer(ctx, "player");
                    player.sendMessage(new LiteralText("Hello"));
                    return 1;
                }))
    );
});
```

不要 `ArgumentCommandBuilder`;用 brigadier 的 `CommandManager.argument`。本版回调是 `(dispatcher, dedicated)`,不是 v2 三参。

### 内容注册表(燃料 / 堆肥)

```java
FuelRegistry.INSTANCE.add(MY_ITEM, 200);
CompostingChanceRegistry.INSTANCE.add(MY_ITEM, 0.3f);
```

不要 `FabricItemApi.INSTANCE.canStack`(编造)。自定义物品行为用 `FabricItem` 接口(若本版模块有),不要假单例。

### fabric-screen-api / GUI

Screen 注册与额外数据见 `10-gui.mdc` / `mc-gui`。不要在这里抄邻版 `ScreenRegistry` 或 `HandledScreens` 而不对版本。

### fabric-networking-v0

本档默认 `ClientSidePacketRegistry` / `ServerSidePacketRegistry`(见 `06-networking.mdc` / `mc-networking`)。
不要把 C2S/S2C 的 `register` 写反,不要把 1.16+ `ServerPlayNetworking` 或 1.21 `PayloadTypeRegistry` 当 1.14 默认教程。

### fabric-object-builder-api-v1

```java
new Block(FabricBlockSettings.of(Material.STONE).hardness(1.5f).resistance(6.0f).build());
```

### 战利品 API

fabric-loot-tables / loot-api **v1**(改现有表用 `LootTableLoadingCallback`,见 `05-events.mdc`)

### fabric-registry-sync-v0

用于同步自定义 Registry。

### fabric-key-binding-api-v1

快捷键见 `KeyBindingRegistry`(keybindings-v0;以本版 loader-api 为准),不要钉死 `fabric-key-bindings-v0:1.0.0+1.20.1`。

## 模块名备忘(1.14.4)

| 模块 | 用途 |
|------|------|
| fabric-api-base | 基础工具 |
| fabric-command-api-v1 | 命令注册 |
| fabric-networking-v0 | 网络通信(v0 registry;不是 1.16+ v1) |
| fabric-object-builder-api-v1 | 方块/物品/实体设置 helper |
| fabric-data-generation-api-v1 | 数据生成(1.17+;1.14/1.16 无) |
| fabric-renderer-api-v1 | 渲染 API |

版本号随 `fabric-api` BOM,不要在规则里写死 `0.4.29+1.20.1` 这种邻版数字。

## 常见错误

- ❌ 引入不存在的模块版本 — 以 `gradle.properties` 的 fabric-api 为准
- ❌ group 写成 `net.fabric.sdk` — 正确是 `net.fabricmc.fabric-api`
- ❌ 忘记在 `fabric.mod.json` 的 `depends` 中声明 `fabric-api`
- ❌ `ArgumentCommandBuilder` / `FabricItemApi` — 编造 API

## 扩展点

| 配合 Skill | 协作说明 |
|-----------|---------|
| `mc-registry` | Fabric API 扩展注册能力 |
| `mc-networking` | fabric-networking-v0 |
| `mc-gui` | Screen / Menu |