hahahahahah 发表于 2024-7-12 15:31:28

[娱乐] NumericalRequirements —— 致力成为下一代的 RealSurvival, 更新至 1.1.4 [1.9+]

本帖最后由 hahahahahah 于 2024-8-8 12:47 编辑

NumericalRequirements
数字化需求简介该插件致力成为下一代的RealSurvival, 目前支持版本 1.9+; 此外实测在 Minecraft 1.7.10 下,插件的大部分功能有用。目前插件的功能除了口渴值系统以外还增加了自定义工作台内容。


现在文档正在陆续“加载”中。现在更新的文档能在仓库内看到:传送门
我的博客中也在陆续更新:核心配置 | Effect 效果 | 元素格式化器 | 元素处理器 | 口渴值拓展 | 多方块工艺拓展


自定义方块


图中的木头方块其实是石头变的. 自定义方块现在支持所有的, 支持"CustomModelData"的, 服务器版本. 并且需要搭配材质包进行使用. 在插件第一次运行过程中会生成"custom-blocks.yml"配置文件, 里面含有配置说明.
视频演示如下:
https://mp4.ziyuan.wang/view.php/48e6b64eb1d4c79f43405b1a0d37dc63.mp4


口渴值口渴值的相关设置都在‘NumericalRequirements/thirst/config.yml’中,配置文件中的默认内容如下
口渴值默认配置文件
##################################
#         口渴值拓展设置
#################################
#
# 所加入元素有:
#   口渴值: ID为 'ThirstElement'
#
##################################

# 是否启用
enable: true
thirst:
# 元素数值上界
max-value: 100
# 自然流失速度,多少值每秒
natural-depletion: 0.25
death-punishment: # 死亡惩罚
    enable: true    # 开关
    value: 60       # 复活时口渴值为上限的百分之几。取之范围为0~100
    effect:         # 复活时赋予的效果
      first:      # 可列多个
      bundle: "口渴值死亡惩罚" # 效果包的ID
      duration: 60# 持续时间 秒
# 效果包设置
effect-bundles:
    "口渴值死亡惩罚":
      type: "元素负面效果"
      PotionEffect:
      effect-1:
          potion-type: "SLOW"
          amplifier: 0
    "缺水":
      type: "元素负面效果"
      PotionEffect:
      effect-1:
          potion-type: "SLOW"
          amplifier: 0
    "滋润":
      type: "元素增益效果"
      PotionEffect:
      effect-1:
          potion-type: "SPEED"
          amplifier: 0
##########################
#    口渴要素数值管理器
##########################

# 目前只有这一个,具体行为为,在元素值进入所设置的范围时赋予玩家效果包效果
effect-handler: org.eu.smileyik.numericalrequirements.core.api.element.handler.RangeHandler
# 数值管理器参数
effects:
    # 占位符,这个不重要,你想处理多少范围就加多少个
    "level-1":
      # 范围:数值到该范围内触发
      range:
      # 范围是否为百分数,
      # 若为百分数则实际范围为所设定范围的: range * 数值上界 / 100
      # 否则则为字面值
      percentage: true
      # 所需要附加的效果包ID
      bundle: "缺水"
      # 效果包持续时间, 单位为秒
      duration: 20
      # 第一次值进入该范围时所使用的消息效果ID
      # 支持的效果ID有:ChatMessage; ActionBar; TitleMessage
      message-sender: "ChatMessage"
      # 传递给消息效果的参数,为列表,不同效果所要求的参数不同
      # ChatMessage, ActionBar: 直接设置一行即可,该行就为发送给玩家的消息
      # TitleMessage: 参数需要5行,第一行为主标题、第二行为副标题、第三行为淡入时间(游戏刻)、第四行为持续时间(游戏刻)、第五行为淡出时间(游戏刻)
      # 所有消息效果中的消息文本都支持元素格式化显示占位符
      # 元素格式化占位符格式为:${format:<格式化程序ID>;<要素ID>}
      message:
      - "你嗓子都要冒烟了"
    "level-2":
      range:
      percentage: true
      bundle: "滋润"
      duration: 20
      message-sender: "ActionBar"
      message:
      - "你听,肚子里开始晃荡晃荡响了也"
# 标签设置
tag:
# 口渴值的Lore标签设置 <%:numf1> 为保留一位小数位的浮点数占位符
thirst: "§b增加 §2<%:numf1> §b滋润度."

# 获取流体设置
get-liquid:
# 获取水
water:
    # 是否启用
    enable: true
    # 默认获取的流体物品ID
    default-liquid: default-water
    # 当右键哪些方块时则忽略取水
    ignore:
      - "WATER_CAULDRON"
    # 当右键哪些流体类型则算获取成功
    liquid-type:
      - "STATIONARY_WATER"
      - "WATER"
      - "TALL_SEAGRASS"
      - "SEAGRASS"
    # 获取流体时检测流体的最大距离
    max-distance: 2
    # 是否使用扫描模式检测所瞄准的流体
    scan-mode: false
    # 当玩家使用玻璃瓶右键空气时是否进行获取流体过程。
    check-air: true
    # 是否开启不同生物群系获取到不同类型的水
    # 当生物群系的水未设置或者设置的物品ID对应的物品不存在则使用‘default-liquid’设置的物品
    biome-liquid: true
    # 生物群系设置,格式为
    # 生物群系ID: 物品ID
    biome: {}



目前可用设置玩家用玻璃瓶获取流体、设定玩家死亡惩罚以及根据口渴值所在区间基于相应的正面BUFF或负面BUFF。
在默认的配置中,已经设置可用玻璃瓶从水中获取水瓶功能;在默认配置中,玩家获取水瓶时,限制玩家与水源的距离最大距离为2格。

目前配置还有一定的自定义空间,将配置的`get-liquid`章节做出如下小小的改动,你就可以喝热岩浆了。
小小的改动


# 获取流体设置
get-liquid:
# 获取水
water:
    # 是否启用
    enable: true
    # 默认获取的流体物品ID
    default-liquid: default-water
    # 当右键哪些方块时则忽略取水
    ignore:
      - "WATER_CAULDRON"
    # 当右键哪些流体类型则算获取成功
    liquid-type:
      - "STATIONARY_WATER"
      - "WATER"
      - "TALL_SEAGRASS"
      - "SEAGRASS"
    # 获取流体时检测流体的最大距离
    max-distance: 2
    # 是否使用扫描模式检测所瞄准的流体
    scan-mode: false
    # 当玩家使用玻璃瓶右键空气时是否进行获取流体过程。
    check-air: true
    # 是否开启不同生物群系获取到不同类型的水
    # 当生物群系的水未设置或者设置的物品ID对应的物品不存在则使用‘default-liquid’设置的物品
    biome-liquid: true
    # 生物群系设置,格式为
    # 生物群系ID: 物品ID
    biome: {}
# 获取水
lava:
    # 是否启用
    enable: true
    # 默认获取的流体物品ID
    default-liquid: default-lava
    # 当右键哪些方块时则忽略取水
    ignore: []
    # 当右键哪些流体类型则算获取成功
    liquid-type:
      - "STATIONARY_LAVA"
      - "LAVA"
    # 获取流体时检测流体的最大距离
    max-distance: 2
    # 是否使用扫描模式检测所瞄准的流体
    scan-mode: false
    # 当玩家使用玻璃瓶右键空气时是否进行获取流体过程。
    check-air: true
    # 是否开启不同生物群系获取到不同类型的水
    # 当生物群系的水未设置或者设置的物品ID对应的物品不存在则使用‘default-liquid’设置的物品
    biome-liquid: false
    # 生物群系设置,格式为
    # 生物群系ID: 物品ID
    biome: { }





自定义工作台
我知道你们都喜欢RealSurvival的自定义工作台,现在它回来了。现在拥有4个简单的机器类型可以使用,如下图聊天框中所示:


方块结构机器运行效果演示:
多方块机器演示
视频里的机器库存页面是可以自定义的。
https://mp4.ziyuan.wang/view.php/de3d82239f365acf5f0d6dacd4285e24.mp4



也许你已经从上图展示机器类型的图片中看出来了,没错,现在有有完整的引导创建机器的指令,该指令从创建库存样式到创建多方块结构都能够辅助你,省去编辑大部分配置文件。当然了,也有完整的引导创建机器的合成配方指令。



工作台的具体使用方法如下:

1. 使用指令创建一个工作台、并在设定工作台物品时停止
2. 使用 /nr item add lore-machine [机器ID] 指令来为手上的方块物品设定lore标签;或者使用 /nr item add nreq-machine [机器ID] 来为手上的方块物品设定NBT标签。
3. 继续步骤1中剩余步骤,直到机器创建完毕
4. 重新加载配置文件
5. 将带有 `lore-machine` 标签以及 `nreq-machine` 标签的方块物品放置到世界中,右击即可打开机器的库存界面
需要注意的是,设定的机器标签需要与创建机器过程中设定的机器ID相对应。也就是说,插件根据放置的物品的机器标签寻找到相对应的机器,然后再打开机器。

此外,SimpleTimeCraftTable和SimpleMultiBlockMachine在刚放置在世界中时,机器默认是非启用状态。可以在创建完机器后修改配置文件,在机器库存页面中加入切换机器运行状态的按钮。这部分稍后再说,可以向看看我测试时写的配置文件。


指令与权限
权限仅有一个:NumericalRequirements.Admin
指令可以自行在控制台中输入: /nr help 查看指令帮助信息。
玩家仅有 /nr status 指令可用,用来查看自身状态信息。

前置依赖
本插件没有强制性的依赖插件,仅有可选依赖插件,即软前置插件。支持的软前置依赖插件有 PlaceholderAPI、LuaInMinecraftBukkit,当然没有这两个前置插件也能正常运行。
安装LuaInMinecraftBukkit前置则可以自己编辑lua脚本充当插件中的“效果”,并能够被放置在“效果包”中整合使用,目前与该插件的其他功能功能正在制作中。

下载
预览版本(JDK17编译):
V1.0.0(JDK8编译):
V1.1.1:
V1.1.4:
仓库地址:https://github.com/SmileYik/NumericalRequirements
若有Bug或者建议相关问题请到仓库发issue,若想要高版本JDK编译版本则请自己克隆仓库进行编译


需要注意的是, 此该构建版本中并未内置相关数据库驱动, 如需要相关数据库驱动支持, 请自行寻找驱动文件, 并在启动服务器时加入. 大致为 "java -cp 驱动1.jar;驱动2.jar -jar server.jar" 或者 "java -cp 驱动1.jar:驱动2.jar -jar server.jar". 在高版本中, 服务器核心已经加载了 sqlite 数据库驱动程序

安装
将插件放入plugins文件夹中即可,插件在第一次运行后自动创建配置文件,并且相关配置文件说明都在配置文件的注释之中。现在已经能开箱即用。

其他
交流群:950727559
爱发电:https://afdian.net/a/SmileYik
大致更新内容:

v1.1.4:

1. 增加新的自定义方块服务: RelationalRealCustomBlockService, 现在支持数据库存储自定义方块数据了
2. 解决了在卸载区块时可能带来的区块循环加载的问题: 原因是在卸载区块时, 自定义方块服务会删除相应的自定义方块下的原版方块, 此时会重新加载该区块.
3. 移动自定义方块相关的类到api包下
v1.1.1:
1. 增加关系型数据库支持
2. 重构物品序列化器, 使得能够将物品序列化为JSON格式配置文件或YAML格式配置文件
3. 物品服务功能解耦出物品管理器, 并实现"文件式物品管理器", "关系型数据库式文件管理器"两种, 且可在配置文件中随意选择.
4. 增加简单的自定义方块功能实现
5. 增加网络服务, 使得能够对NMS数据包进行监听及拦截
6. 增加数个 NMS 包装类





页: [1]
查看完整版本: [娱乐] NumericalRequirements —— 致力成为下一代的 RealSurvival, 更新至 1.1.4 [1.9+]