Prickle

Prickle

Prickle 是一种基于 JSON 的配置文件格式,现已引入 Minecraft。

Prickle 是一种基于 JSON 的配置格式。本模组允许其他模组使用 Prickle 来配置它们的配置文件!如需技术文档,请参阅 GitHub 页面。

常见问题解答

为什么叫 Prickle?
Prickle 是一群刺猬的集合名词。刺猬是我最喜欢的动物之一,我认为它们是配置文件的完美比喻。例如,它们最初可能都令人望而生畏,但一旦你了解并理解它们,就会变得友好。

为什么不使用现有格式?
过去,我使用标准 JSON 作为配置文件格式,但存在一些问题,例如缺少注释和默认值。Prickle 在保持 100% 向后兼容性的同时,为 JSON 添加了这些功能。我尝试过其他格式,如 TOML,但对它们的许多 Java 实现感到失望。它们通常缺乏我认为重要的功能,存在严重错误,并且已不再维护。Minecraft 的数据包和命令也使用 JSON,因此对大多数玩家来说,这是一个熟悉的选择。

格式规范

在 Prickle 中,属性值被包裹在一个 JSON 对象中。这使得元数据和其他属性可以附加到该属性上。用户编辑的实际值由 value 属性保存。

例如,在标准 JSON 中,文件可能如下所示:

{
  "database_host": "192.168.1.222"
}

相同的 JSON 作为 Prickle 文件则如下所示:

{
  "database_host": {
    "value": "192.168.1.222"
  }
}

注释

// 键被保留用于注释。注释仅用于为读者提供额外的上下文,绝不应影响文件解析方式。注释可以是 JSON 字符串,也可以是用于多行注释的 JSON 字符串数组。

{
  "database_host": {
    "//": "要连接的数据库的 IP 地址。",
    "value": "192.168.1.0"
  }
  "database_host_backup": {
    "//": [
      "备用 IP 地址,用于连接。仅当",
      "无法访问默认主机时使用    "
    ],
    "value": "192.168.1.0"
  }
}

装饰器

装饰器是一种命名注释,用于向读者传达属性的特定信息。一个常见的装饰器例子是 //default,它向读者声明默认值。与注释一样,装饰器绝不影响文件解析方式,它们纯粹是描述性的。

您在 Prickle 文件中可能会遇到以下装饰器:

  • //default - 属性的默认值。
  • //reference - 可用于了解更多信息的资源,例如 wiki/文档页面。
  • //range - 数值的可接受范围。
  • //regex - 值必须匹配的正则表达式模式。
  • //empty-allowed - 值是否可以为空。

Nodecraft 赞助标志本项目由 Nodecraft 赞助。使用代码 DARKHAX 可在首月服务享受 30% 折扣!