数据 - data

介绍

通过使用 data 配置项,可以将某些需要动态化的信息数据保存在物品中,方便后续获取、修改、使用,可完成基本的 CRUD 操作。

data 处于 AzureFlow 三层架构中的数据层,可直接调用相关语句进行处理,即无需加上引用表达式${},支持使用 js 等脚本语法。

注意:data 仅支持直接编写基本数据类型,如数字、字符串、小数等,当该数据是由复杂表达式,即函数、列表、字典等其他复杂语法生成时,请使用单引号包裹。

语法

大致使用方法如下:

data:
  数据名1: 数据值1
  数据名2: 数据值3
  数据名2: 数据值3
  #...: ...

示例

参考如下物品数据配置,即可完成数据项的定义

data:
  level: 100
  name: "斩碎虚空之剑"
  owner: player.name
  attribute_name: '["物理攻击", "魔法攻击", "物理防御", "魔法防御"].sample()'
  attribute_value: 'random.int(1, 100)'

按照如上配置,我们定义了

  • 一个值为100,类型为整数的等级数据

  • 一个值为斩碎虚空之剑,类型为字符串的物品名称数据

  • 一个值为玩家的名字,类型为字符串的拥有者名称数据

  • 一个为数组中随机一个值的属性名数据

  • 一个值为 1~100 随机数值的属性值数据

你知道吗?

AzureFlow 存储物品数据的原理实际上是将处理过( processed )的数据通过 minecraft nbt 技术持久化存储到物品上。

例如,如下配置的数据:

data:
  level: 100

将会根据如下路径与规则被存储到物品的 nbt 上

{
  AzureFlow: {
    data: {
      level: 100
    }
  }
}

Last updated