Warning: file_put_contents(/www/wwwroot/nmbt.106988770/cache/modrinth_versions_jYMa7nhW.json): Failed to open stream: Permission denied in /www/wwwroot/nmbt.106988770/resource_detail.php on line 53
dataLib - 墨喵 Minecraft 资源
dataLib 图标

dataLib

作者:rebot | 分类:模组

价格:0 墨喵币 下载量:0 点赞:0 版本 6.0.2
本资源为搬运资源,原资源地址: https://modrinth.com/mod/datalib
资源信息

Minecraft 版本: 26.2

平台: fabric

标签: library technology utility

资源介绍

? dataLib

?️ ARCHIVED

This project is archived and no longer maintained. No new features, bug fixes, or security patches will be released. The information below reflects the state of the project at the time of archival and is kept for reference only.

Use at your own risk — known issues will not be fixed, and newer Minecraft versions are not guaranteed to be compatible.

Minecraft Java Edition 26.2 | Multiplayer-Safe | Pure Datapack

CI
License: MIT
Download on Modrinth


Current version: v6.0.2

This datapack was considered safe to use as of its last release, but it no longer receives security improvements, bug fixes, or new features. There is no "up to date" version to move to.

Do not copy datalib:input or datalib:engine into your own datapack. It is an internal implementation detail and may change without notice between releases.

⚠️ Do not use v5.1.1. That version bound _rt_origin.mcfunction to the load tag, causing it to run automatically on every load with no safe removal path. Fixed in later versions — always use the latest release.


⚠️ A /reload is still required after installation or after adding the load hook below. Automatic first-join initialization is not implemented in this version — do not rely on this until verified in-game with repeated reloads.


?️ This is a Minecraft Datapack — it contains no executables or scripts outside of .mcfunction files.
Some antivirus software may flag .mcfunction files as suspicious due to macro-like syntax. This is a false positive. The pack has been scanned on VirusTotal and returned clean.
Only download from this official repository. Do not trust redistributed or repackaged versions from third-party sources.


? Installation

  1. Download the latest release from the Modrinth versions page and place the .zip into <world>/datapacks/.

  2. Add the following logic to your datapack's load tag. Replace <namespace> with your own datapack's namespace (e.g. mypack) — this applies only to the function names, never to datalib:engine, which is dataLib's own fixed storage and must not be changed:

#> <namespace>:load
execute unless data storage datalib:engine {global:{loaded:1b}} run function <namespace>:load_datalib
#> <namespace>:load_datalib

# Guard checks the SAME storage/path the trigger condition checks (datalib:engine global.loaded).
execute if data storage datalib:engine {global:{loaded:1b}} run return 0

function dl_load:load/yes
function dl_load:load/fork_no

data modify storage datalib:engine global.loaded set value 1b
Fixed bug: duplicate load trigger (click to expand) An earlier version checked `datalib:engine {global:{loaded:1b}}` in the trigger but set `:engine loaded_datalib` in the guard — two different storages, two different paths. The set never satisfied the trigger's condition, so `load_datalib` re-ran every time the load tag fired. This doesn't crash anything, but it silently re-triggers `dl_load:load/yes` and `fork_no` on every reload, which can accumulate side effects depending on what those functions do. Both the check and the set must target `datalib:engine global.loaded`. If you're updating from an older copy of this README, verify by reloading multiple times and confirming `load_datalib` does NOT re-run after the first load.

?️ Storage Architecture

datalib:engine  (persistent data)
├── global
│   ├── version: "v6.0.2"
│   ├── loaded: 1b
│   └── tick: <int>
├── players
│   └── Steve { coins:150, level:5, xp:2300, online:1b, ... }
├── queue
│   └── [{func:"mypack:event/end", delay:100}]
├── cooldowns
│   └── Steve { fireball: 2460, dash: 1870 }  ← expiry ticks
└── events
    └── on_join: [{func:"mypack:welcome"}, {func:"mypack:xp_bonus"}]

datalib:input   (sending data to a function)
datalib:output  (receiving results from a function)

Note: All dataLib-owned state lives under the datalib: namespace only. Never mix a consuming pack's own namespace into dataLib's load-flag logic — that mismatch was the source of the bug above.


? Dependencies

Lantern Load

Repository: https://github.com/LanternMC/load
License: BSD 0-Clause (public domain)

Provides deterministic load order, version tracking, and pre/load/post-load hooks.

# Check if dataLib is loaded
execute if score #dataLib load.status matches 1.. run say dataLib is loaded

# Get version (major*10000 + minor*100 + patch → v6.0.2 = 601)
scoreboard players get dataLib load.status

StringLib

Repository: https://github.com/CMDred/StringLib
License: MIT

Bundled under the stringlib namespace. Exposed via datalib:core/lib/string/*.

Function Description
lib/string/concat Join a string array
lib/string/find Find substring index
lib/string/replace Replace substring
lib/string/split Split by separator
lib/string/insert Insert at index
lib/string/to_lowercase Lowercase (A–Z, fast)
lib/string/to_uppercase Uppercase (a–z, fast)
lib/string/to_number String → numeric NBT
lib/string/to_string Value → string

All functions read from datalib:input and write to datalib:output string.result.

data modify storage datalib:input string set value "Hello World"
data modify storage datalib:input find set value "World"
data modify storage datalib:input replace set value "Everyone"
function datalib:core/lib/string/replace
# datalib:output string.result → "Hello Everyone"

? Support

This project is archived. Issues and pull requests are not monitored and will not be actioned.

Issues
Discussions


dataLib v6.0.2 | MC Java 26.2 | Pure Datapack

下载与版本
评论(0)
请 登录 后发表评论。

暂无评论,抢个沙发吧~

举报此资源

请登录后举报

赞助作者

请 登录 后赞助作者。

🔥 相关推荐
RedPower 2 Compat

价格:0 墨喵币
下载量:0

查看详情
Light Pink Tooltip (Monochrome)

价格:0 墨喵币
下载量:0

查看详情
Cakeworks

价格:0 墨喵币
下载量:0

查看详情
Dimension Date Lock

价格:0 墨喵币
下载量:0

查看详情