• >
  • LIBMod
  • >
  • [DFL]数据包函数支持库 (datapackets functions LIB)
[DFL]数据包函数支持库 (datapackets functions LIB)
模组属性评比

距离显示结果还剩4票~

路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志更多
历史编辑记录更多
    管理组

      暂无管理组..

    编辑组

      暂无编辑组..

    活跃
    开源
    [DFL]

    数据包函数支持库

    datapackets functions LIB

    0.0

    无人问津

    昨日指数: 35
    昨日平均指数: 92.677

    5382

    总浏览

    --

    资料填充率


    下载本模组
    • 本数据包为开发者提供了一些实用的函数,兼容 Minecraft 所有版本(除了无法安装数据包的版本)。

      但由于数据包涉及命令较多,所以较低版本可能无法使用所有函数。

      请同时安装资源包以提供本地化内容(v3.2+),否则数据包语言将为zh_cn,或者使用模组版本。

      本数据包的模组版本是通过 Modrinth 打包的,与数据包版本同步更新,内容与数据包版本完全一致。

      以下是数据包 v3.2 本地化更新前的百科说明,将不会在未来更新,请在 GitHub 或数据包内的 README.md 文件中查看最新的函数说明。



      本数据包遵循开源协议 GNU GENERAL PUBLIC LICENSE

      本数据包为开发者提供了一些实用的函数,兼容 Minecraft 所有版本(除了无法安装数据包的版本)。

      但由于数据包涉及命令较多,所以较低版本可能无法使用所有函数,下文将不会分别注明所有函数的适用版本。

      本数据包的模组版本是通过 Modrinth 打包的,与数据包版本同步更新,内容与数据包版本完全一致。

      本数据包加载后会在每 tick 创建一次记分项 dfl_enable 并将所有实体在此记分项中的分数设为 1,便于依赖于本数据包的数据包或模组检测本数据包是否加载。

      范例:

      #在数据包加载时执行:
      scoreboard objectives add dfl_enable dummy
      scoreboard players set @e dfl_enable 0
      #如果未加载:
      execute unless score @n dfl_enable matches 1
      #如果加载:
      execute if score @n dfl_enable matches 1

      注意:有些函数的用法下附有“前置函数”,这些函数执行前必须执行一次前置函数。

      有些函数用法后带有 {xx:"xx"} 这些函数为宏函数,在使用时需通过 {<参数名>:"<内容>"} 传入参数(用法中的参数为默认参数,为作者开发时测试过的推荐参数,或作者测试使用的参数),参数名(如 num)在正文中表现为:{num}。参数格式可参考函数用法,特殊格式会说明。

      Start

      此分类中的函数建议在数据包加载(重载)时执行。

      关闭特殊伤害

      函数用法:/function dfl:start/nodamage。

      • 摔落伤害;

      • 火焰伤害;

      • 冰冻伤害;

      • 溺水伤害。

      固定重生点为 0 0

      函数用法:/function dfl:start/setworldspawn。

      • 将世界重生点设为 0 0 0;

      • 将重生点半径设为 0;

      • 此时玩家会固定重生在坐标 0 0 的最高方块上。

      开启死亡榜

      函数用法:/function dfl:start/show/death。

      • 创建名为 death 的记分项;

      • 会在屏幕右侧显示死亡次数;

      • 玩家死亡次数从高到低排序;

      • 注意:首次开启时不会显示死亡榜,在任意玩家死亡后方可显示。

      显示玩家血量

      函数用法:/function dfl:start/show/health。

      • 创建名为 health 的记分项;

      • 会在玩家 ID 下方显示玩家血量;

      • 距离稍远会不显示(只显示玩家 ID);

      • 注意:首次开启时会显示血量为 0,在数值更新(如受伤)后方可显示。

      显示玩家经验等级

      函数用法:/function dfl:start/show/level。

      • 创建名为 level 的记分项;

      • 会在 Tab 栏(玩家列表栏)显示每名玩家的经验等级;

      • 注意:首次开启时会显示经验等级为 0,在数值更新(如升级)后方可显示。

      显示玩家血条

      函数用法:/function dfl:start/show/health_list。

      • 创建名为 health 的记分项;

      • 会在 Tab 栏(玩家列表栏)显示每名玩家的血条;

      • 效果如下:

      [DFL]数据包函数支持库 (datapackets functions LIB)-第1张图片dfl:start/show/health_list函数效果

      快速新建队伍

      函数用法:/function dfl:start/addteam {team_blue:"blue",team_red:"red",prefix_blue:"blue",prefix_red:"red"}。

      • 创建两个队伍,名称为 {team_blue} 和 {team_red};

      • 颜色分别为 blue 和 red;

      • 禁用同队伍玩家互伤;

      • 玩家只能与非同队的实体碰撞;

      • 玩家名称前缀分别为 {prefix_blue}_ 和 {prefix_red}_。

      Tick

      此分类中的函数建议每 Tick 执行一次。

      软封禁玩家

      函数用法:/function dfl:tick/ban。

      • 注意:此函数执行者必须为要被封禁的玩家,可以使用 execute 命令;

      • 通过不断 tp 玩家到 0 0 0,将模式设为冒险以及不断给予玩家负面 Buff 来实现软封禁;

      • 必须每 Tick 执行一次;

      • 范例:/execute as @a[tag=ban] run function dfl:tick/ban。

      效果如下:

      [DFL]数据包函数支持库 (datapackets functions LIB)-第2张图片dfl:tick/ban函数效果

      信标鞘翅起飞

      函数用法:/function dfl:tick/beacon_fly。

      • 信标下有铁块、金块、绿宝石块、钻石块或下界合金块时会将玩家向上传送(不传送旁观者);

      • 高度依次为 20、40、60、80、100 格;

      • 相同的方块可以叠加高度(最高为 400 格,使用四个下界合金块),如果方块不同,将以距离信标最近的方块为准。

      一键负面 Buff

      函数用法:/function dfl:tick/debuff。

      给予函数执行者以下 Debuff:

      1. slowness;

      2. mining_fatigue;

      3. nausea;

      4. darkness;

      5. hunger;

      6. weakness;

      7. poison;

      8. unluck;

      9. trial_omen。

      铁块电梯

      函数用法:/function dfl:tick/iron_block_elevator。

      • 玩家站在上下两个铁块之间时向上传送;

      • 最远传送距离为 6 格,即两个铁块的最大间距为 5 格;

      • 不会传送旁观者;

      • 会传送生物及非生物实体。

      实体过多清除实体

      函数用法:/function dfl:tick/kill {num:"1000"}。

      • 在非玩家实体数大于 {num} 时清除所有非玩家实体;

      • 不会清理带有 need 标签的实体;

      • 带有 need 标签的实体不会计入此处的实体数;

      • 创建名为 dfl_scoreboard 的记分项;

      • 执行后会在聊天栏提示,效果如下:


      [DFL]数据包函数支持库 (datapackets functions LIB)-第3张图片dfl:tick/kill函数效果

      实体密度过大清除实体

      函数用法:/function dfl:tick/kill_better {num:"50"}。

      前置函数:/function dfl:lib/entity_density。

      • 令所有实体在附近 10 格内实体数大于 {num} 时清除这些实体;

      • 不会杀死玩家;

      • 不会杀死村民;

      • 不会杀死带有 need 标签的实体;

      • 不会在聊天栏留下痕迹。

      体验优化

      函数用法:/function dfl:tick/relax。

      • 开启死亡不掉落;

      • 给予玩家夜视;

      • 给予玩家发光;

      • 移除玩家的黑暗效果。

      显示实体数

      函数用法:/function dfl:tick/show_entity。

      前置函数:/function dfl:lib/entity。

      • 在玩家动作栏(快捷栏上方)显示实时实体数量;

      • 效果如下:

      [DFL]数据包函数支持库 (datapackets functions LIB)-第4张图片dfl:tick/show_entity函数效果

      关闭玩家友伤及碰撞

      函数用法:/function dfl:tick/team。

      • 添加名为 dfl 的队伍,并将所有玩家加入此队伍;

      • 注意:由于同一实体无法加入多个队伍,如果想要使用玩家组队功能请勿启用此函数;

      • 关闭队伍友伤;

      • 关闭队伍内碰撞;

      • 如果不是每 Tick 运行一次此函数,请确保在每位新玩家加入后运行一次此函数。

      TNT 实体密度过大清除 TNT

      函数用法:/function dfl:tick/kill_tnt {num:"200"}。

      • TNT 附近五格内的 TNT 实体数大于 {num} 时清除这些 TNT 实体;

      • 创建名为 dfl_tntdensity 的记分项。

      无权限玩家自杀

      函数用法:/function dfl:tick/suicide。

      • 创建名为 kill 的记分项;

      • 输入 /trigger kill 以自杀(此指令不需要任何权限)。

      大范围替换方块

      函数用法:/function dfl:tick/change_block {new:"glass",old:"stone",num:"30"}。

      • 将玩家附近 {num}3 *8 范围内的 {old} 替换为 {new};

      • 将游戏规则 commandModificationBlockLimit 修改为 2147483647。

      永昼+永晴

      函数用法:/function dfl:tick/always_sunny。

      • 关闭昼夜更替;

      • 关闭天气更替;

      • 将时间设为白天;

      • 将天气设为晴朗。

      清除单个物品并执行命令

      函数用法:/function dfl:tick/clear_run_a {name:"stone",run:"tp ~ ~100 ~"}。

      • 清除所有玩家的一个 {name} 并执行 {run};

      • 注意:参数 run 中的命令首尾不能有多余的空格,命令前不能有斜杠。

      清除指定物品并执行多次命令

      函数用法:/function dfl:tick/clear_run_b {name:"sand",run:"give @s anvil"}。

      • 清除函数执行者的所有 {name} 并执行对应次数的 {run};(在同一 tick 之内)

      • 注意:参数 run 中的命令首尾不能有多余的空格,命令前不能有斜杠。

      保持拥有某物品

      函数用法:/function dfl:tick/keep_have_things {name:"slime_block",num:"64"}。

      • 让命令执行者刚好拥有指定数量的物品。

      自救平台

      函数用法:/function dfl:tick/slime。

      前置函数:/function dfl:lib/gametime。

      • 创建名为 dfl_slime_armor_stand_temp 的记分项,用于储存史莱姆平台生成时的时间;

      • 在拥有 dfl_slime 标签的玩家脚下生成一个 3*3 的史莱姆平台并移除标签,史莱姆平台只能覆盖掉空气方块;

      • 会在 <slime_time 的 dfl_scoreboard 记分项> tick 后清除史莱姆平台位置上的史莱姆方块;

      • slime_time 的 dfl_scoreboard 记分项会在没有赋值时被设为 200,即 10s;

      • 在玩家生成平台时的位置附近 2 格内的史莱姆方块掉落物会被清除。

      物品转化为经验

      函数用法:/function dfl:tick/things_to_xp {name:"tnt",xp:"1"}。

      • 将函数执行者身上的 {name} 转化为对应数量的 {xp} 点经验值。

      tpa

      函数用法:/function dfl:tick/tpa。

      前置函数:/function dfl:lib/player_id。

      • 创建名为 tpa 和 tpa_enable 的记分项;

      • 输入 /trigger tpa set <玩家在 dfl_playerid 记分项中的 id,可以通过 Tab 查看> 以传送到对应玩家;

      • 输入 /trigger tpa_enable 以允许其他玩家传送到自己,无法撤销(如不执行此命令则其他所有玩家均无法传送到此玩家),如果在此命令中使用了 set 设为其他值,则不会有任何效果(不会允许其他玩家传送到自己),仍然可以再次通过 set 来设为 1 以允许其他玩家传送到自己;

      • 如果要传送的玩家不存在或未允许其他玩家传送到自己,则会在对应玩家 id 可被传送后传送到对应玩家,期间仍可随意更改 tpa 对象。

      Redstone

      此分类中的函数建议每间隔一段时间后执行(可以使用 /schedule 命令)。

      清理掉落物

      函数用法:/function dfl:redstone/kill_item。

      • 创建名为 dfl_scoreboard 的记分项;

      • 清除所有掉落物并通过 /tellraw 输出清除的掉落物数量;

      • 不会清除带有 need 标签的掉落物;

      • 效果如下:

      [DFL]数据包函数支持库 (datapackets functions LIB)-第5张图片dfl:redstone/kill_item函数效果

      显示实体数量信息

      函数用法:/function dfl:redstone/show_entity。

      前置函数:/function dfl:lib/entity;

                       /function dfl:lib/item;

                       /function dfl:lib/other_entity。

      此函数效果如下:

      [DFL]数据包函数支持库 (datapackets functions LIB)-第6张图片dfl:redstone/show_entity函数效果

      Lib

      此分类中的函数单独执行没有任何效果或不符合上述分类。

      强制死亡掉落

      函数用法:/function dfl:lib/clear。

      1. 关闭死亡不掉落;

      2. 杀死函数执行者;

      3. 开启死亡不掉落。

      获取实体数

      函数用法:/function dfl:lib/entity。

      • 创建名为 dfl_scoreboard 的记分项;

      • 将实体数量写入 entity 的 dfl_scoreboard 记分项。

      获取实体密度

      函数用法:/function dfl:lib/entity_density。

      • 创建名为 dfl_density 的记分项;

      • 将所有实体附近 10 格内的实体数写入此实体的记分项。

      获取掉落物数

      函数用法:/function dfl:lib/item。

      • 创建名为 dfl_scoreboard 的记分项;

      • 将掉落物数量写入 item 的 dfl_scoreboard 记分项。

      获取非玩家实体数

      函数用法:/function dfl:lib/other_entity。

      • 创建名为 dfl_scoreboard 的记分项;

      • 将非玩家实体数量写入 other_entity 的 dfl_scoreboard 记分项。

      获取游戏天数

      函数用法:/function dfl:lib/day。

      • 创建名为 dfl_scoreboard 的记分项;

      • 将游戏天数写入 day 的 dfl_scoreboard 记分项;

      • 游戏天数 - 昼夜更替时已流逝的游戏天数,为昼夜更替时间除以 24000 取其整数商的结果。

      获取当日时间

      函数用法:/function dfl:lib/daytime。

      • 创建名为 dfl_scoreboard 的记分项;

      • 将当日时间写入 daytime 的 dfl_scoreboard 记分项;

      • 当日时间 - 自当天日出后流逝的游戏刻数,为昼夜更替时间除以 24000 取余数的结果。

      用玻璃包围玩家

      函数用法:/function dfl:lib/fill_outline。

      • 在命令执行者处生成 5*5 的空心玻璃立方体。

      获取游戏时间

      函数用法:/function dfl:lib/gametime。

      • 创建名为 dfl_scoreboard 的记分项;

      • 将游戏时间写入 gametime 的 dfl_scoreboard 记分项;

      • 将写入所有玩家的 dfl_gametime 记分项;

      • 游戏时间 - 世界总共流逝的游戏刻数。

      获取玩家数

      函数用法:/function dfl:lib/players。

      • 创建名为 dfl_scoreboard 的记分项;

      • 将玩家数量写入 players 的 dfl_scoreboard 记分项。

      修改最大生命值

      函数用法:/function dfl:lib/change_max_health {num:"100"}。

      • 将所有玩家的最大生命值设为 {num}。

      生成 UID

      函数用法:/function dfl:lib/player_id。

      • 创建名为 dfl_playerid 和 dfl_scoreboard 的记分板;

      • 在 playerid_temp 的 dfl_scoreboard 记分板中储存 UID 使用进度;

      • 为所有玩家在 dfl_playerid 中设置唯一且不变的 UID;

      • UID 为 1 及以上的数字,最早进入服务器的玩家数字最小,以此类推;

      • 如果函数执行时服务器内玩家大于一位,则这些玩家的 UID 生成顺序随机。

      检测物品数量

      函数用法:/function dfl:lib/things_count {name:"stone"}。

      • 创建名为 dfl_{name}_num 的记分项;

      • 将所有玩家的 {name} 数量写入各自的此记分项。

    短评加载中..