ADM(管理员)

ADM(管理员)

此模组旨在扩展数据包功能,目前仍处于早期开发阶段。在常规游戏过程中请勿使用此模组。它可能导致游戏崩溃,甚至损坏你的世界!

高级数据包模组 (Advanced Datapack Mod)

本模组旨在扩展数据包功能,目前处于早期开发阶段。请勿在常规游戏过程中使用此模组。它可能导致崩溃甚至损坏你的世界!

此 mod 旨在扩展数据包功能,目前处于早期开发阶段。不要在正常游戏期间使用此模组。它可能会导致崩溃甚至坏档!

文档英文版

  • [由 Deepseek(AI) 和 XiaotianMC(作者) 翻译]

数据包功能简介

1. 物品扩展

  • 与原版数据包相比,提供了更多物品扩展功能,使 Minecraft 能够通过数据包动态注册物品。
  • 支持自定义物品属性、耐久度等。
  • 支持自定义物品模型和纹理。(在资源包中定义)

2. 方块扩展 (开发中)

  • 添加了更多方块扩展功能。

3. 命令

  • adm 命令 [返回] 模组信息
    • item 子命令
      • get <namespace> [返回] 已注册物品的列表。<namespace> 为可选参数。
      • disable <item> [禁用] 指定的 adm 物品。<item> 为必填参数 (可用,正在优化中)。
      • enable <item> [启用] 指定的 adm 物品。<item> 为必填参数 (可用,正在优化中)。
      • setclear [清除] 正在使用的已禁用物品将被移除。true->false;false->true (可用,正在优化中)。
    • block 子命令
      • get <namespace> [返回] 已注册方块的列表。<namespace> 为可选参数。
      • disable <block> [禁用] 指定的 adm 方块。<block> 为必填参数 (可用,正在优化中)。
      • enable <block> [启用] 指定的 adm 方块。<block> 为必填参数 (可用,正在优化中)。
    • debug 子命令 [设置] 调试模式。true->false;false->true。
    • reload 子命令 [重载] 模组数据 (开发中)。

数据包格式

要定义一个物品,请在数据包的 data/<namespace>/item 目录下创建一个 <item_name>.json 文件。

这是一个示例:

{
  "food": {
      "canAlwaysEat": true,
      "nutrition": 80,
      "saturation": 3.0,
      "effects": [
        ["minecraft:night_vision", 10, 1]
      ]
  },
  "tool": {
      "type": "axe",
      "level": "stone",
      "attackDamage": 999,
      "attackSpeed": 0.1,
      "durability": 1
  },
  "replace": "barrier"
}

其中 foodtoolreplace 是可选的。

  • food 定义物品的食物相关属性。
    • canAlwaysEat:物品是否始终可以食用。
    • nutrition:食物值(食用时恢复的饱和度)。
    • saturation:饱和度值。
    • effects:食用后应用的效果,格式为 [效果ID, 持续时间(刻), 效果等级]
  • tool 定义物品的工具相关属性。
    • type:工具类型,例如 axepickaxeshovelhoesword
    • level:工具等级,例如 woodstoneirondiamondnetherite
    • attackDamage:工具的攻击伤害。
    • attackSpeed:工具的攻击速度。
    • durability:工具的耐久度。
  • replace 定义物品在客户端的显示物品。必须是一个(客户端)已存在的物品 ID,例如 minecraft:stoneminecraft:iron_ingot 等(开发中)。

要定义一个方块,请在数据包的 data/<namespace>/block 目录下创建一个 <block_name>.json 文件。

这是一个示例:

{
  "hardness": 1.0,
  "resistance": 10.0,
  "lightLevel": 0,
  "replace": "minecraft:stone",
  "require_tool": true,
  "has_item": true,
  "replaceable": false
}

其中 hardnessresistancelightLevelreplacerequire_tooltoolhas_item 是可选的。

  • hardness:方块的硬度。
  • resistance:方块的爆炸抗性。
  • lightLevel:方块的光照等级。
  • has_item:方块是否有对应的物品形式。(如果有,请在 data/<namespace>/item 目录下创建同名的物品定义文件。)
  • replace:定义方块在客户端的显示方块。必须是一个(客户端)已存在的方块 ID,例如 minecraft:stoneminecraft:oak_planks 等(开发中)。
  • require_tool:是否需要工具才能破坏方块。

ADM API

  • cn.gcte.adm.api.ResReloadManager 资源重载管理器
    • public static void register(Consumer<ResourceManager> consumer) 注册一个监听器,该监听器将在数据包初始加载时被调用。ResReloadManager.register(resourceManager -> { // 在资源加载后立即处理 // 例如:LOGGER.info("Resource manager has been reloaded!"); });
  • cn.gcte.adm.api.GetBlockData 获取方块数据包资源(即 data/<namespace>/block/<block_name>.json 文件)。
    • public static String getAllData() 获取 DataList(以 JSON 字符串形式)。
  • cn.gcte.adm.api.GetItemData 获取物品数据包资源(即 data/<namespace>/item/<item_name>.json 文件)。
    • public static String getAllData() 获取 DataList(以 JSON 字符串形式)。

文档中文版 - 中文版文档

Datapack功能介绍

1. 物品扩展

  • 相比于原版数据包,增加了更多的物品扩展功能,能够使 Minecraft 通过数据包动态注册物品。
  • 支持物品的自定义属性、耐久度等。
  • 支持物品的自定义模型和纹理。(在资源包中定义)

2. 方块扩展(正在开发)

  • 增加了更多的方块扩展功能。

3. 命令

  • adm 命令 [返回] mod 信息
    • item 子命令
      • get <namespace> [返回] 注册的物品列表 <namespace> 非必选参数
      • disable <item> [禁用] 指定 adm 物品 <item> 必选参数 (可用, 正在完善中)
      • enable <item> [启用] 指定 adm 物品 <item> 必选参数 (可用, 正在完善中)
      • setclear [清除] 正在被使用的已禁用物品会被清除 true->false; false->true (可用, 正在完善中)
    • block 子命令
      • get <namespace> [返回] 注册的方块列表 <namespace> 非必选参数
      • disable <block> [禁用] 指定 adm 方块 <block> 必选参数 (可用, 正在完善中)
      • enable <block> [启用] 指定 adm 方块 <block> 必选参数 (可用, 正在完善中)
    • debug 子命令 [设置] debug 模式 true->false; false->true
    • reload 子命令 [重载] mod 数据 (正在开发)

Datapack格式

在数据包的 data/<namespace>/item 目录下新建 <item_name>.json 文件以定义物品。

这是一个示例

{
"food": {
    "canAlwaysEat": true,
    "nutrition": 80,
    "saturation": 3.0,
    "effects":[
      ["minecraft:night_vision",10,1]
    ]
},
"tool": {
    "type": "axe",
    "level": "stone",
    "attackDamage": 999,
    "attackSpeed": 0.1,
    "durability": 1
},
"replace": "barrier"
}

其中 foodtoolreplace 是可选的。

  • food 定义了物品的食物属性。
    • canAlwaysEat:是否总是可以食用。
    • nutrition:食物的饱食度。
    • saturation:食物的饱和度。
    • effects:食用后给予的效果,格式为 [效果ID, 持续时间(tick), 效果等级]
  • tool 定义了物品的工具属性。
    • type:工具类型,如 axepickaxeshovelhoesword
    • level:工具等级,如 woodstoneirondiamondnetherite
    • attackDamage:工具的攻击伤害。
    • attackSpeed:工具的攻击速度。
    • durability:工具的耐久度。
  • replace 定义了物品在客户端的展示物品,必须是一个(客户端)存在的物品 ID,如 minecraft:stoneminecraft:iron_ingot 等(developing)。

在数据包的 data/<namespace>/block 目录下新建 <block_name>.json 文件以定义方块。

这是一个示例

{
  "hardness": 1.0,
  "resistance": 10.0,
  "lightLevel": 0,
  "replace": "minecraft:stone",
  "require_tool": true,
  "has_item": true,
  "replaceable": false
}

其中 hardnessresistancelightLevelreplacerequire_tooltoolhas_item 是可选的。

  • hardness:方块的硬度。
  • resistance:方块的爆炸抗性。
  • lightLevel:方块的光照等级。
  • has_item:方块是否有对应的物品形式。(若有,则在 data/<namespace>/item 目录下新建同名的物品定义文件)
  • replace 定义了方块在客户端的展示方块,必须是一个(客户端)存在的方块 ID,如 minecraft:stoneminecraft:oak_planks 等(developing)。
  • require_tool:是否需要工具才能破坏方块。

ADM API

  • cn.gcte.adm.api.ResReloadManager 资源重载管理器
    • public static void register(Consumer<ResourceManager> consumer) 注册 listener,该 listener 会在数据包刚开始加载时被调用。ResReloadManager.register(resourceManager -> { // 在这里处理资源刚加载 // 举个例子 LOGGER.info("Resource manager has been reloaded!"); });
  • cn.gcte.adm.api.GetBlockData 获得方块数据包资源(即 data/<namespace>/block/<block_name>.json 文件)。
    • public static String getAllData() 获得 DataList(json 字符串)
  • cn.gcte.adm.api.GetItemData 获得物品数据包资源(即 data/<namespace>/item/<item_name>.json 文件)。
    • public static String getAllData() 获得 DataList(json 字符串)

[!] Curseforge 仅发布正式版本。如果你想获取所有版本,请访问 modrinth。