简介
D 更好的 Schedule(D's Better Schedule)是一个库。它为数据包开发者提供了一个会记录运行环境的 schedule 函数。
它会记录执行者,执行位置,执行朝向,以及在部分情形中,记录执行维度。
它同样会处理在执行时记录的执行者已经死亡,下线,或卸载的情况。
使用说明
使用时正常安装数据包,/reload。
想要使用 schedule,首先按要求将所需数据放入 dah.sch:new 这个 storage 的 new 键名下。
数据包含:
execute at @s if predicate {condition:"location_check",predicate:{dimension:"foo:bar"}} run data modify storage dah.sch:task this.in set value "foo:bar"
in: #[id="dimension"] string
直接指定一个维度运行命令;若制定了 try_dimension,则 try_dimension 的优先级更高;
若没有指定 in,也没有指定 try_dimension,则命令总是在默认维度(主世界)执行。
在置入了数据后,在想要记录的上下文中执行 function dah.sch:new 即可计划命令。
示例
# 在 1 秒后把执行者传送回之前的位置。
data modify storage dah.sch:new new set value {run:"tp ~ ~ ~",time:20}
function dah.sch:new
# 1 秒后在目前位置放置石头。尝试寻找所在维度,并输出 debug 信息。
data modify storage dah.sch:new new set value {run:"setblock ~ ~ ~ stone",time:20,flags:["debug","try_dimension"]}
function dah.sch:new
# 10 秒后移除该玩家的指定属性修饰器。若该玩家在 10 秒后下线则等到其再次上线后再执行。
data modify storage dah.sch:new new set value {run:"attribute @s attack_damage modifier remove foo:bar",time:200,offline:"delay"}
function dah.sch:new
本库同样提供一个简单的宏版本,只接受 run 和 time:
function dah.sch:set {run:'say 1', time: 20}
依赖库文件
库中包含了一个 dependency.zip 文件。将该文件放置于电脑的任意位置,你就可以通过在 vscode 根目录创建一个 spyglass.json 文件的方式,使 Spyglass(即 DHP,大憨批)从路径中读取 dependency.zip 中的内容以提供本库中的所有函数,Storage 以及 NBT 结构 (mcdoc) 的补全与纠错。
spyglass.json 文件示例。细节请见 Spyglass 官方文档:
{
"env": {
"dependencies": [
"file:///C:/path/to/dependency.zip",
"@vanilla-mcdoc",
"@vanilla-resourcepack",
"@vanilla-mcdoc"
],
"gameVersion": "1.21.5"
}
}
记得重载 VSCode。若有出错可使 VScode 执行 Spyglass: Reset Project Cahce 命令。
兼容性
本库本身不覆盖任何原版内容,也不会创建,修改,或删除任何世界元素(实体,方块等)。
所有库本身的内容都带有 dah.sch 命名空间或前缀。这也使其遵循 Smithed 公约 和 MC Datapacks Discord Server 公约中的内容。
使用者不应该对本库的兼容性有任何担忧。
卸载
本库无法在它激活时被卸载,想要卸载它,首先将其禁用或移出 datapacks 文件夹,再 reload。
之后,请参考库根目录中提供的 unload.mcfunction 中的指示移除其使用的各项数据。
链接与下载
库中内置了 gu 以转换 UUID。
请从相关链接的 GitHub 或 Modrinth 下载。