• >
  • LIBMod
  • >
  • D更好的Schedule (D's Better Schedule)
D更好的Schedule (D's Better Schedule)
模组属性评比

距离显示结果还剩5票~

路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志
  • 暂无日志..

历史编辑记录更多
    管理组

      暂无管理组..

    编辑组

      暂无编辑组..

    开发组申请
    最近参与编辑
    活跃
    开源

    D更好的Schedule

    D's Better Schedule

    0.0

    无人问津

    昨日指数: 5
    昨日平均指数: 84.376

    449

    总浏览

    --

    资料填充率


    如何下载?
    • 简介

      D 更好的 Schedule(D's Better Schedule)是一个库。它为数据包开发者提供了一个会记录运行环境的 schedule 函数。

      它会记录执行者,执行位置,执行朝向,以及在部分情形中,记录执行维度。

      它同样会处理在执行时记录的执行者已经死亡,下线,或卸载的情况。


      使用说明

      使用时正常安装数据包,/reload

      想要使用 schedule,首先按要求将所需数据放入 dah.sch:new 这个 storage 的 new 键名下。

      数据包含:

      • run: #[command] string 

        要执行的命令;必选

      • time: int 

        等待的时间,以刻为单位;必选

      • offline: string 

        若命令要执行时,无法找到执行者(不在线,死亡,或未加载),该怎么做;

        可选下列,默认为 discard

        • discard:丢弃任务,当它从未存在;

        • delay玩家下线时正常计时,但延迟到玩家重新上线后再执行,仅玩家有效

        • pause:玩家下线时任务暂停计时。仅玩家有效

        • by_server:命令会由服务器执行,即无执行者。

      • flags: [string] 

        设置任务其他的可选行为。可以包含任意组合以下项目:

        • no_executer:不会记录执行者作为环境,命令总由服务器执行;

        • debug:输出 debug 信息,调试用;

        • try_dimension:使其尝试解析当前环境的所在维度。

          若执行者为玩家,则会从玩家实体数据中读取;若执行者不是玩家则会尝试是否为 overworld(主世界),the_nether(下界)或 the_end(末地);若均不满足则假定为主世界。

          你可以向函数标签 #dah.sch:known_dimensions 添加自定义的函数,其中运行以下函数来扩充这个维度穷举列表。

      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 下载。

    短评加载中..