作者声称不会再更新百科的下载文件,请前往 Modrinth 下载最新版本。
前言
本数据包遵循开源协议 GNU LESSER GENERAL PUBLIC LICENSE。
本数据包为开发者提供了一些实用的函数,兼容 Minecraft 所有版本(除了无法安装数据包的版本)。
但由于数据包涉及命令较多,所以较低版本可能无法使用所有函数,下文将不会分别注明所有函数的适用版本。
请同时安装资源包以使用本地化内容(v3.2+版本)。否则,数据包语言将默认为 zh_cn。
本数据包的模组版本是通过 Modrinth 打包的,内容与数据包版本完全一致,但不一定是最新版,请尽量使用数据包版本。
本数据包提供一个 dfl:dfl_enable 函数,可以将所有实体在此记分项中的分数设为 1,便于依赖于本数据包的数据包或模组检测本数据包是否加载。
范例:
#在数据包加载时执行:
scoreboard objectives add dfl_enable dummy
scoreboard players set @e dfl_enable 0
#如果未加载:
function dfl:dfl_enable
execute unless score @n dfl_enable matches 1
#如果加载:
function dfl:dfl_enable
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
显示玩家血量
函数用法:/function dfl:start/show/health
显示玩家经验等级
函数用法:/function dfl:start/show/level
显示玩家血条
函数用法:/function dfl:start/show/health_list
[DFL]数据包函数支持库 (datapackets functions LIB)-第1张图片
快速新建队伍
函数用法:/function dfl:start/addteam {team_blue:"blue",team_red:"red",prefix_blue:"blue",prefix_red:"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张图片
信标鞘翅起飞
函数用法:/function dfl:tick/beacon_fly
一键负面 Buff
函数用法:/function dfl:tick/debuff
给予函数执行者以下 Debuff:
slowness
mining_fatigue
nausea
darkness
hunger
weakness
poison
unluck
trial_omen
铁块电梯
函数用法:/function dfl:tick/iron_block_elevator
实体过多清除实体
函数用法:/function dfl:tick/kill {num:"1000"}
[DFL]数据包函数支持库 (datapackets functions LIB)-第3张图片
实体密度过大清除实体
函数用法:/function dfl:tick/kill_better {num:"50"}
前置函数:/function dfl:lib/entity_density
Minecraft is too hard
函数用法:/function dfl:tick/mith
开启死亡不掉落;
给予执行者夜视;
给予执行者发光;
移除执行者的黑暗效果。
显示实体数
函数用法:/function dfl:tick/show_entity
前置函数:/function dfl:lib/entity
在玩家动作栏(快捷栏上方)显示实时实体数量。
效果如下:
[DFL]数据包函数支持库 (datapackets functions LIB)-第4张图片
关闭玩家友伤及碰撞
函数用法:/function dfl:tick/team
添加名为 dfl 的队伍,并将所有玩家加入此队伍;
注意:由于同一实体无法加入多个队伍,如果想要使用玩家组队功能请勿启用此函数;
关闭队伍友伤;
关闭队伍内碰撞;
如果不是每 Tick 运行一次此函数,请确保在每位新玩家加入后运行一次此函数。
TNT 实体密度过大清除 TNT
函数用法:/function dfl:tick/kill_tnt {num:"200"}
无权限玩家自杀
函数用法:/function dfl:tick/suicide
大范围替换方块
函数用法:/function dfl:tick/change_block {new:"glass",old:"stone",num:"30"}
永昼+永晴
函数用法:/function dfl:tick/always_sunny
关闭昼夜更替;
关闭天气更替;
将时间设为白天;
将天气设为晴朗。
清除单个物品并执行命令
函数用法:/function dfl:tick/clear_run_a {name:"stone",run:"tp ~ 100 ~"}
清除指定物品并执行多次命令
函数用法:/function dfl:tick/clear_run_b {name:"sand",run:"give @s anvil"}
保持拥有某物品
函数用法:/function dfl:tick/keep_have_things {name:"slime_block",num:"64"}
自救平台
函数用法:/function dfl:tick/slime
前置函数:/function dfl:lib/gametime
创建名为 dfl_slime_marker_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"}
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 对象。
自动冶炼
函数用法:/function auto_smelt:smelt {input:"raw_iron",output:"iron_ingot"}
消耗 {input} 并给予函数执行者对应数量的 {output};
烧炼一个物品会消耗 1 点经验,如果玩家没有经验则不会烧炼物品;
如果背包中同时拥有三种支持的燃料,会同时消耗这些燃料;
消耗煤炭块后可以同时烧炼 9 个物品,并扣除 9 点经验。
Redstone
此分类中的函数建议每间隔一段时间后执行。(可以使用 /schedule 命令)
清理掉落物
函数用法:/function dfl:redstone/kill_item
[DFL]数据包函数支持库 (datapackets functions LIB)-第5张图片
显示实体数量信息
函数用法:/function dfl:redstone/show_entity
前置函数:
/function dfl:lib/entity
/function dfl:lib/item
/function dfl:lib/other_entity
此函数效果如下:
[DFL]数据包函数支持库 (datapackets functions LIB)-第6张图片
Lib
此分类中的函数单独执行没有任何效果或不符合上述分类。
强制死亡掉落
函数用法:/function dfl:lib/clear
关闭死亡不掉落。
杀死函数执行者。
开启死亡不掉落。
获取实体数
函数用法:/function dfl:lib/entity
获取实体密度
函数用法:/function dfl:lib/entity_density
获取掉落物数
函数用法:/function dfl:lib/item
获取非玩家实体数
函数用法:/function dfl:lib/other_entity
获取游戏天数
函数用法:/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
获取游戏时间
函数用法:/function dfl:lib/gametime
创建名为 dfl_scoreboard 的记分项;
将游戏时间写入 gametime 的 dfl_scoreboard 记分项;
将写入所有玩家的 dfl_gametime 记分项;
游戏时间 - 世界总共流逝的游戏刻数。
获取玩家数
函数用法:/function dfl:lib/players
修改最大生命值
函数用法:/function dfl:lib/change_max_health {num:"100"}
生成 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"}
批量生成假人
函数用法:/function dfl:lib/spawn