Compatibility
Minecraft: Java Edition
Platforms
Creators
Details
Di Library
This is a small multifunctional datapack library reduced repetitive works.
- Version number: 2.4
- Game versions: 1.20.3-1.20.4
- Author: Minecraft_hyr
- Project Links: Modrinth, Github
Feature List
English
Fabric Convention Tags (namespace: c)
- Tags from Fabric API / Fabric Convention Tags
For mod compatibility.
License LGPL-2.1-only
Minecraft files (namespace: minecraft)
- If you want to embed tick/load function Di Library in your datapack, please add functions in minecraft tag file
- If you are not using tick/load functions, you may not need this.
Di Library files (namespace: dilib)
-
If player join the game and there is only 1 player, game will run
function #minecraft:load(reload only functions) -
Stored some tags & item_modifiers & predicates
-
If a item has tag
{dilib:{clear:1b}}, it will be clear in inventory / in world -
/function dilib:presets/objectives:
This function will load when install.Load some scoreboard objectives, some display names are official translate text.
Can be used for check statics, but please do not modify these scores -
/function dilib:presets/const:
This function will load when install.
Add to theconstobjectives:
-1000..1000
±(10^*), ±(10^*-1)
±(2^*), ±(2^*-1)
10* 100..1000ļ¼-100..-1000Add into
storage dilib:data const:pi:3.141592653589793d,tau:6.283185307179586d,e:2.718281828459045d -
/function dilib:presets/durability:
Calculate damage to item for unbreaking item.
Input:
score damage dilib..temp: Expect damage to item (default: 1)
storage dilib:data temp: Item NBT (id,tag,Count)
storage dilib:data temp.slot: Item slot string for/itemcommand -
/function dilib:presets/explosion:
Explosion selecting location without creeper ghost.
Macro:
$(radius): NBTExplosionRadius -
/function dilib:presets/uuid_pointing:
Select entity that UUID pointing.
Macro:
$(UUID): Target entity.
$(command): The command will running on target entity. -
/function dilib:presets/slot_to_string/player:
Convert input byte data to string can be used in/itemcommand.
Input:
storage dilib:data input.slot: Byte datać Output:
storage dilib:data output.slot: Stringć -
/function dilib:presets/kill
A powerful kill won't keep anythingtag global.ignore -
/function dilib:presets/math/power
Calculate power.
Input:
score input dilib..temp: base
score power dilib..temp: power
Output:
score output dilib..temp -
/function dilib:presets/math/sqrt
Calculate square root.
Input:
score input dilib..temp
Output:
score output dilib..temp -
/function dilib:presets/math/avg
Calculate the average value (anti-overflow). Input:
score input1 dilib..temp
score input2 dilib..temp
Output:
score output dilib..temp -
/function dilib:presets/math/unit_fraction
Calculate unit fraction (Fraction with numerator 1).
Input:
score input dilib..temp: denominator
Output:
score output dilib..temp -
/function dilib:debug:- First execute: Show particles at marker, notification when function loaded, show player's dilib only actions in action bar.
- Second execute: Remove all features.
Add your functions in tags to run function every times event happen:
| Player
-
tag/functions #dilib:player/trigger_menus:Execute when
/trigger menus.
Example:tellraw @s {"text": "[Minecraft Remade]","clickEvent": {"action": "run_command","value": "/function mc_remade:tag/menu/configs/1"},"hoverEvent": {"action": "show_text","contents": "Click me to config Minecraft Remade"},"color": "green"} -
tag/functions #dilib:player/new:Execute when new player join.
players @s dilib..player_id: (In world) Player IDplayers players dilib..player_id: Joined player counter
-
tag/functions #dilib:player/death:Execute when player death.
-
tag/functions #dilib:player/respawn:Execute when player respawn.
-
tag/functions #dilib:player/sneaking:Execute when player is sneaking.
@s dilib..sneak_time: Player sneaked time
-
tag/functions #dilib:player/sneak_end:Execute when player stops sneaking.
@s dilib..sneak_time: Player sneaked time when stops sneaking
-
tag/functions #dilib:player/jump:Execute when player jump.
-
tag/functions #dilib:player/fall_end:Execute when player stops falling.
@s dilib..fall_one_cm: Player felled distance when stops falling
-
tag/functions #dilib:player/level_changedExecute when player level changed.
@s dilib..stored_level: Last tick level@s level: Current levelstep dilib..temp: Level stepped
| Entity
-
tag/functions #dilib:entity/new_item_checker:Execute when new item appear.
@sselect the armor_stand that mainhand hold the item *: Modifies to the item will apply tostorage dilib:data temp.Item@e[type=item,tag=dilib.this,limit=1]select the Item (Entity)storage dilib:data temp.ItemItem data
-
tag/functions #dilib:entity/new_item_check:Execute when new item appear.
storage dilib:data temp.ItemItem data *: Modifies to the Item data will apply to Item (Entity)
| World
-
tag/functions #dilib:world/day_changed:Execute when day changed.
stored_day dilib..data: Last tick daycurrent_day dilib..data: Current daystep dilib..temp: Day stepped
-
tag/functions #dilib:world/daytime_changed:Execute when daytime changed.
stored_daytime dilib..data: Last tick daytimecurrent_daytime dilib..data: Current daytimestep dilib..temp: Daytime stepped
äøę
Fabric Convention Tags (å½å空é“: c)
- ę ē¾ę„čŖ Fabric API / Fabric Convention Tags
äøŗå ¼å®¹ęØ”ē»ę·»å ć
许åÆčÆ LGPL-2.1-only
Retina ęä»¶ (å½å空é“: retina)
- č§ Retina
äøŗč§ēŗæčæ½čøŖę·»å ć
ā ä»åØ 1.20.2ļ¼ēå¾ ę“ę°
Minecraft ęä»¶(å½å空é“: minecraft)
- å¦ęä½ č¦ę Di Library å ē½®ē tick/load ēøå ³ēå½ę°åØä½ ēę°ę®å éļ¼čÆ·åØä½ ē对åŗę ē¾ęä»¶äøę·»å å½ę°
- å¦ęä½ ę²”ęä½æēØ tick/load ēøå ³ēå½ę°ļ¼é£ä¹ä½ åÆč½äøéč¦čæäøŖć
Di Library ęä»¶(å½å空é“: dilib)
-
å¦ęē©å®¶å å „äøēäøåŖęäøäøŖē©å®¶ļ¼ä¼ę§č”
function #minecraft:load(åŖéč½½å½ę°) -
åę¾äŗäøäŗę ē¾ćē©å修鄰åØćč°čÆ
-
å¦ęäøäøŖē©åęę ē¾
{dilib:{clear:1b}}ļ¼å®åØē©åę ęåØäøēéä¼č¢«ęø é¤ć -
/function dilib:presets/objectives:
评åč½åØå®č£ ę¶ä¼č¢«å č½½ć
å č½½äøäŗč®”å锹ćéØåę¾ē¤ŗåŗēåē§°ęÆå®ę¹ēåÆēæ»čÆęę¬ćåÆä»„ēØę„ē»č®”ę°ę®ļ¼ä½čÆ·äøč¦äæ®ę¹čæäŗę°ę® -
/function dilib:presets/const:
评åč½åØå®č£ ę¶ä¼č¢«å č½½ć
åč®”å锹 const éå å „:
-1000..1000
±(10^*), ±(10^*-1)
±(2^*), ±(2^*-1)
10* -100..1000ļ¼-100..-1000- å
storage dilib:data constå å „:pi:3.141592653589793d,tau:6.283185307179586d,e:2.718281828459045d
- å
-
/function dilib:presets/durability:
č®”ē®ęčä¹ ééēē©åčä¹
č¾å „:
score damage dilib..temp: é¢ę对ē©åē伤害 (é»č®¤: 1)
storage dilib:data temp: ē©å NBT (id,tag,Count)
storage dilib:data temp.slot: 对/itemå½ä»¤ä½æēØēę§½ä½åē§° -
/function dilib:presets/explosion:
åØå½åä½ē½®ę§č”ę²”ęč¦åę鬼影ēēēøć
å®:
$(radius): NBTExplosionRadius -
/function dilib:presets/uuid_pointing:
éäø UUID ęåēå®ä½.
å®:
$(UUID): ē®ę å®ä½
$(command): ē®ę å®ä½ę§č”ēå½ä»¤ć -
/function dilib:presets/slot_to_string/player:
å°č¾å „ē byte ę°ę®č½¬ę¢äøŗåÆä»„åØ/itemå½ä»¤äøä½æēØēå符串
č¾å „:
storage dilib:data input.slot: Byte ę°ę®ć č¾åŗ:
storage dilib:data output.slot: å符串ć -
/function dilib:presets/kill
äøäæēä»»ä½äøč„æē killtag global.ignore -
/function dilib:presets/math/power
č®”ē®ä¹ę¹ćč¾å „:
score input dilib..temp: åŗę°
score power dilib..temp: ęę°
č¾åŗ:
score output dilib..temp -
/function dilib:presets/math/sqrt
č®”ē®å¹³ę¹ę ¹ćč¾å „:
score input dilib..temp
č¾åŗ:
score output dilib..temp -
/function dilib:presets/math/avg
č®”ē®å¹³åå¼ļ¼é²ęŗ¢åŗļ¼ćč¾å „:
score input1 dilib..temp
score input2 dilib..temp
č¾åŗ:
score output dilib..temp -
/function dilib:presets/math/unit_fraction
č®”ē®åä½åę°ļ¼ååäøŗ 1 ēåę°ļ¼ć
č¾å „:
score input dilib..temp: åęÆ
č¾åŗ:
score output dilib..temp -
/function dilib:debug:- 第äøę¬”ę§č”: ęÆäøē§åØę č®°å¤ę¾ē¤ŗē²åļ¼å½ę°å č½½å®ęÆę¶čæč”åé¦ļ¼ę¾ē¤ŗē©å®¶åØ DiLib äøå±ēåØä½äŗåæ«ę·ę ę é¢ć
- 第äŗę¬”ę§č”: ęø é¤äøčæ°ęęē¹ę§
å°ä½ ēå½ę°å å „ę ē¾ļ¼å½ę°ä¼åØäŗä»¶åēę¶čæč”ļ¼
| ē©å®¶
-
tag/functions #dilib:player/trigger_menus:åØ
/trigger menusę¶č§¦åć
ä¾:tellraw @s {"text": "[Minecraft Remade]","clickEvent": {"action": "run_command","value": "/function mc_remade:tag/menu/configs/1"},"hoverEvent": {"action": "show_text","contents": "Click me to config Minecraft Remade"},"color": "green"} -
tag/functions #dilib:player/new:ę°ē©å®¶å å „ę¶č§¦åć
-
dilib:tags/advancements/tick:@s dilib..player_id: ļ¼äøēäøēļ¼ē©å®¶ IDplayers dilib..player_id: čæå „čæēē©å®¶ę»ę°
-
-
tag/functions #dilib:player/death:ē©å®¶ę»äŗ”ę¶č§¦åć
-
tag/functions #dilib:player/respawn:ē©å®¶éēę¶č§¦åć
-
tag/functions #dilib:player/sneaking:ē©å®¶ę½č”ę¶č§¦åć
@s dilib..sneak_time: ē©å®¶å·²ę½č”ę¶é“
-
tag/functions #dilib:player/sneak_end:ē©å®¶ę½č”ē»ęę¶č§¦åć
@s dilib..sneak_time: ē©å®¶ę½č”ē»ęę¶ēę½č”ę¶é“
-
tag/functions #dilib:player/jump:ē©å®¶č·³č·ę¶č§¦åć
-
tag/functions #dilib:player/fall_end:ē©å®¶ęč½ē»ęę¶č§¦åć
@s dilib..fall_one_cm: ē©å®¶ęč½ē»ęę¶ēęč½č·ē¦»
-
tag/functions #dilib:player/level_changedē©å®¶ēēŗ§ę¹åę¶č§¦åć
@s dilib..stored_level: äøäøå»ēēēŗ§@s level: å½åēēŗ§step dilib..temp: ę„čæēēēŗ§
| å®ä½
-
tag/functions #dilib:entity/new_item_checker:ę°ē©ååŗē°ę¶č§¦åć
@säø»ęęęē©åēēē²ę¶ *: ę“ę¹ē©åä¼åŗēØäŗåƹåŗēstorage dilib:data temp.Itemäø@e[type=item,tag=dilib.this,limit=1]éäøå½åē©åļ¼å®ä½ļ¼storage dilib:data temp.Item: ē©åę°ę®
-
tag/functions #dilib:entity/new_item_check:ę°ē©ååŗē°ę¶č§¦åć
storage dilib:data temp.Item: ē©åę°ę® *: ę“ę¹ē©åę°ę®ä¼åŗēØäŗåƹåŗēē©åļ¼å®ä½ļ¼äø
| äøē
-
tag/functions #dilib:world/day_changed:ę„ęååę¶č§¦åć
stored_day dilib..data: äøäøå»ēę„ęcurrent_day dilib..data: å½åę„ęstep dilib..temp: ę„čæēę„ę
-
tag/functions #dilib:world/daytime_changed:ä»ę„ę¶é“ååę¶č§¦åć
stored_daytime dilib..data: äøäøå»ēä»ę„ę¶é“current_daytime dilib..data: å½åä»ę„ę¶é“step dilib..temp: ę„čæēę¶é“


