diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index fe73c35..5d17e3e 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -6,9 +6,17 @@ "SPGoding.datapack-language-server", "ms-python.python", "ms-python.flake8", - "dlyz.md-link-checker" + "dlyz.md-link-checker", + "vscjava.vscode-java-pack" ], - "settings": {} - } + "settings": { + "java.compile.nullAnalysis.mode": "automatic" + } + }, + "features": { + "ghcr.io/devcontainers/features/git:1": {} + }, + "forwardPorts": [8080], + "postCreateCommand": "java -version" } } \ No newline at end of file diff --git a/.github/workflows/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from .github/workflows/PULL_REQUEST_TEMPLATE.md rename to .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/README.md b/.github/README.md index 0cd397c..c20911d 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,126 +1,126 @@ -# 🔧 dataLib -**Minecraft Java Edition 26.2 | Multiplayer-Safe | Pure Datapack** - ---- -> Current version: **v6.0.0** ---- - ---- -> 🛡️ **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](https://www.virustotal.com) and returned clean. -> **Only download from this official repository.** Do not trust redistributed or repackaged versions from third-party sources. - ---- - -## 📦 Installation - -``` -1. Place dataLib-v6.0.0 into /datapacks/ -2. /reload -3. /function dl_load:load/yes -4. /tag @s add datalib.admin -5. /scoreboard players set @a[tag=datalib.admin] dl.perm_level 3 -``` - ---- - -## 🏗️ Storage Architecture - -``` -datalib:engine (persistent data) -├── global -│ ├── version: "v6.0.0" -│ └── tick: -├── 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) -``` - ---- - -## 🔍 Predicate Reference - -Used with `execute if predicate `. - -| Predicate | Description | -|---|---| -| `datalib:is_survival` | Player is in survival mode | -| `datalib:is_creative` | Player is in creative mode | -| `datalib:has_empty_mainhand` | Main hand is empty | -| `datalib:is_full_health` | Player is at full health (20 HP) | -| `datalib:is_sneaking` | Player is sneaking | -| `datalib:is_sprinting` | Player is sprinting | -| `datalib:is_burning` | Player is on fire | -| `datalib:is_on_ground` | Player is on the ground | -| `datalib:is_daytime` | Daytime (0–12000 ticks) | -| `datalib:is_raining` | It is raining | -| `datalib:is_thundering` | There is a thunderstorm | -| `datalib:in_overworld` | Player is in the Overworld | -| `datalib:in_nether` | Player is in the Nether | -| `datalib:in_end` | Player is in the End | - -Full reference: [Predicate Reference](../../wiki/Predicate-Reference) - ---- - -## 📦 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. - -```mcfunction -# 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.0 = 50000) -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`. - -```mcfunction -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 - -[![Issues](https://img.shields.io/github/issues/runtoolkit/DataLib-next?style=for-the-badge)](https://github.com/runtoolkit/DataLib-next/issues) -[![Discussions](https://img.shields.io/github/discussions/runtoolkit/DataLib-next?style=for-the-badge&logo=github&color=blue)](https://github.com/runtoolkit/DataLib-next/discussions) - ---- - -*dataLib v6.0.0 | MC Java 26.2 | Pure Datapack* \ No newline at end of file +# 🔧 dataLib +**Minecraft Java Edition 26.2 | Multiplayer-Safe | Pure Datapack** + +--- +> Current version: **v6.0.0** +--- + +--- +> 🛡️ **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](https://www.virustotal.com) and returned clean. +> **Only download from this official repository.** Do not trust redistributed or repackaged versions from third-party sources. + +--- + +## 📦 Installation + +``` +1. Place dataLib-v6.0.0 into /datapacks/ +2. /reload +3. /function dl_load:load/yes +4. /tag @s add datalib.admin +5. /scoreboard players set @a[tag=datalib.admin] dl.perm_level 3 +``` + +--- + +## 🏗️ Storage Architecture + +``` +datalib:engine (persistent data) +├── global +│ ├── version: "v6.0.0" +│ └── tick: +├── 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) +``` + +--- + +## 🔍 Predicate Reference + +Used with `execute if predicate `. + +| Predicate | Description | +|---|---| +| `datalib:is_survival` | Player is in survival mode | +| `datalib:is_creative` | Player is in creative mode | +| `datalib:has_empty_mainhand` | Main hand is empty | +| `datalib:is_full_health` | Player is at full health (20 HP) | +| `datalib:is_sneaking` | Player is sneaking | +| `datalib:is_sprinting` | Player is sprinting | +| `datalib:is_burning` | Player is on fire | +| `datalib:is_on_ground` | Player is on the ground | +| `datalib:is_daytime` | Daytime (0–12000 ticks) | +| `datalib:is_raining` | It is raining | +| `datalib:is_thundering` | There is a thunderstorm | +| `datalib:in_overworld` | Player is in the Overworld | +| `datalib:in_nether` | Player is in the Nether | +| `datalib:in_end` | Player is in the End | + +Full reference: [Predicate Reference](../../wiki/Predicate-Reference) + +--- + +## 📦 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. + +```mcfunction +# 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.0 = 50000) +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`. + +```mcfunction +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 + +[![Issues](https://img.shields.io/github/issues/runtoolkit/DataLib-next?style=for-the-badge)](https://github.com/runtoolkit/DataLib-next/issues) +[![Discussions](https://img.shields.io/github/discussions/runtoolkit/DataLib-next?style=for-the-badge&logo=github&color=blue)](https://github.com/runtoolkit/DataLib-next/discussions) + +--- + +*dataLib v6.0.0 | MC Java 26.2 | Pure Datapack* diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 402dc3c..54f6f4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -122,6 +122,34 @@ jobs: retention-days: 14 if-no-files-found: error + build-mod: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v7 + - name: Repo lock + run: | + if [ "$GITHUB_REPOSITORY" != "runtoolkit/dataLib-next" ]; then + echo "::error::This workflow may only run in runtoolkit/dataLib-next." + exit 1 + fi + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '25' + - name: Make gradlew executable + run: cd dataLib-MOD && chmod +x gradlew + - name: Build Mod + run: cd dataLib-MOD && ./gradlew build --stacktrace + - name: Upload mod artifact + uses: actions/upload-artifact@v7 + with: + name: dataLib-mod + path: dataLib-MOD/build/libs/*.jar + retention-days: 14 + if-no-files-found: error + release: needs: build runs-on: ubuntu-latest @@ -184,7 +212,7 @@ jobs: # ────────────────────────────── summary: runs-on: ubuntu-latest - needs: [lint, build, release] + needs: [lint, build, build-mod, release] if: always() steps: - name: Generate Summary diff --git a/.gitignore b/.gitignore index 85daa02..0c9c0ba 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,7 @@ rad.json *.bclicense *.flf #Test results file -TestResults.xml \ No newline at end of file +TestResults.xml +dataLib-MOD/.gradle +dataLib-MOD/build +dataLib-MOD/run \ No newline at end of file diff --git a/NOTICE.sh b/NOTICE.sh new file mode 100644 index 0000000..6c07672 --- /dev/null +++ b/NOTICE.sh @@ -0,0 +1,117 @@ +#!/bin/bash + +clear +cat << 'EOF' +NOTICE — dataLib-next + +Copyright (c) 2024-2026 Legends11 / runtoolkit + +Licensed under the MIT License (see LICENSE). This NOTICE file imposes +additional usage terms regarding AI/ML training, CI/CD and development +container infrastructure abuse, and security exploitation. These terms +apply in addition to, and do not replace, the MIT License's copyright and +permission-notice requirement. + +Source repository: https://github.com/runtoolkit/dataLib-next + +--- + +AI / Machine Learning Restrictions + +You MAY NOT: + +* Use this work, in whole or in part, for training, fine-tuning, + benchmarking, evaluating, testing, or improving artificial intelligence, + machine learning, large language models, code-generation systems, or + similar automated systems without prior written permission from the + copyright holder +* Include this work in datasets, corpora, archives, mirrors, repositories, + or collections intended for AI/ML development, research, or commercial + use without prior written permission from the copyright holder +* Generate synthetic datasets, embeddings, model weights, or derivative + training materials from this work without prior written permission from + the copyright holder +* Use this work for automated code harvesting, large-scale data collection, + model distillation, retrieval augmentation, data/training-set poisoning, + prompt injection against AI coding assistants, or similar AI-related + purposes without prior written permission from the copyright holder + +CI/CD and Development Container Restrictions + +This repository ships GitHub Actions workflows (.github/workflows/) and a +development container configuration (.devcontainer/devcontainer.json) whose +onCreateCommand automatically runs .devcontainer/setup.sh whenever a +GitHub Codespace is created from this repository. You MAY NOT: + +* Abuse, exploit, overload, or otherwise misuse any GitHub Actions + workflows, CI/CD infrastructure, automated services, runners, caches, + artifacts, packages, or repository resources associated with this project +* Abuse, exploit, overload, or otherwise misuse GitHub Codespaces, the + devcontainer.json configuration, its onCreateCommand/setup.sh + provisioning step, development containers, storage, networking + resources, or any cloud-based development environment associated with + this project +* Use this project's GitHub Actions workflows, Codespaces environment, + devcontainer.json configuration, or derivative configurations for + cryptocurrency mining, botnet activity, spam, automated abuse, resource + farming, unauthorized scanning, stress testing, resource exhaustion, or + similar activities +* Modify, redistribute, or deploy the provided devcontainer.json or + setup.sh script for the purpose of bypassing platform limits, consuming + excessive resources, evading service restrictions, or conducting abusive + activities +* Use the provided devcontainer.json, development container environment, + or derivative configurations for any purpose other than legitimate + development, testing, maintenance, or contribution to this project +* Circumvent, disable, interfere with, or attempt to bypass repository + protections, workflow limitations, usage quotas, security controls, or + platform restrictions + +Security and Vulnerability Restrictions + +You MAY NOT: + +* Use this work or derivative works to perform, facilitate, encourage, or + support denial-of-service (DoS), distributed denial-of-service (DDoS), + chat/tellraw flood ("chat DDoS"), packet flooding, traffic flooding, + service disruption, or resource exhaustion attacks against any server, + network, or player +* Introduce or exploit shell injection, command injection, remote code + execution, deserialization, or similar injection vulnerabilities in this + work, in any tooling that consumes it (including the build pipeline and + CI scripts in scripts/), or in any system this work interacts with +* Use, weaponize, distribute, demonstrate, facilitate, or automate the + exploitation of zero-day or known-but-unpatched vulnerabilities in + Minecraft, Minecraft servers, Minecraft plugins, Minecraft mods, or + related tooling — including but not limited to vulnerabilities of the + same class as Log4Shell (CVE-2021-44228) or similar remote-code-execution + flaws in server-side logging, networking, or dependency libraries +* Use this work to conduct unauthorized access attempts, credential + attacks, phishing campaigns, spam operations, botnet activity, malicious + automation, or similar abusive behavior +* Use this work in any manner intended to disrupt, damage, degrade, + interfere with, or negatively impact systems, networks, infrastructure, + services, repositories, or users +* Introduce malware, backdoors, spyware, unauthorized telemetry, + destructive code, exploits, or other harmful functionality into this + work or derivative works + +General + +* Removing, obscuring, altering, or falsifying copyright or authorship + information does not relieve you of the obligations in this NOTICE +* The copyright holder reserves the right to deny permission for uses that + conflict with the intended purpose of this project, community safety, + infrastructure integrity, security, or fair and responsible use +EOF + +echo "" +echo "Press 'q' to exit." + +while true; do + read -n 1 -s key + if [[ "$key" == "q" ]]; then + clear + break + fi +done \ No newline at end of file diff --git a/dataLib-DP/data/datalib.main/function/datalib/load.mcfunction b/dataLib-DP/data/datalib.main/function/datalib/load.mcfunction index 272c6f2..1b1e17a 100644 --- a/dataLib-DP/data/datalib.main/function/datalib/load.mcfunction +++ b/dataLib-DP/data/datalib.main/function/datalib/load.mcfunction @@ -2,5 +2,5 @@ execute if data storage datalib:engine {global:{loaded:1b}} run return 0 -scoreboard objectives add dl.reload dummy -function #load:_private/load \ No newline at end of file +scoreboard objectives add dl.reload trigger +function #load:_private/load diff --git a/dataLib-DP/data/datalib/function/api/dialog/notify_admins.mcfunction b/dataLib-DP/data/datalib/function/api/dialog/notify_admins.mcfunction index 3f3499a..760c133 100644 --- a/dataLib-DP/data/datalib/function/api/dialog/notify_admins.mcfunction +++ b/dataLib-DP/data/datalib/function/api/dialog/notify_admins.mcfunction @@ -5,7 +5,7 @@ # Must be called AFTER the dialog_opened tag has been set on @s. # Both api/dialog/open and api/dialog/show call this after tag assignment. # -# BUGFIX v6.0.1: guard now also checks that dialog.DIALOG.title exists in +# BUGFIX v6.0.0: guard now also checks that dialog.DIALOG.title exists in # storage so that the admin message includes meaningful dialog info rather # than falling through with a generic "opened a dialog" when no dialog # context is set. diff --git a/dataLib-DP/data/datalib/function/api/dialog/show_macro.mcfunction b/dataLib-DP/data/datalib/function/api/dialog/show_macro.mcfunction index 54b8313..fbd25cd 100644 --- a/dataLib-DP/data/datalib/function/api/dialog/show_macro.mcfunction +++ b/dataLib-DP/data/datalib/function/api/dialog/show_macro.mcfunction @@ -7,7 +7,7 @@ # data modify storage datalib:engine dialog.DATA set value '{...}' # function datalib:api/dialog/show_macro # -# BUGFIX v6.0.1: this file was missing from the base overlay entirely. +# BUGFIX v6.0.0: this file was missing from the base overlay entirely. # Without it, any pack calling datalib:api/dialog/show_macro on 1.20.3–1.21.5 # would get a "function not found" error instead of a clean version warning. diff --git a/dataLib-DP/data/dl_load/function/core/internal/load/cleanup.mcfunction b/dataLib-DP/data/dl_load/function/core/internal/load/cleanup.mcfunction index 3e75936..652f298 100644 --- a/dataLib-DP/data/dl_load/function/core/internal/load/cleanup.mcfunction +++ b/dataLib-DP/data/dl_load/function/core/internal/load/cleanup.mcfunction @@ -10,6 +10,11 @@ scoreboard players reset $tick dl.tmp scoreboard players reset $pq_depth dl.tmp # $epoch intentionally preserved — cooldown expiry times depend on it +data remove storage datalib:input cmd +data remove storage datalib:input func +data remove storage datalib:input list +data remove storage datalib:input player +data remove storage datalib:input target data remove storage datalib:engine queue data remove storage datalib:engine events data remove storage datalib:engine event_context @@ -135,7 +140,8 @@ data remove storage datalib:engine color._names data remove storage datalib:engine fork_warn data remove storage datalib:engine fork_warn_tick -# BUGFIX v6.0.1: datalib.meta scoreboard (used by _rt_origin watermark check) +# BUGFIX v6.0.0: datalib.meta scoreboard (used by _rt_origin watermark check) # was never removed on disable/cleanup, causing scoreboard pollution across reloads. scoreboard objectives remove dl.perm_level -scoreboard objectives remove datalib.meta \ No newline at end of file +scoreboard objectives remove datalib.meta +tag @s remove datalib.loadFail diff --git a/dataLib-DP/data/dl_load/function/core/internal/load/fork_warn.mcfunction b/dataLib-DP/data/dl_load/function/core/internal/load/fork_warn.mcfunction index edbaf2b..14637cd 100644 --- a/dataLib-DP/data/dl_load/function/core/internal/load/fork_warn.mcfunction +++ b/dataLib-DP/data/dl_load/function/core/internal/load/fork_warn.mcfunction @@ -31,5 +31,3 @@ tellraw @a[tag=datalib.admin] ["",{"text":" ","color":"#555555"},{"text":"[v # ── Log system entry ────────────────────────────────────────────── data modify storage datalib:engine _log_warn_tmp set value {message:"[Load] fork_warn — rt_origin_verified not set, possible modified fork"} function datalib:systems/log/warn with storage datalib:engine _log_warn_tmp - -tag @s add datalib.loadFail \ No newline at end of file diff --git a/dataLib-DP/data/dl_load/function/core/internal/load/validate.mcfunction b/dataLib-DP/data/dl_load/function/core/internal/load/validate.mcfunction index 77edd69..8f61da6 100644 --- a/dataLib-DP/data/dl_load/function/core/internal/load/validate.mcfunction +++ b/dataLib-DP/data/dl_load/function/core/internal/load/validate.mcfunction @@ -21,6 +21,7 @@ execute if score #dl.ver_set dl.pre_version matches 1 run execute unless score # execute if score #dl.ver_set dl.pre_version matches 1 run execute unless score #dl.patch dl.pre_version matches 0 run scoreboard players set #dl.mismatch dl.pre_version 1 execute if score #dl.ver_set dl.pre_version matches 1 run execute if score #dl.pre dl.pre_version matches 1.. run scoreboard players set #dl.mismatch dl.pre_version 1 execute if score #dl.mismatch dl.pre_version matches 1 run function dl_load:core/internal/load/version_warn +execute if score #dl.mismatch dl.pre_version matches 1 run tag @s add datalib.loadFail execute if score #dl.mismatch dl.pre_version matches 1 run return 0 # ── Fork detection ─────────────────────────────────────────────── diff --git a/dataLib-DP/data/dl_load/function/core/internal/load/version_warn.mcfunction b/dataLib-DP/data/dl_load/function/core/internal/load/version_warn.mcfunction index 6981853..69a85d8 100644 --- a/dataLib-DP/data/dl_load/function/core/internal/load/version_warn.mcfunction +++ b/dataLib-DP/data/dl_load/function/core/internal/load/version_warn.mcfunction @@ -10,4 +10,4 @@ tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true} data modify storage datalib:engine _log_error_tmp set value {message:"[Load] version_warn — version mismatch, load aborted"} function datalib:systems/log/error with storage datalib:engine _log_error_tmp -tag @s add datalib.loadFail \ No newline at end of file +return run tag @s add datalib.loadFail diff --git a/dataLib-DP/data/dl_load/function/reload/main.mcfunction b/dataLib-DP/data/dl_load/function/reload/main.mcfunction index 6e86b2a..9753b01 100644 --- a/dataLib-DP/data/dl_load/function/reload/main.mcfunction +++ b/dataLib-DP/data/dl_load/function/reload/main.mcfunction @@ -1,6 +1,9 @@ tellraw @s [{"text":"[DL]","color":"#ffe600","extra":[" "]},{"text":"Reloading..."}] +#> Reload reload function dl_load:load/all -tellraw @s [{"text":"[DL]","color":"#ffe600","extra":[" "]},{"text":"Engine reloaded successfully.","color":"green"}] \ No newline at end of file +#>Feedback +tag @s remove datalib.loadFail +tellraw @s [{"text":"[DL]","color":"#ffe600","extra":[" "]},{"text":"Engine reloaded successfully.","color":"green"}] diff --git a/dataLib-DP/data/minecraft/tags/function/load.json b/dataLib-DP/data/minecraft/tags/function/load.json index 8bd6102..16948d1 100644 --- a/dataLib-DP/data/minecraft/tags/function/load.json +++ b/dataLib-DP/data/minecraft/tags/function/load.json @@ -1,5 +1,5 @@ { "values": [ - "#load:_private/load" + "datalib.main:datalib/load" ] } diff --git a/dataLib-MOD/build.gradle b/dataLib-MOD/build.gradle new file mode 100644 index 0000000..01594af --- /dev/null +++ b/dataLib-MOD/build.gradle @@ -0,0 +1,84 @@ +plugins { + id 'net.fabricmc.fabric-loom' version "${loom_version}" + id 'maven-publish' +} + +version = project.mod_version +group = project.maven_group + +repositories { + // Add repositories to retrieve artifacts from in here. + // You should only use this when depending on other mods because + // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html + // for more information about repositories. +} + +loom { + splitEnvironmentSourceSets() + + mods { + "datalib" { + sourceSet sourceSets.main + sourceSet sourceSets.client + } + } +} + +dependencies { + // To change the versions see the gradle.properties file + minecraft "com.mojang:minecraft:${project.minecraft_version}" + implementation "net.fabricmc:fabric-loader:${project.loader_version}" + + // Fabric API. This is technically optional, but you probably want it anyway. + implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}" +} + +processResources { + def version = project.version + inputs.property "version", version + + filesMatching("fabric.mod.json") { + expand "version": version + } +} + +tasks.withType(JavaCompile).configureEach { + it.options.release = 25 +} + +java { + // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task + // if it is present. + // If you remove this line, sources will not be generated. + withSourcesJar() + + sourceCompatibility = JavaVersion.VERSION_25 + targetCompatibility = JavaVersion.VERSION_25 +} + +jar { + def projectName = project.name + inputs.property "projectName", projectName + + from("LICENSE") { + rename { "${it}_$projectName"} + } +} + +// configure the maven publication +publishing { + publications { + create("mavenJava", MavenPublication) { + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + // Notice: This block does NOT have the same function as the block in the top level. + // The repositories here will be used for publishing your artifact, not for + // retrieving dependencies. + } +} diff --git a/dataLib-MOD/gradle.properties b/dataLib-MOD/gradle.properties new file mode 100644 index 0000000..0d5a36d --- /dev/null +++ b/dataLib-MOD/gradle.properties @@ -0,0 +1,19 @@ +# Done to increase the memory available to gradle. +org.gradle.jvmargs=-Xmx1G +org.gradle.parallel=true + +# IntelliJ IDEA is not yet fully compatible with configuration cache, see: https://github.com/FabricMC/fabric-loom/issues/1349 +org.gradle.configuration-cache=false + +# Fabric Properties +# check these on https://fabricmc.net/develop +minecraft_version=26.2 +loader_version=0.19.3 +loom_version=1.17-SNAPSHOT + +# Mod Properties +mod_version=6.0.0+mod +maven_group=net.datalib + +# Dependencies +fabric_api_version=0.154.0+26.2 diff --git a/dataLib-MOD/gradle/wrapper/gradle-wrapper.jar b/dataLib-MOD/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..b1b8ef5 Binary files /dev/null and b/dataLib-MOD/gradle/wrapper/gradle-wrapper.jar differ diff --git a/dataLib-MOD/gradle/wrapper/gradle-wrapper.properties b/dataLib-MOD/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..df6a6ad --- /dev/null +++ b/dataLib-MOD/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,9 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip +networkTimeout=10000 +retries=0 +retryBackOffMs=500 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/dataLib-MOD/gradlew b/dataLib-MOD/gradlew new file mode 100755 index 0000000..b9bb139 --- /dev/null +++ b/dataLib-MOD/gradlew @@ -0,0 +1,248 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/dataLib-MOD/gradlew.bat b/dataLib-MOD/gradlew.bat new file mode 100644 index 0000000..aa5f10b --- /dev/null +++ b/dataLib-MOD/gradlew.bat @@ -0,0 +1,82 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel + +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/dataLib-MOD/settings.gradle b/dataLib-MOD/settings.gradle new file mode 100644 index 0000000..6b1a385 --- /dev/null +++ b/dataLib-MOD/settings.gradle @@ -0,0 +1,12 @@ +pluginManagement { + repositories { + maven { + name = 'Fabric' + url = 'https://maven.fabricmc.net/' + } + mavenCentral() + gradlePluginPortal() + } +} + +rootProject.name = 'datalib' diff --git a/dataLib-MOD/src/main/java/net/datalib/Main.java b/dataLib-MOD/src/main/java/net/datalib/Main.java new file mode 100644 index 0000000..d498868 --- /dev/null +++ b/dataLib-MOD/src/main/java/net/datalib/Main.java @@ -0,0 +1,97 @@ +package net.datalib; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.resource.ResourceManagerHelper; +import net.fabricmc.fabric.api.resource.SimpleResourceReloadListener; +import net.minecraft.resources.Identifier; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.resources.ResourceManager; + +import java.io.BufferedReader; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; + +public class Main implements ModInitializer { + + public static final String MOD_ID = "datalib"; + private static final Gson GSON = new Gson(); + + public static final Map REGISTERED_FLAGS = new HashMap<>(); + + @Override + public void onInitialize() { + ResourceManagerHelper.get(PackType.SERVER_DATA) + .registerReloadListener(new FlagReloadListener()); + } + + private static class FlagReloadListener + implements SimpleResourceReloadListener> { + + @Override + public Identifier getFabricId() { + return Identifier.fromNamespaceAndPath(MOD_ID, "feature_flag_reload"); + } + + @Override + public CompletableFuture> load( + ResourceManager manager, + Executor executor + ) { + return CompletableFuture.supplyAsync(() -> { + + Map loaded = new HashMap<>(); + + manager.listResources( + "data_packs", + id -> id.getPath().endsWith(".json") + ).forEach((id, resource) -> { + + try (BufferedReader reader = resource.openAsReader()) { + + JsonObject json = GSON.fromJson(reader, JsonObject.class); + + if (json == null) { + return; + } + + if (!json.has("flag_name") || !json.has("enabled")) { + return; + } + + Identifier flagId = Identifier.fromNamespaceAndPath( + id.getNamespace(), + json.get("flag_name").getAsString() + ); + + loaded.put( + flagId, + json.get("enabled").getAsBoolean() + ); + + } catch (Exception e) { + e.printStackTrace(); + } + }); + + return loaded; + + }, executor); + } + + @Override + public CompletableFuture apply( + Map data, + ResourceManager manager, + Executor executor + ) { + return CompletableFuture.runAsync(() -> { + REGISTERED_FLAGS.clear(); + REGISTERED_FLAGS.putAll(data); + }, executor); + } + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/assets/datalib/sounds.json b/dataLib-MOD/src/main/resources/assets/datalib/sounds.json new file mode 100644 index 0000000..aa64aa5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/assets/datalib/sounds.json @@ -0,0 +1,50 @@ +{ + "datalib.load.success": { + "sounds": [ + { "name": "datalib:load_success", "volume": 0.6, "pitch": 1.0 } + ], + "subtitle": "datalib.subtitle.load_success" + }, + + "datalib.ui.confirm": { + "sounds": [ + { "name": "datalib:ui_confirm", "volume": 0.5, "pitch": 1.0 } + ], + "subtitle": "datalib.subtitle.confirm" + }, + + "datalib.ui.error": { + "sounds": [ + { "name": "datalib:ui_error", "volume": 0.7, "pitch": 1.0 } + ], + "subtitle": "datalib.subtitle.error" + }, + + "datalib.ui.freeze": { + "sounds": [ + { "name": "datalib:ui_freeze", "volume": 0.9, "pitch": 1.0 } + ], + "subtitle": "datalib.subtitle.freeze" + }, + + "datalib.ui.unfreeze": { + "sounds": [ + { "name": "datalib:ui_unfreeze", "volume": 0.7, "pitch": 1.0 } + ], + "subtitle": "datalib.subtitle.unfreeze" + }, + + "datalib.perm.denied": { + "sounds": [ + { "name": "datalib:perm_denied", "volume": 0.6, "pitch": 1.0 } + ], + "subtitle": "datalib.subtitle.perm_denied" + }, + + "datalib.perm.granted": { + "sounds": [ + { "name": "datalib:perm_granted", "volume": 0.5, "pitch": 1.0 } + ], + "subtitle": "datalib.subtitle.perm_granted" + } +} diff --git a/dataLib-MOD/src/main/resources/assets/datalib/sounds/load_success.ogg b/dataLib-MOD/src/main/resources/assets/datalib/sounds/load_success.ogg new file mode 100644 index 0000000..8c3a3c4 Binary files /dev/null and b/dataLib-MOD/src/main/resources/assets/datalib/sounds/load_success.ogg differ diff --git a/dataLib-MOD/src/main/resources/assets/datalib/sounds/perm_denied.ogg b/dataLib-MOD/src/main/resources/assets/datalib/sounds/perm_denied.ogg new file mode 100644 index 0000000..7b1d204 Binary files /dev/null and b/dataLib-MOD/src/main/resources/assets/datalib/sounds/perm_denied.ogg differ diff --git a/dataLib-MOD/src/main/resources/assets/datalib/sounds/perm_granted.ogg b/dataLib-MOD/src/main/resources/assets/datalib/sounds/perm_granted.ogg new file mode 100644 index 0000000..3f622cb Binary files /dev/null and b/dataLib-MOD/src/main/resources/assets/datalib/sounds/perm_granted.ogg differ diff --git a/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_confirm.ogg b/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_confirm.ogg new file mode 100644 index 0000000..f7974ae Binary files /dev/null and b/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_confirm.ogg differ diff --git a/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_error.ogg b/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_error.ogg new file mode 100644 index 0000000..b233ea9 Binary files /dev/null and b/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_error.ogg differ diff --git a/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_freeze.ogg b/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_freeze.ogg new file mode 100644 index 0000000..bd99d9d Binary files /dev/null and b/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_freeze.ogg differ diff --git a/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_unfreeze.ogg b/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_unfreeze.ogg new file mode 100644 index 0000000..d855048 Binary files /dev/null and b/dataLib-MOD/src/main/resources/assets/datalib/sounds/ui_unfreeze.ogg differ diff --git a/dataLib-MOD/src/main/resources/assets/minecraft/lang/de_de.json b/dataLib-MOD/src/main/resources/assets/minecraft/lang/de_de.json new file mode 100644 index 0000000..8b9a5b2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/assets/minecraft/lang/de_de.json @@ -0,0 +1,26 @@ +{ + "_comment": "dataLib — Deutsch (de_de) \u00dcbersetzungen", + + "datalib.msg.permission_denied": "Zugriff verweigert.", + "datalib.msg.no_perm": "%s — Sie haben diese Berechtigung nicht.", + "datalib.msg.sandbox_blocked": "Befehl im Sandbox-Modus blockiert.", + "datalib.msg.freeze": "eingefroren", + "datalib.msg.unfreeze": "aufgetaut", + "datalib.msg.load.complete": "geladen.", + "datalib.msg.feature_requires_1215": "Diese Funktion erfordert Minecraft 1.21.5 oder h\u00f6her.", + "datalib.msg.feature_requires_1216": "Diese Funktion erfordert Minecraft 1.21.6 oder h\u00f6her.", + "datalib.msg.safe_load.cancelled": "safe_load abgebrochen. Speicher unver\u00e4ndert.", + "datalib.msg.safe_load.denied.admin": "safe_load/yes verweigert — datalib.admin-Tag erforderlich.", + "datalib.msg.safe_load.denied.perm": "safe_load/yes verweigert — dl.perm_level \u2265 4 erforderlich.", + "datalib.msg.safe_load.denied.loaded":"safe_load/yes verweigert — Engine bereits geladen.", + "datalib.msg.version_conflict": "Versionskonflikt! Erwartet v6.0.0 \u2014 gespeicherte Werte stimmen nicht \u00fcberein.", + "datalib.msg.version_reload": "\u2192 F\u00fchren Sie /reload aus, um dataLib neu zu initialisieren.", + + "datalib.subtitle.load_success": "dataLib geladen", + "datalib.subtitle.confirm": "Aktion best\u00e4tigt", + "datalib.subtitle.error": "Fehler", + "datalib.subtitle.freeze": "Spieler eingefroren", + "datalib.subtitle.unfreeze": "Spieler aufgetaut", + "datalib.subtitle.perm_denied": "Zugriff verweigert", + "datalib.subtitle.perm_granted": "Berechtigung erteilt" +} diff --git a/dataLib-MOD/src/main/resources/assets/minecraft/lang/en_us.json b/dataLib-MOD/src/main/resources/assets/minecraft/lang/en_us.json new file mode 100644 index 0000000..bcec2ad --- /dev/null +++ b/dataLib-MOD/src/main/resources/assets/minecraft/lang/en_us.json @@ -0,0 +1,26 @@ +{ + "_comment": "dataLib — English (en_us) translations", + + "datalib.msg.permission_denied": "Permission denied.", + "datalib.msg.no_perm": "%s — you don't have this permission.", + "datalib.msg.sandbox_blocked": "Command blocked in sandbox mode.", + "datalib.msg.freeze": "frozen", + "datalib.msg.unfreeze": "thawed", + "datalib.msg.load.complete": "loaded.", + "datalib.msg.feature_requires_1215": "This feature requires Minecraft 1.21.5 or higher.", + "datalib.msg.feature_requires_1216": "This feature requires Minecraft 1.21.6 or higher.", + "datalib.msg.safe_load.cancelled": "safe_load cancelled. Storage untouched.", + "datalib.msg.safe_load.denied.admin": "safe_load/yes denied — datalib.admin tag required.", + "datalib.msg.safe_load.denied.perm": "safe_load/yes denied — dl.perm_level \u2265 4 required.", + "datalib.msg.safe_load.denied.loaded":"safe_load/yes denied — engine is already loaded.", + "datalib.msg.version_conflict": "Version conflict! Expected v6.0.0 \u2014 stored scores do not match.", + "datalib.msg.version_reload": "\u2192 Run /reload to reinitialize dataLib.", + + "datalib.subtitle.load_success": "dataLib loaded", + "datalib.subtitle.confirm": "Action confirmed", + "datalib.subtitle.error": "Error", + "datalib.subtitle.freeze": "Player frozen", + "datalib.subtitle.unfreeze": "Player thawed", + "datalib.subtitle.perm_denied": "Permission denied", + "datalib.subtitle.perm_granted": "Permission granted" +} diff --git a/dataLib-MOD/src/main/resources/data/datalib.main/advancement/datalib/datalib.json b/dataLib-MOD/src/main/resources/data/datalib.main/advancement/datalib/datalib.json new file mode 100644 index 0000000..10a2135 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib.main/advancement/datalib/datalib.json @@ -0,0 +1,17 @@ +{ + "display": { + "title": "dataLib", + "description": "dataLib", + "icon": { + "id": "minecraft:command_block" + }, + "show_toast": false, + "announce_to_chat": false + }, + "parent": "global:datalib.main", + "criteria": { + "trigger": { + "trigger": "minecraft:tick" + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/datalib.main/function/datalib/load.mcfunction b/dataLib-MOD/src/main/resources/data/datalib.main/function/datalib/load.mcfunction new file mode 100644 index 0000000..1b1e17a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib.main/function/datalib/load.mcfunction @@ -0,0 +1,6 @@ +#> This function will run on datapack loading + +execute if data storage datalib:engine {global:{loaded:1b}} run return 0 + +scoreboard objectives add dl.reload trigger +function #load:_private/load diff --git a/dataLib-MOD/src/main/resources/data/datalib.main/function/datalib/tick.mcfunction b/dataLib-MOD/src/main/resources/data/datalib.main/function/datalib/tick.mcfunction new file mode 100644 index 0000000..dae1c4f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib.main/function/datalib/tick.mcfunction @@ -0,0 +1,8 @@ +#> This is the main function, that will run once per tick +execute run function datalib:core/tick +function #datalib:loop + +execute as @a[scores={dl.reload=1..}] at @s run function dl_load:reload/main +execute as @a[scores={dl.reload=1..}] at @s run scoreboard players set @s dl.reload 0 +execute if entity @s[tag=datalib.loadFail] run scoreboard players enable @s dl.reload +execute unless entity @s[tag=datalib.loadFail] run scoreboard players reset @s dl.reload \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/hidden/root.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/hidden/root.json new file mode 100644 index 0000000..70d7c70 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/hidden/root.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "trigger": { + "trigger": "minecraft:impossible" + } + }, + "display": { + "title": { "text": "" }, + "description": { "text": "" }, + "icon": { "id": "minecraft:barrier" }, + "frame": "task", + "show_toast": false, + "announce_to_chat": false, + "hidden": true + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/break_block.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/break_block.json new file mode 100644 index 0000000..48e285e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/break_block.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "tool_durability_lost": { + "trigger": "minecraft:item_durability_changed", + "conditions": { + "delta": { + "max": -1 + } + } + } + }, + "rewards": { + "function": "datalib:systems/hook/on_break_block" + }, + "parent": "datalib:hidden/root" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/dimension_change.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/dimension_change.json new file mode 100644 index 0000000..ac31e86 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/dimension_change.json @@ -0,0 +1,11 @@ +{ + "criteria": { + "changed_dimension": { + "trigger": "minecraft:changed_dimension" + } + }, + "rewards": { + "function": "datalib:systems/hook/on_dimension_change" + }, + "parent": "datalib:hidden/root" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/eat_food.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/eat_food.json new file mode 100644 index 0000000..ff5c428 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/eat_food.json @@ -0,0 +1,11 @@ +{ + "criteria": { + "trigger": { + "trigger": "minecraft:consume_item", + "conditions": {} + } + }, + "rewards": { + "function": "datalib:core/internal/systems/hook/on_eat" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/entity_kill.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/entity_kill.json new file mode 100644 index 0000000..be4d441 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/entity_kill.json @@ -0,0 +1,11 @@ +{ + "criteria": { + "killed_any_entity": { + "trigger": "minecraft:player_killed_entity" + } + }, + "rewards": { + "function": "datalib:systems/hook/on_entity_kill" + }, + "parent": "datalib:hidden/root" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/fish_caught.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/fish_caught.json new file mode 100644 index 0000000..fd98025 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/fish_caught.json @@ -0,0 +1,19 @@ +{ + "criteria": { + "trigger": { + "trigger": "minecraft:fishing_rod_hooked", + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": {} + } + ] + } + } + }, + "rewards": { + "function": "datalib:core/internal/systems/hook/on_fish_caught" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/hero_of_the_village.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/hero_of_the_village.json new file mode 100644 index 0000000..ae6545c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/hero_of_the_village.json @@ -0,0 +1,11 @@ +{ + "criteria": { + "hero_of_the_village": { + "trigger": "minecraft:hero_of_the_village" + } + }, + "rewards": { + "function": "datalib:systems/hook/on_hero_of_the_village" + }, + "parent": "datalib:hidden/root" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/interact_anvil.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/interact_anvil.json new file mode 100644 index 0000000..cdc74ec --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/interact_anvil.json @@ -0,0 +1,25 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:anvil" + ] + } + } + } + ] + } + } + }, + "rewards": { + "function": "datalib:systems/hook/on_interact_anvil" + }, + "parent": "datalib:hidden/root" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/interact_shulker_box.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/interact_shulker_box.json new file mode 100644 index 0000000..7a1a536 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/interact_shulker_box.json @@ -0,0 +1,41 @@ +{ + "criteria": { + "interact_shulker_box": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:shulker_box", + "minecraft:white_shulker_box", + "minecraft:orange_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:yellow_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:gray_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:cyan_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:green_shulker_box", + "minecraft:red_shulker_box", + "minecraft:black_shulker_box" + ] + } + } + } + ] + } + } + }, + "rewards": { + "function": "datalib:systems/hook/on_interact_shulker_box" + }, + "parent": "datalib:hidden/root" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/item_use.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/item_use.json new file mode 100644 index 0000000..78afd72 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/item_use.json @@ -0,0 +1,11 @@ +{ + "criteria": { + "used_any_item": { + "trigger": "minecraft:using_item" + } + }, + "rewards": { + "function": "datalib:systems/hook/on_item_use" + }, + "parent": "datalib:hidden/root" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/killed_by_arrow.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/killed_by_arrow.json new file mode 100644 index 0000000..8e7a759 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/killed_by_arrow.json @@ -0,0 +1,18 @@ +{ + "criteria": { + "killed_by_arrow": { + "trigger": "minecraft:entity_killed_player", + "conditions": { + "killing_blow": { + "direct_entity": { + "minecraft:entity_type": "minecraft:arrow" + } + } + } + } + }, + "rewards": { + "function": "datalib:systems/hook/on_killed_by_arrow" + }, + "parent": "datalib:hidden/root" +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/placed_block.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/placed_block.json new file mode 100644 index 0000000..86a3fed --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/placed_block.json @@ -0,0 +1,11 @@ +{ + "criteria": { + "placed_any_block": { + "trigger": "minecraft:placed_block" + } + }, + "rewards": { + "function": "datalib:systems/hook/on_placed_block" + }, + "parent": "datalib:hidden/root" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/trade.json b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/trade.json new file mode 100644 index 0000000..6f85ae5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/advancement/systems/hook/trade.json @@ -0,0 +1,11 @@ +{ + "criteria": { + "traded_with_villager": { + "trigger": "minecraft:villager_trade" + } + }, + "rewards": { + "function": "datalib:systems/hook/on_trade" + }, + "parent": "datalib:hidden/root" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/_rt_origin.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/_rt_origin.mcfunction new file mode 100644 index 0000000..150e691 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/_rt_origin.mcfunction @@ -0,0 +1,3 @@ +scoreboard players set #runtoolkit.watermark datalib.meta 1 +data modify storage datalib:engine global.rt_origin_verified set value 1b +execute if score #runtoolkit.watermark datalib.meta matches 1.. run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"⚠ SECURITY ALERT: ","color":"red","bold":true,"hover_event":{"action":"show_text","value":"A security anomaly or policy violation was detected by the core engine."}},{"text":"Please review the latest diagnostic logs immediately. Check the ","color":"#FFAA00"},{"text":"source code","color":"aqua","underlined":true,"click_event":{"action":"open_url","url":"https://github.com/runtoolkit/DataLib-next"},"hover_event":{"action":"show_text","value":"View repository on GitHub"}},{"text":", look at open ","color":"#FFAA00"},{"text":"issues","color":"yellow","underlined":true,"click_event":{"action":"open_url","url":"https://github.com/runtoolkit/DataLib-next/issues"},"hover_event":{"action":"show_text","value":"Report a bug or check security advisories"}},{"text":", inspect recent ","color":"#FFAA00"},{"text":"pull requests","color":"green","underlined":true,"click_event":{"action":"open_url","url":"https://github.com/runtoolkit/DataLib-next/pulls"},"hover_event":{"action":"show_text","value":"Review code contributions"}},{"text":", verify the latest ","color":"#FFAA00"},{"text":"releases","color":"gold","underlined":true,"click_event":{"action":"open_url","url":"https://github.com/runtoolkit/DataLib-next/releases"},"hover_event":{"action":"show_text","value":"View changelogs and versions"}},{"text":", or consult the official ","color":"#FFAA00"},{"text":"wiki documentation","color":"#AA00FF","underlined":true,"click_event":{"action":"open_url","url":"https://github.com/runtoolkit/DataLib-next/wiki"},"hover_event":{"action":"show_text","value":"Read the system documentation"}},{"text":" for security policies.","color":"#FFAA00"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/cancel.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/cancel.mcfunction new file mode 100644 index 0000000..00932a0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/cancel.mcfunction @@ -0,0 +1,16 @@ +# datalib:api/cb/cancel +# ───────────────────────────────────────────────────────────────── +# Clears all pending delayed CB commands from the queue. +# +# No input required. Clears the entire queue. +# +# SECURITY: caller must hold dl.perm_level >= security.cmd_min_level. +# +# EXAMPLE: +# function datalib:api/cb/cancel +# ───────────────────────────────────────────────────────────────── + +execute unless function datalib:core/security/cmd_gate run return 0 + +data remove storage datalib:engine cb_queue +data modify storage datalib:engine cb_queue set value [] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/list.mcfunction new file mode 100644 index 0000000..1634d8c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/list.mcfunction @@ -0,0 +1,12 @@ +# datalib:api/cb/list +# ───────────────────────────────────────────────────────────────── +# Prints pending queue entries to the executor. +# Shows each queued command and its remaining ticks. +# ───────────────────────────────────────────────────────────────── + +execute unless function datalib:core/security/cmd_gate run return 0 + +execute store result score #cb_queue_size dl.tmp run data get storage datalib:engine cb_queue +execute if score #cb_queue_size dl.tmp matches 0 run tellraw @s [{"text":"[DL/cb] ","color":"#00AAAA","bold":true},{"text":"Queue is empty","color":"gray"}] +execute unless score #cb_queue_size dl.tmp matches 0 run tellraw @s [{"text":"[DL/cb] Queue (","color":"#00AAAA","bold":true},{"score":{"name":"#cb_queue_size","objective":"dl.tmp"}},{"text":" entries):","color":"#00AAAA","bold":true}] +execute unless score #cb_queue_size dl.tmp matches 0 run tellraw @s {"nbt":"cb_queue","storage":"datalib:engine","interpret":false} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/queue_size.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/queue_size.mcfunction new file mode 100644 index 0000000..4191e8e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/queue_size.mcfunction @@ -0,0 +1,11 @@ +# datalib:api/cb/queue_size +# ───────────────────────────────────────────────────────────────── +# Returns the number of pending delayed CB commands. +# Result is stored in score #cb_queue_size dl.tmp. +# +# EXAMPLE: +# function datalib:api/cb/queue_size +# # read: scoreboard players get #cb_queue_size dl.tmp +# ───────────────────────────────────────────────────────────────── + +execute store result score #cb_queue_size dl.tmp run data get storage datalib:engine cb_queue diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/run.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/run.mcfunction new file mode 100644 index 0000000..022fa1f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/run.mcfunction @@ -0,0 +1,31 @@ +# datalib:api/cb/run +# ───────────────────────────────────────────────────────────────── +# Executes a raw command string via a temporary command block. +# Zero-delay variant: fires next tick, cleaned up 2t later. +# +# INPUT (storage datalib:input cb): +# cmd (string) — the command to run [REQUIRED] +# x (int) — CB block X [default: 0] +# y (int) — CB block Y [default: -64] +# z (int) — CB block Z [default: 0] +# +# SECURITY: caller must hold dl.perm_level >= security.cmd_min_level. +# +# EXAMPLE: +# data modify storage datalib:input cb set value {cmd:"say hello"} +# function datalib:api/cb/run +# ───────────────────────────────────────────────────────────────── + +# Security gate +execute unless function datalib:core/security/cmd_gate run return 0 + +# Verify required input +execute unless data storage datalib:input cb.cmd run tellraw @s [{"text":"[DL/cb] ","color":"#00AAAA","bold":true},{"text":"cb.cmd not set","color":"red"}] +execute unless data storage datalib:input cb.cmd run return 0 + +# Fill coordinate defaults +function datalib:core/internal/api/cb/apply_defaults + +# Execute +function datalib:core/internal/api/cb/exec with storage datalib:input cb +data remove storage datalib:input cb diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/run_delayed.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/run_delayed.mcfunction new file mode 100644 index 0000000..0c10e35 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/run_delayed.mcfunction @@ -0,0 +1,33 @@ +# datalib:api/cb/run_delayed +# ───────────────────────────────────────────────────────────────── +# Schedules a command string to execute via command block after a delay. +# +# INPUT (storage datalib:input cb): +# cmd (string) — the command to run [REQUIRED] +# delay (int) — delay in ticks [REQUIRED, min 1] +# x (int) — CB block X [default: 0] +# y (int) — CB block Y [default: -64] +# z (int) — CB block Z [default: 0] +# +# SECURITY: caller must hold dl.perm_level >= security.cmd_min_level. +# +# EXAMPLE: +# data modify storage datalib:input cb set value {cmd:"say delayed!",delay:40} +# function datalib:api/cb/run_delayed +# ───────────────────────────────────────────────────────────────── + +# Security gate +execute unless function datalib:core/security/cmd_gate run return 0 + +# Verify required inputs +execute unless data storage datalib:input cb.cmd run tellraw @s [{"text":"[DL/cb] ","color":"#00AAAA","bold":true},{"text":"cb.cmd not set","color":"red"}] +execute unless data storage datalib:input cb.cmd run return 0 +execute unless data storage datalib:input cb.delay run tellraw @s [{"text":"[DL/cb] ","color":"#00AAAA","bold":true},{"text":"cb.delay not set","color":"red"}] +execute unless data storage datalib:input cb.delay run return 0 + +# Fill coordinate defaults +function datalib:core/internal/api/cb/apply_defaults + +# Push to delay queue and schedule flush +function datalib:core/internal/systems/cb/queue_push with storage datalib:input cb +data remove storage datalib:input cb diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/run_sequence.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/run_sequence.mcfunction new file mode 100644 index 0000000..8a49bf7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cb/run_sequence.mcfunction @@ -0,0 +1,33 @@ +# datalib:api/cb/run_sequence +# ───────────────────────────────────────────────────────────────── +# Schedules a list of commands to run sequentially, each separated +# by a configurable interval. +# +# INPUT (storage datalib:input cb): +# cmds (list of strings) — commands to run [REQUIRED, min 1] +# interval (int) — ticks between each command [default: 2] +# x (int) — CB block X [default: 0] +# y (int) — CB block Y [default: -64] +# z (int) — CB block Z [default: 0] +# +# SECURITY: caller must hold dl.perm_level >= security.cmd_min_level. +# +# EXAMPLE: +# data modify storage datalib:input cb set value {cmds:["say one","say two","say three"],interval:20} +# function datalib:api/cb/run_sequence +# ───────────────────────────────────────────────────────────────── + +# Security gate +execute unless function datalib:core/security/cmd_gate run return 0 + +# Verify required input +execute unless data storage datalib:input cb.cmds[0] run tellraw @s [{"text":"[DL/cb] ","color":"#00AAAA","bold":true},{"text":"cb.cmds is empty or not set","color":"red"}] +execute unless data storage datalib:input cb.cmds[0] run return 0 + +# Fill defaults +function datalib:core/internal/api/cb/apply_defaults +execute unless data storage datalib:input cb.interval run data modify storage datalib:input cb.interval set value 2 + +# Expand cmds list into individual delayed queue entries +function datalib:core/internal/systems/cb/seq_expand +data remove storage datalib:input cb diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/actionbar.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/actionbar.mcfunction new file mode 100644 index 0000000..70dfe91 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/actionbar.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run title @s actionbar {"text":"$(text)","color":"$(color)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/actionbar ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/advancement_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/advancement_check.mcfunction new file mode 100644 index 0000000..4e3c127 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/advancement_check.mcfunction @@ -0,0 +1,5 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +data modify storage datalib:output result set value 0b +$execute if entity @a[name=$(player),limit=1,advancements={$(advancement)=true}] run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/advancement_check ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(advancement)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/advancement_grant.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/advancement_grant.mcfunction new file mode 100644 index 0000000..7e12f6b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/advancement_grant.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$advancement grant @a[name=$(player),limit=1] only $(advancement) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/advancement_grant ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(advancement)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/advancement_revoke.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/advancement_revoke.mcfunction new file mode 100644 index 0000000..e89222e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/advancement_revoke.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$advancement revoke @a[name=$(player),limit=1] only $(advancement) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/advancement_revoke ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(advancement)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/as_player.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/as_player.mcfunction new file mode 100644 index 0000000..1889c77 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/as_player.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run $(cmd) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/as_player ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(cmd)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_add_modifier.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_add_modifier.mcfunction new file mode 100644 index 0000000..422a321 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_add_modifier.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$attribute @a[name=$(player),limit=1] $(attribute) modifier add $(id) $(amount) $(operation) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/attribute_add_modifier ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(id)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_get.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_get.mcfunction new file mode 100644 index 0000000..45df2cc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_get.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute store result storage datalib:output result double 1 run attribute @a[name=$(player),limit=1] $(attribute) get +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/attribute_get ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_get_modifier.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_get_modifier.mcfunction new file mode 100644 index 0000000..998d5a5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_get_modifier.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute store result storage datalib:output result double 1 run attribute @a[name=$(player),limit=1] $(attribute) modifier value get $(id) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/attribute_get_modifier ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(id)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_remove_modifier.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_remove_modifier.mcfunction new file mode 100644 index 0000000..63dc59b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_remove_modifier.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$attribute @a[name=$(player),limit=1] $(attribute) modifier remove $(id) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/attribute_remove_modifier ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(id)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_set.mcfunction new file mode 100644 index 0000000..fdad730 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/attribute_set.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] run attribute @s $(attribute) base set $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/attribute_set ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(value)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_add.mcfunction new file mode 100644 index 0000000..0447727 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_add.mcfunction @@ -0,0 +1,5 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$bossbar add $(id) {"text":"$(text)"} +$bossbar set $(id) color $(color) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/bossbar_add ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(id)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_remove.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_remove.mcfunction new file mode 100644 index 0000000..1303f41 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_remove.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$bossbar remove $(id) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/bossbar_remove ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(id)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_set_max.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_set_max.mcfunction new file mode 100644 index 0000000..09436b5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_set_max.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$bossbar set $(id) max $(max) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/bossbar_set_max ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(id)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_set_players.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_set_players.mcfunction new file mode 100644 index 0000000..60590c6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_set_players.mcfunction @@ -0,0 +1,3 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$bossbar set $(id) players $(players)$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/bossbar_set_players ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(id)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_set_value.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_set_value.mcfunction new file mode 100644 index 0000000..934c716 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/bossbar_set_value.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$bossbar set $(id) value $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/bossbar_set_value ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(id)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clear.mcfunction new file mode 100644 index 0000000..b2eaddd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clear.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "clear" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 +execute unless data storage datalib:engine {sandbox:1b} run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"TIP ","color":"yellow","bold":true},{"text":"Sandbox mode recommended → ","color":"gray"},{"text":"/data modify storage datalib:engine sandbox set value 1b","color":"aqua"}] +$execute as @a[name=$(player),limit=1] at @s run clear @s +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/clear ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clear_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clear_item.mcfunction new file mode 100644 index 0000000..96fac18 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clear_item.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run clear @s $(item) $(count) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/clear_item ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(item)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clone.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clone.mcfunction new file mode 100644 index 0000000..5cf70dd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clone.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "clone" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$clone $(x1) $(y1) $(z1) $(x2) $(y2) $(z2) $(dx) $(dy) $(dz) +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/clone ","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clone_masked.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clone_masked.mcfunction new file mode 100644 index 0000000..0295cba --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/clone_masked.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "clone_masked" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$clone $(x1) $(y1) $(z1) $(x2) $(y2) $(z2) $(dx) $(dy) $(dz) masked +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/clone_masked ","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/console_me.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/console_me.mcfunction new file mode 100644 index 0000000..c9ca5b0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/console_me.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/console_me [REMOVED] +# +# The /me command produces shell-script-like execution behavior, +# and intent detection is not reliably possible, so this function has been removed. +# See: SECURITY.md — "Intent Detection" section. +# +# Alternative: datalib:systems/log/info or datalib:api/cmd/msg +# ───────────────────────────────────────────────────────────────── +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/console_say.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/console_say.mcfunction new file mode 100644 index 0000000..e42e603 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/console_say.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/console_say [REMOVED] +# +# /say sends a server-level message to all players; +# it produces shell-script-like execution behavior and intent +# detection is not reliably possible, so this function has been removed. +# See: SECURITY.md — "Intent Detection" section. +# +# Alternative: datalib:systems/string/announce +# ───────────────────────────────────────────────────────────────── +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/damage.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/damage.mcfunction new file mode 100644 index 0000000..884d5a5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/damage.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +$execute as @a[name=$(player),limit=1] at @s run damage @s $(amount) $(type) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/damage ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/damage_typed.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/damage_typed.mcfunction new file mode 100644 index 0000000..70b28e4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/damage_typed.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +$damage @a[name=$(player),limit=1] $(amount) $(damage_type) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/damage_typed ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(amount)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/data_remove_block.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/data_remove_block.mcfunction new file mode 100644 index 0000000..0debe50 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/data_remove_block.mcfunction @@ -0,0 +1,15 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "data_remove_block" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$data remove block $(x) $(y) $(z) $(path) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/data_remove_block ","color":"aqua"},{"text":"$(x) $(y) $(z) → $(path)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/data_remove_entity.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/data_remove_entity.mcfunction new file mode 100644 index 0000000..0dec28e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/data_remove_entity.mcfunction @@ -0,0 +1,15 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "data_remove_entity" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$data remove entity $(target) $(path) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/data_remove_entity ","color":"aqua"},{"text":"$(target) → $(path)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/data_remove_storage.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/data_remove_storage.mcfunction new file mode 100644 index 0000000..3fd5e3f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/data_remove_storage.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +$data remove storage $(storage) $(path) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/data_remove_storage ","color":"aqua"},{"text":"$(storage) → $(path)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/deop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/deop.mcfunction new file mode 100644 index 0000000..52ebd9d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/deop.mcfunction @@ -0,0 +1,15 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "deop" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 +execute unless data storage datalib:engine {sandbox:1b} run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"TIP ","color":"yellow","bold":true},{"text":"Sandbox mode recommended → ","color":"gray"},{"text":"/data modify storage datalib:engine sandbox set value 1b","color":"aqua"}] +$deop $(player) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/deop ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/difficulty.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/difficulty.mcfunction new file mode 100644 index 0000000..9fb2b9f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/difficulty.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "difficulty" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$difficulty $(level) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/difficulty ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(level)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/display_name.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/display_name.mcfunction new file mode 100644 index 0000000..d5dd4f4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/display_name.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$data modify entity @e[type=$(type),tag=$(tag),limit=1] CustomName set value '$(name)' +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/display_name ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_clear.mcfunction new file mode 100644 index 0000000..ccd76a3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_clear.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run effect clear @s +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/effect_clear ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_clear_one.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_clear_one.mcfunction new file mode 100644 index 0000000..cb5978e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_clear_one.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run effect clear @s $(effect) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/effect_clear_one ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(effect)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_give.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_give.mcfunction new file mode 100644 index 0000000..827b698 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_give.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run effect give @s $(effect) $(duration) $(amplifier) true +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/effect_give ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(effect)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_give_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_give_all.mcfunction new file mode 100644 index 0000000..e117a4b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/effect_give_all.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$effect give @a $(effect) $(duration) $(amplifier) $(hide) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/effect_give_all ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(effect)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/enchant.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/enchant.mcfunction new file mode 100644 index 0000000..7f2b7e5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/enchant.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] run enchant @s $(enchantment) $(level) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/enchant ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(enchantment)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/execute_if_pred.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/execute_if_pred.mcfunction new file mode 100644 index 0000000..ac0dec5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/execute_if_pred.mcfunction @@ -0,0 +1 @@ +$execute as @a[limit=1] if predicate $(predicate) run $(command) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/fill.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/fill.mcfunction new file mode 100644 index 0000000..dd2a0e8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/fill.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "fill" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 +execute unless data storage datalib:engine {sandbox:1b} run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"TIP ","color":"yellow","bold":true},{"text":"Sandbox mode recommended → ","color":"gray"},{"text":"/data modify storage datalib:engine sandbox set value 1b","color":"aqua"}] +$fill $(x1) $(y1) $(z1) $(x2) $(y2) $(z2) $(block) $(mode) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/fill ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(mode)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/forceload_add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/forceload_add.mcfunction new file mode 100644 index 0000000..04ce8b7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/forceload_add.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "forceload_add" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 +execute unless data storage datalib:engine {sandbox:1b} run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"TIP ","color":"yellow","bold":true},{"text":"Sandbox mode recommended → ","color":"gray"},{"text":"/data modify storage datalib:engine sandbox set value 1b","color":"aqua"}] +$forceload add $(x) $(z) +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/forceload_add ","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/forceload_remove.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/forceload_remove.mcfunction new file mode 100644 index 0000000..cf8d067 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/forceload_remove.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "forceload_remove" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$forceload remove $(x) $(z) +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/forceload_remove ","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/freeze.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/freeze.mcfunction new file mode 100644 index 0000000..2110983 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/freeze.mcfunction @@ -0,0 +1,27 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/freeze +# Freezes a player in place using an invisible marker armor stand. +# Every tick the frozen player is teleported back to the stand's +# position, preventing any movement. This is the only reliable +# vanilla method — player NBT is read-only so FrozenTicks cannot +# be set, and Slowness 255 alone does not stop client-side movement. +# +# On freeze: a marker armor stand is summoned at the player's feet, +# the player's datalib.pid is copied to the stand's dl.freeze_id, +# and the player receives the datalib.frozen tag. +# +# The per-tick teleport back is handled by: +# datalib:api/cmd/freeze/internal/tick (hooked via #datalib:events/on_tick) +# +# Use datalib:api/cmd/unfreeze to release. +# +# INPUT : $(player) → exact player name +# +# EXAMPLE: +# function datalib:api/cmd/freeze {player:"Steve"} +# ───────────────────────────────────────────────────────────────── + +$execute as @a[name=$(player),tag=!datalib.frozen,limit=1] run function datalib:core/internal/api/cmd/freeze/apply +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/freeze ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"translate":"datalib.msg.freeze","color":"#00aaff","bold":true}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/gamemode.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/gamemode.mcfunction new file mode 100644 index 0000000..a085204 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/gamemode.mcfunction @@ -0,0 +1,15 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "gamemode" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$execute as @a[name=$(player),limit=1] at @s run gamemode $(mode) @s +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/gamemode ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(mode)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/gamerule.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/gamerule.mcfunction new file mode 100644 index 0000000..3d636e8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/gamerule.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "gamerule" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$gamerule $(rule) $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/gamerule ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(rule)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/give.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/give.mcfunction new file mode 100644 index 0000000..29a2f49 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/give.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run give @s $(item) $(count) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/give ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(item)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/give_one.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/give_one.mcfunction new file mode 100644 index 0000000..f4d5e97 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/give_one.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run give @s $(item) 1 +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/give_one ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(item)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/heal.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/heal.mcfunction new file mode 100644 index 0000000..87ce100 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/heal.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run effect give @s minecraft:instant_health 1 $(amount) true +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/heal ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(amount)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/item_modify.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/item_modify.mcfunction new file mode 100644 index 0000000..c473820 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/item_modify.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$item modify entity @a[name=$(player),limit=1] $(slot) $(modifier) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/item_modify ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/item_rename.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/item_rename.mcfunction new file mode 100644 index 0000000..4f9b094 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/item_rename.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$item modify entity @a[name=$(player),limit=1] $(slot) $(modifier) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/item_rename ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/kill.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/kill.mcfunction new file mode 100644 index 0000000..90fb691 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/kill.mcfunction @@ -0,0 +1,15 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "kill" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 +execute unless data storage datalib:engine {sandbox:1b} run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"TIP ","color":"yellow","bold":true},{"text":"Sandbox mode recommended → ","color":"gray"},{"text":"/data modify storage datalib:engine sandbox set value 1b","color":"aqua"}] +$execute as @a[name=$(player),limit=1] at @s run kill @s +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/kill ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/locate_structure.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/locate_structure.mcfunction new file mode 100644 index 0000000..72f3d1b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/locate_structure.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run locate structure $(structure) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/locate_structure ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(structure)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/loot_drop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/loot_drop.mcfunction new file mode 100644 index 0000000..99db2d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/loot_drop.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$loot spawn $(x) $(y) $(z) loot $(loot_table) +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/loot_drop ","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/loot_give.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/loot_give.mcfunction new file mode 100644 index 0000000..7e7e18c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/loot_give.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$loot give @a[name=$(player),limit=1] loot $(loot_table) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/loot_give ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/msg.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/msg.mcfunction new file mode 100644 index 0000000..854aa1b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/msg.mcfunction @@ -0,0 +1,3 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$tellraw @a[name=$(player),limit=1] {"text":"$(message)","color":"gray","italic":true} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/msg_raw.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/msg_raw.mcfunction new file mode 100644 index 0000000..a133f8a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/msg_raw.mcfunction @@ -0,0 +1,3 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$tellraw $(player) $(json) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/action_run.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/action_run.mcfunction new file mode 100644 index 0000000..22a61a7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/action_run.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] at @s run function datalib:api/cmd/$(type) $(arguments) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/other/action_run ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd.mcfunction new file mode 100644 index 0000000..1ca3182 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd.mcfunction @@ -0,0 +1,26 @@ +# datalib:api/cmd/other/multi_cmd [MACRO] +# Executes a list of commands in order. +# INPUT (macro args): $(commands) — list of command strings/objects +# +# SECURITY: sets multiCommands.type = "multi_cmd" before run. +# Type is validated against security.multi_type_allowlist before execution. +# Invalid or unlisted types trigger type_violation (log + kick). + +# Tag type — must be done before validation +data modify storage datalib:engine multiCommands.type set value "multi_cmd" +data modify storage datalib:engine multiCommands.active set value 1b + +# Validate type +execute if data storage datalib:engine {security:{multi_type_allowlist:{multi_cmd_adv:0b}}} run data remove storage datalib:engine multiCommands.type +execute if data storage datalib:engine {security:{multi_type_allowlist:{multi_cmd_adv:0b}}} run data remove storage datalib:engine multiCommands.active +execute if data storage datalib:engine {security:{multi_type_allowlist:{multi_cmd_adv:0b}}} run return run function datalib:core/security/multi_type_check + +$data modify storage datalib:engine _mcmd_queue set value $(commands) +data modify storage datalib:engine _mcmd_options set value {error_mode:"continue",profile:0b,spread:0} + +execute at @s run function datalib:api/cmd/other/multi_cmd/run +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/other/multi_cmd ","color":"aqua"},{"text":"▶ executing batch","color":"#555555"}] + +# Clear type marker +data remove storage datalib:engine multiCommands.type +data remove storage datalib:engine multiCommands.active diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/advanced/run_with_options.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/advanced/run_with_options.mcfunction new file mode 100644 index 0000000..8f14fa8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/advanced/run_with_options.mcfunction @@ -0,0 +1,27 @@ +# datalib:api/cmd/other/multi_cmd/advanced/run_with_options +# Run with advanced options. +# +# INPUT (storage datalib:input): +# list → command list (string or object) +# options → {priority_sort:1b, spread_ticks:0, error_mode:"continue", profile:1b, type:"..."} +# +# SECURITY: if options.type is set, validates it against multi_type_allowlist. +# Invalid type → type_violation (log + kick) + abort. + +data modify storage datalib:engine _mcmd_queue set from storage datalib:input list +execute unless data storage datalib:input options run data modify storage datalib:input options set value {} +data modify storage datalib:engine _mcmd_options merge from storage datalib:input options + +# Validate options.type if caller explicitly specified one +execute if data storage datalib:engine _mcmd_options.type run data modify storage datalib:engine multiCommands.type set from storage datalib:engine _mcmd_options.type +execute if data storage datalib:engine _mcmd_options.type run execute unless function datalib:core/security/multi_type_check run return 0 + +execute unless data storage datalib:engine _mcmd_options.error_mode run data modify storage datalib:engine _mcmd_options.error_mode set value "continue" +execute unless data storage datalib:engine _mcmd_options.profile run data modify storage datalib:engine _mcmd_options.profile set value 0b +execute unless data storage datalib:engine _mcmd_options.spread_ticks run data modify storage datalib:engine _mcmd_options.spread_ticks set value 0 + +execute if data storage datalib:engine _mcmd_options{priority_sort:1b} run function datalib:core/internal/api/cmd/other/multi_cmd/advanced/sort_by_priority +execute if data storage datalib:engine _mcmd_options.spread_ticks unless data storage datalib:engine _mcmd_options{spread_ticks:0} run return run function datalib:core/internal/api/cmd/other/multi_cmd/advanced/run_spread + +function datalib:api/cmd/other/multi_cmd/run +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"multi_cmd/advanced ","color":"aqua"},{"text":"✔ with options","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/from_input.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/from_input.mcfunction new file mode 100644 index 0000000..b546e90 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/from_input.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/from_input +# Execute a simple command list (backward compatible) +# +# INPUT (storage datalib:input): +# list → command list ["cmd1", "cmd2", ...] +# +# EXAMPLE: +# data modify storage datalib:input list set value ["say Hello", "say World"] +# function datalib:api/cmd/other/multi_cmd/from_input +# ───────────────────────────────────────────────────────────────── + +# Copy list to queue +data modify storage datalib:engine _mcmd_queue set from storage datalib:input list + +# Set default options +data modify storage datalib:engine _mcmd_options set value {error_mode:"continue",profile:0b,spread:0} + +# Execute +function datalib:api/cmd/other/multi_cmd/run + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"multi_cmd/from_input ","color":"aqua"},{"text":"▶ list → run","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/from_input_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/from_input_as.mcfunction new file mode 100644 index 0000000..71fb322 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/from_input_as.mcfunction @@ -0,0 +1,15 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/from_input_as +# Execute as a specific selector +# +# INPUT (storage datalib:input): +# list → komut listesi +# selector → entity selector (default: @s) +# ───────────────────────────────────────────────────────────────── + +execute unless data storage datalib:input selector run data modify storage datalib:input selector set value "@s" + +data modify storage datalib:engine _mcmd_queue set from storage datalib:input list +data modify storage datalib:engine _mcmd_options set value {error_mode:"continue",profile:0b,spread:0} + +function datalib:core/internal/api/cmd/other/multi_cmd/run_as_exec with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run.mcfunction new file mode 100644 index 0000000..36a76dd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run.mcfunction @@ -0,0 +1,19 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/run +# Execute queued commands +# ───────────────────────────────────────────────────────────────── + +# Reset statistics +execute if data storage datalib:engine _mcmd_options{profile:1b} run data modify storage datalib:engine _mcmd_stats set value {total:0,success:0,failed:0,start_time:0} +execute if data storage datalib:engine _mcmd_options{profile:1b} run execute store result storage datalib:engine _mcmd_stats.start_time int 1 run time query gametime + +# Start recursive stepping +function datalib:core/internal/api/cmd/other/multi_cmd/step + +# Cleanup +function datalib:core/internal/api/cmd/other/multi_cmd/cleanup + +# Show statistics +execute if data storage datalib:engine _mcmd_options{profile:1b} run function datalib:core/internal/api/cmd/other/multi_cmd/show_stats + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"multi_cmd/run ","color":"aqua"},{"text":"✔ batch done","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run_as.mcfunction new file mode 100644 index 0000000..d794709 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run_as.mcfunction @@ -0,0 +1,9 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/run_as +# Run queue as a specific entity +# +# INPUT (storage datalib:input): +# selector → entity selector +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/api/cmd/other/multi_cmd/run_as_exec with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run_at.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run_at.mcfunction new file mode 100644 index 0000000..552ac7e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run_at.mcfunction @@ -0,0 +1,9 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/run_at +# Run queue at a specific location +# +# INPUT (storage datalib:input): +# selector → entity selector +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/api/cmd/other/multi_cmd/run_at_exec with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run_func.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run_func.mcfunction new file mode 100644 index 0000000..efb2e5a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/run_func.mcfunction @@ -0,0 +1,16 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/run_func +# Run function list +# +# INPUT (storage datalib:input): +# list → function list ["pack:func1", "pack:func2"] +# ───────────────────────────────────────────────────────────────── + +# Convert strings to {func:"..."} format +data modify storage datalib:engine _mcmd_queue set value [] +function datalib:core/internal/api/cmd/other/multi_cmd/func_convert_loop + +data modify storage datalib:engine _mcmd_options set value {error_mode:"continue",profile:0b,spread:0} +function datalib:api/cmd/other/multi_cmd/run + +data remove storage datalib:engine _mcmd_func_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/add_command.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/add_command.mcfunction new file mode 100644 index 0000000..f35fed8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/add_command.mcfunction @@ -0,0 +1,15 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/utils/add_command +# Add a command to queue at runtime +# +# INPUT (storage datalib:input): +# cmd or func → command/function to add +# ───────────────────────────────────────────────────────────────── + +execute if data storage datalib:input cmd run data modify storage datalib:engine _mcmd_queue append value {} +execute if data storage datalib:input cmd run data modify storage datalib:engine _mcmd_queue[-1].cmd set from storage datalib:input cmd + +execute if data storage datalib:input func run data modify storage datalib:engine _mcmd_queue append value {} +execute if data storage datalib:input func run data modify storage datalib:engine _mcmd_queue[-1].func set from storage datalib:input func + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"multi_cmd/utils/add ","color":"aqua"},{"text":"✔ added to queue","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/clear_queue.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/clear_queue.mcfunction new file mode 100644 index 0000000..0b933ae --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/clear_queue.mcfunction @@ -0,0 +1,7 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/utils/clear_queue +# Clear the queue +# ───────────────────────────────────────────────────────────────── + +data remove storage datalib:engine _mcmd_queue +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"multi_cmd/utils/clear ","color":"aqua"},{"text":"✔ queue cleared","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/get_stats.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/get_stats.mcfunction new file mode 100644 index 0000000..18c277e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/get_stats.mcfunction @@ -0,0 +1,6 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/utils/get_stats +# Mevcut istatistikleri datalib:output'a kopyala +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output stats set from storage datalib:engine _mcmd_stats diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/run_with_options_tracked.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/run_with_options_tracked.mcfunction new file mode 100644 index 0000000..dfcb3e8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd/utils/run_with_options_tracked.mcfunction @@ -0,0 +1,3 @@ +data modify storage datalib:output multiCommands.executed set value 0b + +execute at @s store success storage datalib:output multiCommands.executed byte 1 unless function datalib:api/cmd/other/multi_cmd/advanced/run_with_options run return 1 \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd_adv.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd_adv.mcfunction new file mode 100644 index 0000000..959b8fc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/multi_cmd_adv.mcfunction @@ -0,0 +1,23 @@ +# datalib:api/cmd/other/multi_cmd_adv [MACRO] +# Advanced multi-command execution with options. +# INPUT (macro args): $(list) — command list; $(options) — options compound +# +# SECURITY: sets multiCommands.type = "multi_cmd_adv" before run. +# Type is validated against security.multi_type_allowlist before execution. + +# Tag type +data modify storage datalib:engine multiCommands.type set value "multi_cmd_adv" +data modify storage datalib:engine multiCommands.active set value 1b + +# Validate type +execute if data storage datalib:engine {security:{multi_type_allowlist:{multi_cmd_adv:0b}}} run data remove storage datalib:engine multiCommands.type +execute if data storage datalib:engine {security:{multi_type_allowlist:{multi_cmd_adv:0b}}} run data remove storage datalib:engine multiCommands.active +execute if data storage datalib:engine {security:{multi_type_allowlist:{multi_cmd_adv:0b}}} run return run function datalib:core/security/multi_type_check + +$data merge storage datalib:input {list:$(list),options:$(options)} + +function datalib:api/cmd/other/multi_cmd/advanced/run_with_options + +# Clear type marker +data remove storage datalib:engine multiCommands.type +data remove storage datalib:engine multiCommands.active diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_as_uuid.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_as_uuid.mcfunction new file mode 100644 index 0000000..34bd8b3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_as_uuid.mcfunction @@ -0,0 +1 @@ + $execute as @a[nbt={UUID:$(uuid)}] run $(cmd) \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_nearest.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_nearest.mcfunction new file mode 100644 index 0000000..054ca54 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_nearest.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[sort=nearest,limit=1] at @s run $(cmd) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/other/run_nearest ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(cmd)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_random.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_random.mcfunction new file mode 100644 index 0000000..792af74 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_random.mcfunction @@ -0,0 +1,2 @@ +$execute as @r at @s run $(cmd) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/other/run_self ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(cmd)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_self.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_self.mcfunction new file mode 100644 index 0000000..99f25b4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/run_self.mcfunction @@ -0,0 +1,2 @@ +$execute as @s at @s run $(cmd) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/other/run_self ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(cmd)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/storage_reset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/storage_reset.mcfunction new file mode 100644 index 0000000..5e84e99 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/storage_reset.mcfunction @@ -0,0 +1,2 @@ +$data modify storage $(storageName) $(nbt) set value [] +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/other/storage_reset ","color":"aqua"},{"text":"$(storageName)","color":"white"},{"text":".","color":"#555555"},{"text":"$(nbt)","color":"aqua"},{"text":" → []","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/storage_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/storage_set.mcfunction new file mode 100644 index 0000000..b1f8c9d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/other/storage_set.mcfunction @@ -0,0 +1,2 @@ +$execute at @s run data modify storage $(storageName) $(nbt) set $(actionType) $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/other/storage_set ","color":"aqua"},{"text":"$(storageName)","color":"white"},{"text":".","color":"#555555"},{"text":"$(nbt)","color":"aqua"},{"text":" ← ","color":"#555555"},{"text":"$(value)","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/particle.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/particle.mcfunction new file mode 100644 index 0000000..3c32223 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/particle.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$particle $(name) $(x) $(y) $(z) $(dx) $(dy) $(dz) $(speed) $(count) +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/particle ","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/place_feature.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/place_feature.mcfunction new file mode 100644 index 0000000..b7963a2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/place_feature.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "place_feature" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$place feature $(feature) $(x) $(y) $(z) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/place_feature ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(feature)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/place_structure.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/place_structure.mcfunction new file mode 100644 index 0000000..d7e076f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/place_structure.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "place_structure" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$place structure $(structure) $(x) $(y) $(z) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/place_structure ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(structure)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/ride.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/ride.mcfunction new file mode 100644 index 0000000..20045b6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/ride.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$ride @a[name=$(player),limit=1] mount $(vehicle) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/ride ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(vehicle)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/ride_dismount.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/ride_dismount.mcfunction new file mode 100644 index 0000000..5ae695e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/ride_dismount.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$ride @a[name=$(player),limit=1] dismount +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/ride_dismount ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/run_cb_reset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/run_cb_reset.mcfunction new file mode 100644 index 0000000..20a6bb1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/run_cb_reset.mcfunction @@ -0,0 +1,4 @@ +data modify block 0 -64 0 auto set value 0b +setblock 0 -64 0 minecraft:air replace + +forceload remove 0 0 \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/run_with_cb.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/run_with_cb.mcfunction new file mode 100644 index 0000000..4565574 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/run_with_cb.mcfunction @@ -0,0 +1,9 @@ +# Add forceload +forceload add 0 0 + +# Execute command from storage using marker + command block +setblock 0 -64 0 minecraft:command_block{Command:"",auto:0b,TrackOutput:0b} replace +data modify block 0 -64 0 Command set from storage datalib:input cmd +data modify block 0 -64 0 auto set value 1b + +schedule function datalib:api/cmd/run_cb_reset 2t replace \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/scoreboard_add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/scoreboard_add.mcfunction new file mode 100644 index 0000000..8c8182e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/scoreboard_add.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run scoreboard players add @s $(objective) $(amount) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/scoreboard_add ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(amount)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/scoreboard_get.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/scoreboard_get.mcfunction new file mode 100644 index 0000000..847b4cb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/scoreboard_get.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute store result storage datalib:output result int 1 run scoreboard players get @a[name=$(player),limit=1] $(objective) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/scoreboard_get ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/scoreboard_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/scoreboard_set.mcfunction new file mode 100644 index 0000000..1032e10 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/scoreboard_set.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run scoreboard players set @s $(objective) $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/scoreboard_set ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(value)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/set_clock_rate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/set_clock_rate.mcfunction new file mode 100644 index 0000000..897ac40 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/set_clock_rate.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# DL - World Clock Rate Controller +$time rate $(rate) + +# System Debug Log for staff (Only for users with 'datalib.debug' tag) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"clock/rate_updated ","color":"aqua"},{"text":"* ","color":"white"},{"text":"to ","color":"gray"},{"text":"$(rate)x","color":"gold"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/setblock.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/setblock.mcfunction new file mode 100644 index 0000000..318dfd7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/setblock.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "setblock" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$setblock $(x) $(y) $(z) $(block) $(mode) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/setblock ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(mode)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/sound.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/sound.mcfunction new file mode 100644 index 0000000..f40ef0a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/sound.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run playsound $(sound) master @s ~ ~ ~ $(volume) $(pitch) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/sound ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(sound)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/sound_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/sound_all.mcfunction new file mode 100644 index 0000000..ce6ae73 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/sound_all.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$playsound $(sound) master @a ~ ~ ~ $(volume) $(pitch) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/sound_all ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(sound)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/spectate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/spectate.mcfunction new file mode 100644 index 0000000..0cb7dda --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/spectate.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] run spectate $(target) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/spectate ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(target)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/spectate_stop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/spectate_stop.mcfunction new file mode 100644 index 0000000..4fd785c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/spectate_stop.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] run spectate +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/spectate_stop ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/spreadplayers.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/spreadplayers.mcfunction new file mode 100644 index 0000000..40c1bca --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/spreadplayers.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "spreadplayers" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$spreadplayers $(cx) $(cz) $(spread) $(max_range) false $(target) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/spreadplayers ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(target)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/stopsound.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/stopsound.mcfunction new file mode 100644 index 0000000..b6f1ee5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/stopsound.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] run stopsound @s $(category) $(sound) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/stopsound ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(sound)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/storage_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/storage_set.mcfunction new file mode 100644 index 0000000..b2a82b7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/storage_set.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$data modify storage $(storage) $(nbt) set $(actionType) $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/storage_set ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(value)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/subtitle.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/subtitle.mcfunction new file mode 100644 index 0000000..6ac9420 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/subtitle.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run title @s subtitle {"text":"$(text)","color":"$(color)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/subtitle ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/summon.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/summon.mcfunction new file mode 100644 index 0000000..61a665b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/summon.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "summon" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$summon $(entity) $(x) $(y) $(z) $(nbt) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/summon ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(entity)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/swing.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/swing.mcfunction new file mode 100644 index 0000000..e99614e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/swing.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# DL - Swing & Feedback Module +$swing @a[name=$(player),limit=1] $(hand) + +# System Debug Log for staff (Only for users with 'datalib.debug' tag) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/swing ","color":"aqua"},{"text":"$(player)","color":"white"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tag_add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tag_add.mcfunction new file mode 100644 index 0000000..1a75562 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tag_add.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run tag @s add $(tag) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/tag_add ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(tag)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tag_remove.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tag_remove.mcfunction new file mode 100644 index 0000000..0a3e472 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tag_remove.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run tag @s remove $(tag) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/tag_remove ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(tag)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/time_add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/time_add.mcfunction new file mode 100644 index 0000000..0c063a8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/time_add.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "time_add" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$time add $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/time_add ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(value)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/time_of.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/time_of.mcfunction new file mode 100644 index 0000000..627dfb2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/time_of.mcfunction @@ -0,0 +1,8 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# DL - Universal World Clock Controller +# Usage: /function ame:clock_handler {clock:"datalib:test", action:"set", value:"12000"} +$time of $(clock) $(action) $(value) + +# System Debug Log for staff (Only for users with 'datalib.debug' tag) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"clock/system_update ","color":"aqua"},{"text":"$(clock) ","color":"white"},{"text":"action:","color":"gray"},{"text":"$(action) ","color":"gold"},{"text":"value:","color":"gray"},{"text":"$(value)","color":"yellow"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/time_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/time_set.mcfunction new file mode 100644 index 0000000..2c58ea5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/time_set.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "time_set" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$time set $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/time_set ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(value)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title.mcfunction new file mode 100644 index 0000000..c7e03af --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run title @s title {"text":"$(text)","color":"$(color)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/title ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_all.mcfunction new file mode 100644 index 0000000..4a0c649 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_all.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$title @a title {"text":"$(title)"} +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/title_all ","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_bold.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_bold.mcfunction new file mode 100644 index 0000000..41614ce --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_bold.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run title @s title {"text":"$(text)","color":"$(color)","bold":true} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/title_bold ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_clear.mcfunction new file mode 100644 index 0000000..0c18913 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_clear.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run title @s clear +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/title_clear ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_reset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_reset.mcfunction new file mode 100644 index 0000000..89d24d0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_reset.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run title @s reset +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/title_reset ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_sub.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_sub.mcfunction new file mode 100644 index 0000000..f45df40 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_sub.mcfunction @@ -0,0 +1,5 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$title @a[name=$(player),limit=1] title {"text":"$(title)","color":"$(color)","bold":true} +$title @a[name=$(player),limit=1] subtitle {"text":"$(subtitle)","color":"$(sub_color)","italic":true} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/title_sub ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_times.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_times.mcfunction new file mode 100644 index 0000000..ac2394a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/title_times.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] at @s run title @s times $(fade_in) $(stay) $(fade_out) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/title_times ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp.mcfunction new file mode 100644 index 0000000..3263a93 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +$execute as @a[name=$(player),limit=1] at @s run tp @s $(x) $(y) $(z) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/tp ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_facing.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_facing.mcfunction new file mode 100644 index 0000000..83eed89 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_facing.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +$execute as @a[name=$(player),limit=1] at @s run tp @s $(x) $(y) $(z) facing $(fx) $(fy) $(fz) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/tp_facing ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_to_coords.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_to_coords.mcfunction new file mode 100644 index 0000000..1ef8e74 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_to_coords.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +$tp $(player) $(x) $(y) $(z) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/tp_to_coords ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(x) $(y) $(z)","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_to_entity.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_to_entity.mcfunction new file mode 100644 index 0000000..4a6dbef --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_to_entity.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +$execute as @a[name=$(player),limit=1] run tp @s @e[type=$(type),tag=$(tag),limit=1] +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/tp_to_entity ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_to_player.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_to_player.mcfunction new file mode 100644 index 0000000..3907e1b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/tp_to_player.mcfunction @@ -0,0 +1,7 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +$execute as @a[name=$(player),limit=1] at @s run tp @s @a[name=$(target),limit=1] +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/tp_to_player ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(target)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/trigger_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/trigger_set.mcfunction new file mode 100644 index 0000000..08f4354 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/trigger_set.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$scoreboard players set $(player) $(objective) $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/trigger_set ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(value)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/unfreeze.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/unfreeze.mcfunction new file mode 100644 index 0000000..a5f9979 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/unfreeze.mcfunction @@ -0,0 +1,20 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/unfreeze +# Releases a player previously frozen by datalib:api/cmd/freeze. +# +# 1. Finds the frozen player's datalib.pid. +# 2. Kills the anchor armor stand whose dl.freeze_id matches. +# 3. Removes the datalib.frozen tag so the tick function stops +# teleporting them. +# 4. Plays the unfreeze sound and notifies the player. +# +# INPUT : $(player) → exact player name +# +# EXAMPLE: +# function datalib:api/cmd/unfreeze {player:"Steve"} +# ───────────────────────────────────────────────────────────────── + +$execute as @a[name=$(player),tag=datalib.frozen,limit=1] run function datalib:core/internal/api/cmd/freeze/remove +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/unfreeze ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"translate":"datalib.msg.unfreeze","color":"#55ff55","bold":true}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/weather.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/weather.mcfunction new file mode 100644 index 0000000..6e6fb5c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/weather.mcfunction @@ -0,0 +1,12 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "weather" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 + +$weather $(type) $(duration) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/weather ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/whitelist.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/whitelist.mcfunction new file mode 100644 index 0000000..a473f0e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/whitelist.mcfunction @@ -0,0 +1,15 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 +execute unless entity @s[type=minecraft:player] run return 0 + +execute unless entity @s[gamemode=creative,tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +# ───────────────────────────────────────────────────────────────── +# SANDBOX GUARD — dangerous commands are blocked in sandbox mode. +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run data modify storage datalib:engine _sandbox_cmd set value "whitelist" +execute if data storage datalib:engine {sandbox:1b} run execute unless function datalib:core/internal/api/cmd/sandbox_gate run return 0 +execute unless data storage datalib:engine {sandbox:1b} run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"TIP ","color":"yellow","bold":true},{"text":"Sandbox mode recommended → ","color":"gray"},{"text":"/data modify storage datalib:engine sandbox set value 1b","color":"aqua"}] +$whitelist $(action) $(player) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/whitelist ","color":"aqua"},{"text":"$(action) $(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/xp_add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/xp_add.mcfunction new file mode 100644 index 0000000..6efe1ce --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/xp_add.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] run xp add @s $(amount) $(type) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/xp_add ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/xp_get.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/xp_get.mcfunction new file mode 100644 index 0000000..3eb3943 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/xp_get.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute store result storage datalib:output result int 1 run xp query @a[name=$(player),limit=1] $(type) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/xp_get ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/xp_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/xp_set.mcfunction new file mode 100644 index 0000000..bb446b9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/cmd/xp_set.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$execute as @a[name=$(player),limit=1] run xp set @s $(amount) $(type) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/xp_set ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/from_score.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/from_score.mcfunction new file mode 100644 index 0000000..19e75ca --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/from_score.mcfunction @@ -0,0 +1,35 @@ +# datalib:api/color/from_score [MACRO] +# Maps an integer score range to a color using a threshold table. +# Useful for health bars, progress displays, danger indicators. +# +# Threshold logic (low → high): +# score < low_threshold → low_color +# score < mid_threshold → mid_color +# score >= mid_threshold → high_color +# +# Input (macro args): +# objective — scoreboard objective name +# player — player name, fake player name (include # prefix), or selector string +# low_threshold — score below this → low_color +# mid_threshold — score below this → mid_color (if >= low_threshold) +# low_color — color for low range (e.g. "red") +# mid_color — color for mid range (e.g. "yellow") +# high_color — color for high range (e.g. "green") +# +# Output → datalib:output result +# The matching color string. +# +# Usage: +# function datalib:api/color/from_score {objective:"health",player:"Steve",\ +# low_threshold:7,mid_threshold:14,\ +# low_color:"red",mid_color:"yellow",high_color:"green"} +# data get storage datalib:output result + +# Default: high_color +$data modify storage datalib:output result set value "$(high_color)" + +# Override with low or mid if score is below threshold +$execute if score $(player) $(objective) matches ..$(low_threshold) run data modify storage datalib:output result set value "$(low_color)" +$execute if score $(player) $(objective) matches $(low_threshold)..$(mid_threshold) run data modify storage datalib:output result set value "$(mid_color)" + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/from_score ","color":"aqua"},{"text":"$(player) ","color":"white"},{"text":"→ ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/gradient_delete.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/gradient_delete.mcfunction new file mode 100644 index 0000000..6527a3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/gradient_delete.mcfunction @@ -0,0 +1,13 @@ +# datalib:api/color/gradient_delete [MACRO] +# Removes a named gradient from storage. +# +# Input (macro args): +# name — gradient name to remove +# +# Usage: +# function datalib:api/color/gradient_delete {name:"health"} + +execute unless function datalib:core/security/cmd_gate run return 0 + +$data remove storage datalib:engine color.gradients.$(name) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/gradient_delete ","color":"aqua"},{"text":"$(name)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/gradient_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/gradient_set.mcfunction new file mode 100644 index 0000000..9500703 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/gradient_set.mcfunction @@ -0,0 +1,27 @@ +# datalib:api/color/gradient_set [MACRO] +# Registers a named gradient as an ordered list of color strings. +# Steps are accessed by index via datalib:api/color/lerp. +# +# Input (macro args): +# name — gradient name (e.g. "health", "sunset", "xp") +# colors — SNBT list of color strings, e.g. ["red","yellow","green"] +# or hex: ["#FF0000","#FFAA00","#00FF00"] +# Length is arbitrary; step 0 = first entry. +# +# Output → none +# +# Usage: +# function datalib:api/color/gradient_set {name:"health",\ +# colors:["red","yellow","green"]} +# +# function datalib:api/color/gradient_set {name:"xp",\ +# colors:["dark_green","green","#AAFF00","yellow"]} +# +# Note: SNBT list syntax requires quotes around string entries. +# This is a load-time operation — call from a load tag or init function. + +execute unless function datalib:core/security/cmd_gate run return 0 + +execute unless data storage datalib:engine color.gradients run data modify storage datalib:engine color.gradients set value {} +$data modify storage datalib:engine color.gradients.$(name) set value $(colors) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/gradient_set ","color":"aqua"},{"text":"$(name)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/lerp.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/lerp.mcfunction new file mode 100644 index 0000000..18ec445 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/lerp.mcfunction @@ -0,0 +1,29 @@ +# datalib:api/color/lerp [MACRO] +# Looks up a precomputed lerp step from a named gradient table. +# Gradients are registered via datalib:api/color/gradient_set. +# +# This is NOT a real-time RGB interpolator — mcfunction cannot do +# per-channel arithmetic at runtime. Instead, callers pre-register +# a gradient as an ordered list of hex strings and this function +# returns the entry at the given step index. +# +# Input (macro args): +# gradient — gradient name registered via gradient_set +# step — integer index into the gradient list (0-based) +# +# Output → datalib:output result +# The color string at that step, or "" if out of range. +# +# Usage: +# # Register once (e.g. at load): +# function datalib:api/color/gradient_set {name:"sunset",\ +# colors:["#FF0000","#FF5500","#FFAA00","#FFD700","#FFFF00"]} +# +# # Retrieve at runtime: +# function datalib:api/color/lerp {gradient:"sunset",step:2} +# # → datalib:output result = "#FFAA00" + +data modify storage datalib:output result set value "" +$data modify storage datalib:engine _color_lerp_tmp set value {gradient:"$(gradient)",step:$(step)} +$execute if data storage datalib:engine color.gradients.$(gradient) run function datalib:core/internal/systems/color/lerp_exec with storage datalib:engine _color_lerp_tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/lerp ","color":"aqua"},{"text":"$(gradient)[$(step)]","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_delete.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_delete.mcfunction new file mode 100644 index 0000000..055c5f2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_delete.mcfunction @@ -0,0 +1,15 @@ +# datalib:api/color/palette_delete [MACRO] +# Removes a color alias from the runtime palette. +# +# Input (macro args): +# key — alias name to remove +# +# Output → none +# +# Usage: +# function datalib:api/color/palette_delete {key:"brand"} + +execute unless function datalib:core/security/cmd_gate run return 0 + +$data remove storage datalib:engine color.palette.$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/palette_delete ","color":"aqua"},{"text":"$(key)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_get.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_get.mcfunction new file mode 100644 index 0000000..f06bb8d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_get.mcfunction @@ -0,0 +1,18 @@ +# datalib:api/color/palette_get [MACRO] +# Reads a color alias from the runtime palette. +# +# Input (macro args): +# key — alias name (e.g. "brand") +# +# Output → datalib:output result +# The stored color value, or absent if key not found. +# +# Usage: +# function datalib:api/color/palette_get {key:"brand"} +# data get storage datalib:output result + +execute unless function datalib:core/security/cmd_gate run return 0 + +data modify storage datalib:output result set value "" +$execute if data storage datalib:engine color.palette.$(key) run data modify storage datalib:output result set from storage datalib:engine color.palette.$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/palette_get ","color":"aqua"},{"text":"$(key)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_list.mcfunction new file mode 100644 index 0000000..1f813c6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_list.mcfunction @@ -0,0 +1,13 @@ +# datalib:api/color/palette_list +# Prints all registered palette entries to the calling player. +# Requires datalib.admin tag. +# +# Usage: +# function datalib:api/color/palette_list + +execute unless entity @s[tag=datalib.admin] run return 0 + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Color Palette ","color":"aqua"},{"text":"━━━━━━━━━━━","color":"#555555"}] +execute if data storage datalib:engine color.palette run tellraw @s ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"color.palette","interpret":false,"color":"green"}] +execute unless data storage datalib:engine color.palette run tellraw @s ["",{"text":" ","color":"#555555"},{"text":"(palette is empty)","color":"gray","italic":true}] +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_set.mcfunction new file mode 100644 index 0000000..713a774 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/palette_set.mcfunction @@ -0,0 +1,19 @@ +# datalib:api/color/palette_set [MACRO] +# Registers a named color alias in the runtime palette. +# Existing key is overwritten. +# +# Input (macro args): +# key — alias name (e.g. "brand", "danger", "success") +# value — color value (named or hex, e.g. "#00AAAA", "red") +# +# Output → none +# +# Usage: +# function datalib:api/color/palette_set {key:"brand",value:"#00AAAA"} +# function datalib:api/color/palette_set {key:"danger",value:"red"} + +execute unless function datalib:core/security/cmd_gate run return 0 + +execute unless data storage datalib:engine color.palette run data modify storage datalib:engine color.palette set value {} +$data modify storage datalib:engine color.palette.$(key) set value "$(value)" +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/palette_set ","color":"aqua"},{"text":"$(key)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(value)","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/resolve.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/resolve.mcfunction new file mode 100644 index 0000000..b3260db --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/resolve.mcfunction @@ -0,0 +1,30 @@ +# datalib:api/color/resolve [MACRO] +# Looks up a named palette entry or returns the value as-is if not found. +# Use this to map short alias keys (e.g. "brand", "danger", "info") to hex. +# +# The palette is stored in datalib:engine color.palette as a compound: +# {brand:"#00AAAA", danger:"red", info:"aqua", ...} +# Populate via datalib:api/color/palette_set. +# +# Input (macro args): +# color — alias key or direct color value +# +# Output → datalib:output result +# The resolved color string (palette value if key found; input value otherwise). +# +# Usage: +# function datalib:api/color/resolve {color:"brand"} +# # → datalib:output result = "#00AAAA" (if palette has brand→#00AAAA) +# +# function datalib:api/color/resolve {color:"red"} +# # → datalib:output result = "red" (not in palette, returned as-is) + +# Default: return input value +$data modify storage datalib:output result set value "$(color)" + +# Override if palette has this key — write color key into temp so resolve_exec can access it +$data modify storage datalib:engine _color_resolve_tmp set value {color:"$(color)"} +execute if data storage datalib:engine color.palette run function datalib:core/internal/systems/color/resolve_exec with storage datalib:engine _color_resolve_tmp +data remove storage datalib:engine _color_resolve_tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/resolve ","color":"aqua"},{"text":"$(color)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/color/validate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/validate.mcfunction new file mode 100644 index 0000000..cf2b48c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/color/validate.mcfunction @@ -0,0 +1,29 @@ +# datalib:api/color/validate [MACRO] +# Checks whether a color string is a known named color or a valid hex code. +# +# Named colors accepted: +# black, dark_blue, dark_green, dark_aqua, dark_red, dark_purple, +# gold, gray, dark_gray, blue, green, aqua, red, light_purple, +# yellow, white +# +# Hex accepted: #RRGGBB format (stored as-is; format is not verified at +# mcfunction level — caller must supply a valid string). +# +# Input (macro args): +# color — color string to validate (e.g. "red", "#FF5500") +# +# Output → datalib:output result +# 1b = valid named color or hex-like string starting with # +# 0b = invalid / unrecognised +# +# Usage: +# function datalib:api/color/validate {color:"red"} +# data get storage datalib:output result +# +# Note: hex validation only checks that the value starts with "#". +# Full format validation (#RRGGBB) is not possible in mcfunction alone. + +data modify storage datalib:output result set value 0b +$data modify storage datalib:engine _color_validate_tmp set value {color:"$(color)"} +function datalib:core/internal/systems/color/validate_exec with storage datalib:engine _color_validate_tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/validate ","color":"aqua"},{"text":"$(color)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/close.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/close.mcfunction new file mode 100644 index 0000000..7f8658d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/close.mcfunction @@ -0,0 +1,5 @@ +dialog clear @s + +tag @s remove datalib.dialog_opened + +tag @s add datalib.dialog_closed diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/is_open.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/is_open.mcfunction new file mode 100644 index 0000000..b73caa7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/is_open.mcfunction @@ -0,0 +1,14 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/dialog/is_open +# Checks whether the executing player currently has a dialog open. +# Output: datalib:output result → 1b (open) or 0b (closed / not set) +# +# Example: +# execute as @a run function datalib:api/dialog/is_open +# # Then read datalib:output result per player context +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output result set value 0b +execute if entity @s[tag=datalib.dialog_opened] unless entity @s[tag=datalib.dialog_closed] run data modify storage datalib:output result set value 1b + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"dialog/is_open ","color":"aqua"},{"text":"→ ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/load.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/load.mcfunction new file mode 100644 index 0000000..755c2ee --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/load.mcfunction @@ -0,0 +1,2 @@ +execute unless data storage datalib:input cooldown run data modify storage datalib:input cooldown set value 20 +function datalib:api/dialog/load_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/load_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/load_exec.mcfunction new file mode 100644 index 0000000..f6a94a1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/load_exec.mcfunction @@ -0,0 +1,3 @@ +$scoreboard players set @s datalib.dialog_load $(cooldown) +tag @s remove datalib.dialog_opened +tag @s add datalib.dialog_closed diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/notify_admins.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/notify_admins.mcfunction new file mode 100644 index 0000000..3f3499a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/notify_admins.mcfunction @@ -0,0 +1,20 @@ +# datalib:api/dialog/notify_admins [1.21.6 overlay] +# Notifies all online admins that the executing player opened a dialog. +# Logs the dialog identifier to the debug log buffer. +# +# Must be called AFTER the dialog_opened tag has been set on @s. +# Both api/dialog/open and api/dialog/show call this after tag assignment. +# +# BUGFIX v6.0.1: guard now also checks that dialog.DIALOG.title exists in +# storage so that the admin message includes meaningful dialog info rather +# than falling through with a generic "opened a dialog" when no dialog +# context is set. + +execute unless entity @s[tag=datalib.dialog_opened] run return 0 + +tellraw @a[tag=datalib.admin] ["",{"text":"[DL/dialog] ","color":"gold","bold":true},{"selector":"@s","color":"yellow"},{"text":" opened dialog: ","color":"white"},{"nbt":"dialog.DIALOG.title","storage":"datalib:engine","color":"aqua","italic":true}] + +data modify storage datalib:engine _log_add_tmp.message set value "[dialog/notify_admins] dialog opened" +data modify storage datalib:engine _log_add_tmp.level set value "INFO" +data modify storage datalib:engine _log_add_tmp.color set value "gray" +function datalib:systems/log/add with storage datalib:engine _log_add_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/open.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/open.mcfunction new file mode 100644 index 0000000..6926ba5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/open.mcfunction @@ -0,0 +1,14 @@ +scoreboard players set @s datalib.dialog_load -1 +tag @s remove datalib.dialog_closed +tag @s remove datalib.dialog_opened + +execute unless data storage datalib:engine dialog.DIALOG run return run dialog show @s {"type":"multi_action","title":"","actions":[{"label":"Ok"}],"pause":false,"after_action":"close","body":{"type":"plain_message","contents":[{"text":"A problem occurred.","bold":true,"color":"yellow","italic":false},"\n\n",{"text":"Dialog Not Found","color":"red","bold":false,"italic":false}]}} +execute if data storage datalib:engine {dialog:{DIALOG:""}} run return run dialog show @s {"type":"multi_action","title":"","actions":[{"label":"Ok"}],"pause":false,"after_action":"close","body":{"type":"plain_message","contents":[{"text":"A problem occurred.","bold":true,"color":"yellow","italic":false},"\n\n",{"text":"Unknown Dialog","color":"red","bold":false,"italic":false}]}} +execute unless data storage datalib:engine dialog.DIALOG.type run return run dialog show @s {"type":"multi_action","title":"","actions":[{"label":"Ok"}],"pause":false,"after_action":"close","body":{"type":"plain_message","contents":[{"text":"A problem occurred.","bold":true,"color":"yellow","italic":false},"\n\n",{"text":"Unknown Dialog Type","color":"red","bold":false,"italic":false}]}} +execute unless data storage datalib:engine dialog.DIALOG.title run return run dialog show @s {"type":"multi_action","title":"","actions":[{"label":"Ok"}],"pause":false,"after_action":"close","body":{"type":"plain_message","contents":[{"text":"A problem occurred.","bold":true,"color":"yellow","italic":false},"\n\n",{"text":"Missing Dialog Title","color":"red","bold":false,"italic":false}]}} +execute if data storage datalib:engine {dialog:{DIALOG:{type:"multi_action"}}} unless data storage datalib:engine dialog.DIALOG.actions run return run dialog show @s {"type":"multi_action","title":"","actions":[{"label":"Ok"}],"pause":false,"after_action":"close","body":{"type":"plain_message","contents":[{"text":"A problem occurred.","bold":true,"color":"yellow","italic":false},"\n\n",{"text":"Missing Actions","color":"red","bold":false,"italic":false}]}} + +execute if data storage datalib:engine dialog.DIALOG run function datalib:api/dialog/show +execute if data storage datalib:engine dialog.DIALOG run function datalib:api/dialog/notify_admins + +return 1 \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/show.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/show.mcfunction new file mode 100644 index 0000000..9fe8b69 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/show.mcfunction @@ -0,0 +1,20 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/dialog/show [1.21.6+ overlay] +# Shows the dialog stored at datalib:engine dialog.DIALOG as inline JSON. +# Called by dialog/open after validation. +# Uses show_macro_exec to pipe DIALOG compound as inline dialog. +# ───────────────────────────────────────────────────────────────── + +execute if entity @s[tag=datalib.dialog_opened] at @s run return 0 +execute unless data storage datalib:engine dialog.DIALOG run return 0 + +execute at @s run function datalib:player/get_name +data modify storage datalib:engine dialog.NAME set from storage datalib:names temp.NAME + +function datalib:api/dialog/show_dialog_exec with storage datalib:engine dialog + +tag @s add datalib.dialog_opened + +function datalib:api/dialog/notify_admins + +return 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/show_dialog_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/show_dialog_exec.mcfunction new file mode 100644 index 0000000..3739df6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/show_dialog_exec.mcfunction @@ -0,0 +1,3 @@ +# Internal: called by dialog/show via `with storage datalib:engine dialog` +# macro arg: DIALOG = dialog compound NBT object +$dialog show $(NAME) $(DIALOG) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/show_macro.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/show_macro.mcfunction new file mode 100644 index 0000000..54b8313 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/dialog/show_macro.mcfunction @@ -0,0 +1,14 @@ +# datalib:api/dialog/show_macro +# Shows a dialog from inline JSON stored in datalib:engine dialog.DATA. +# Requires Minecraft 1.21.6+ (pack_format 80+). +# On older versions this stub fires a friendly error message. +# +# Usage (1.21.6+ overlay handles actual logic): +# data modify storage datalib:engine dialog.DATA set value '{...}' +# function datalib:api/dialog/show_macro +# +# BUGFIX v6.0.1: this file was missing from the base overlay entirely. +# Without it, any pack calling datalib:api/dialog/show_macro on 1.20.3–1.21.5 +# would get a "function not found" error instead of a clean version warning. + +tellraw @s {"text":"This feature requires Minecraft 1.21.6 or higher!","color":"red","italic":false} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/gamerule/get.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/gamerule/get.mcfunction new file mode 100644 index 0000000..c0a4d66 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/gamerule/get.mcfunction @@ -0,0 +1,31 @@ +# datalib:api/gamerule/get [MACRO] +# Reads a custom gamerule value from storage into datalib:output gamerule. +# +# INPUT (macro args via `with storage datalib:input {}`): +# $(rule) — rule name string (must match the name used in set) +# +# OUTPUT: +# datalib:output gamerule — the stored value string, or absent if never set +# +# EXAMPLE: +# data modify storage datalib:input rule set value "pvp_enabled" +# function datalib:api/gamerule/get with storage datalib:input {} +# # read: data get storage datalib:output gamerule + +execute unless function datalib:core/security/cmd_gate run return 0 + +# Normalize key (spaces → underscores, lowercase) +data modify storage stringlib:input replace.String set from storage datalib:input rule +data modify storage stringlib:input replace.Find set value " " +data modify storage stringlib:input replace.Replace set value "_" +function stringlib:util/replace +data modify storage datalib:input _gamerule_norm set from storage stringlib:output replace +data remove storage stringlib:input replace + +# Read from engine storage +data remove storage datalib:output gamerule +function datalib:core/internal/api/gamerule/read with storage datalib:input {} + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"gamerule/get ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(_gamerule_norm)","color":"white"},{"text":" = ","color":"#555555"},{"storage":"datalib:output","nbt":"gamerule","color":"green"}] + +data remove storage datalib:input _gamerule_norm diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/gamerule/reset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/gamerule/reset.mcfunction new file mode 100644 index 0000000..8a97811 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/gamerule/reset.mcfunction @@ -0,0 +1,26 @@ +# datalib:api/gamerule/reset [MACRO] +# Removes a custom gamerule from engine storage entirely. +# Does NOT touch vanilla /gamerule — this is for datalib-tracked rules only. +# +# INPUT (macro args via `with storage datalib:input {}`): +# $(rule) — rule name string +# +# EXAMPLE: +# data modify storage datalib:input rule set value "pvp_enabled" +# function datalib:api/gamerule/reset with storage datalib:input {} + +execute unless function datalib:core/security/cmd_gate run return 0 + +# Normalize +data modify storage stringlib:input replace.String set from storage datalib:input rule +data modify storage stringlib:input replace.Find set value " " +data modify storage stringlib:input replace.Replace set value "_" +function stringlib:util/replace +data modify storage datalib:input _gamerule_norm set from storage stringlib:output replace +data remove storage stringlib:input replace + +function datalib:core/internal/api/gamerule/remove with storage datalib:input {} + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"gamerule/reset ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(_gamerule_norm)","color":"gray","italic":true},{"text":" removed","color":"gray"}] + +data remove storage datalib:input _gamerule_norm diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/gamerule/set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/gamerule/set.mcfunction new file mode 100644 index 0000000..e86a74f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/gamerule/set.mcfunction @@ -0,0 +1,46 @@ +# datalib:api/gamerule/set [MACRO] +# Sets a custom gamerule value, persists it in storage, and dispatches +# a callback function when the value matches a defined condition. +# +# INPUT (macro args via `with storage datalib:input {}`): +# $(rule) — rule name string, e.g. "pvp_enabled" +# $(value) — value string: "true", "false", or a number string e.g. "10" +# +# OPTIONAL storage keys (set before calling, removed after): +# datalib:input gr_on_true — function to call when value is "true" +# datalib:input gr_on_false — function to call when value is "false" +# datalib:input gr_on_value — function to call for any numeric match +# datalib:input gr_matches — scoreboard range string, e.g. "5..10" (used with gr_on_value) +# +# EXAMPLE: +# data modify storage datalib:input rule set value "pvp_enabled" +# data modify storage datalib:input value set value "true" +# data modify storage datalib:input gr_on_true set value "mypack:pvp/enable" +# data modify storage datalib:input gr_on_false set value "mypack:pvp/disable" +# function datalib:api/gamerule/set with storage datalib:input {} +# +# RETURN: 1 on success, 0 on guard failure. + +execute unless function datalib:core/security/cmd_gate run return 0 + +# ── Normalize rule name: spaces → underscores via StringLib ────────────────── +data modify storage stringlib:input replace.String set from storage datalib:input rule +data modify storage stringlib:input replace.Find set value " " +data modify storage stringlib:input replace.Replace set value "_" +function stringlib:util/replace +data modify storage datalib:input _gamerule_norm set from storage stringlib:output replace +data remove storage stringlib:input replace + +# ── Persist value in engine storage ────────────────────────────────────────── +function datalib:core/internal/api/gamerule/persist with storage datalib:input {} + +# ── Dispatch callbacks ──────────────────────────────────────────────────────── +function datalib:core/internal/api/gamerule/dispatch with storage datalib:input {} + +# ── Debug log ───────────────────────────────────────────────────────────────── +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"gamerule/set ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(_gamerule_norm)","color":"white"},{"text":" = ","color":"#555555"},{"text":"$(value)","color":"green"}] + +# ── Cleanup ─────────────────────────────────────────────────────────────────── +data remove storage datalib:input _gamerule_norm + +return 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/bind_attack.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/bind_attack.mcfunction new file mode 100644 index 0000000..be7c5a5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/bind_attack.mcfunction @@ -0,0 +1,12 @@ +# datalib:api/interaction/bind_attack +# Binds a function to an interaction entity attack event. +# +# INPUT: +# datalib:input tag — entity tag to match +# datalib:input func — function to call on attack +# +# USAGE: +# data modify storage datalib:input tag set value "my_interact" +# data modify storage datalib:input func set value "mypack:on_attack" +# function datalib:api/interaction/bind_attack with storage datalib:input {} +function datalib:core/internal/api/interaction/bind_attack_do with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/bind_use.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/bind_use.mcfunction new file mode 100644 index 0000000..c7b9f2b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/bind_use.mcfunction @@ -0,0 +1,12 @@ +# datalib:api/interaction/bind_use +# Binds a function to an interaction entity use (right-click) event. +# +# INPUT: +# datalib:input tag — entity tag to match +# datalib:input func — function to call on use +# +# USAGE: +# data modify storage datalib:input tag set value "my_interact" +# data modify storage datalib:input func set value "mypack:on_use" +# function datalib:api/interaction/bind_use with storage datalib:input {} +function datalib:core/internal/api/interaction/bind_use_do with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/list.mcfunction new file mode 100644 index 0000000..5bb505b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/list.mcfunction @@ -0,0 +1,3 @@ +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"interaction/list","color":"aqua"}] +tellraw @a[tag=datalib.debug] ["",{"text":" attack: ","color":"#555555"},{"storage":"datalib:engine","nbt":"interaction_binds.attack","color":"white"}] +tellraw @a[tag=datalib.debug] ["",{"text":" use: ","color":"#555555"},{"storage":"datalib:engine","nbt":"interaction_binds.use","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/remove.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/remove.mcfunction new file mode 100644 index 0000000..0e4a710 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/remove.mcfunction @@ -0,0 +1,3 @@ +$kill @e[type=minecraft:interaction,tag=$(tag)] + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"interaction/remove ","color":"aqua"},{"text":"✘ ","color":"red"},{"text":"$(tag)","color":"white"},{"text":" killed","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/spawn.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/spawn.mcfunction new file mode 100644 index 0000000..b92223c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/spawn.mcfunction @@ -0,0 +1,6 @@ +$summon minecraft:interaction ~ ~ ~ {width:$(width), height:$(height), response:$(response), Tags:["datalib.interaction","datalib.ia_new"]} + +$tag @e[type=minecraft:interaction,tag=datalib.ia_new,limit=1,sort=nearest] add $(tag) +tag @e[tag=datalib.ia_new] remove datalib.ia_new + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"interaction/spawn ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(tag)","color":"white"},{"text":" spawned","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/unbind_attack.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/unbind_attack.mcfunction new file mode 100644 index 0000000..183df6b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/unbind_attack.mcfunction @@ -0,0 +1,10 @@ +execute unless data storage datalib:engine interaction_binds.attack[0] run return 0 + +data modify storage datalib:engine _ia_ubinds set from storage datalib:engine interaction_binds.attack +data modify storage datalib:engine interaction_binds.attack set value [] +$data modify storage datalib:engine _ia_ufilter set value {tag:"$(tag)", func:"$(func)", list:"attack"} +function datalib:core/internal/api/interaction/unbind_filter +data remove storage datalib:engine _ia_ubinds +data remove storage datalib:engine _ia_ufilter + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"interaction/unbind_attack ","color":"aqua"},{"text":"✘ ","color":"red"},{"text":"$(tag)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/unbind_use.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/unbind_use.mcfunction new file mode 100644 index 0000000..a04af50 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/interaction/unbind_use.mcfunction @@ -0,0 +1,10 @@ +execute unless data storage datalib:engine interaction_binds.use[0] run return 0 + +data modify storage datalib:engine _ia_ubinds set from storage datalib:engine interaction_binds.use +data modify storage datalib:engine interaction_binds.use set value [] +$data modify storage datalib:engine _ia_ufilter set value {tag:"$(tag)", func:"$(func)", list:"use"} +function datalib:core/internal/api/interaction/unbind_filter +data remove storage datalib:engine _ia_ubinds +data remove storage datalib:engine _ia_ufilter + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"interaction/unbind_use ","color":"aqua"},{"text":"✘ ","color":"red"},{"text":"$(tag)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/macro/with_advancement.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/macro/with_advancement.mcfunction new file mode 100644 index 0000000..1e5a930 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/macro/with_advancement.mcfunction @@ -0,0 +1,31 @@ +# ───────────────────────────────────────────── +# datalib:api/macro/with_advancement [MACRO] +# +# Checks whether a player has completed a specific advancement and +# injects the boolean result as a named macro variable into the target function. +# +# Usage: +# function datalib:engine/macro/with_advancement \ +# {func:"ns:path", player:"Name", advancement:"ns:adv/path", var:"done"} +# +# Parameters: +# func — function to call (ns:path) +# player — target player name +# advancement — advancement to check (ns:path/to/adv) +# var — macro variable name to inject into the target function +# +# Output: $(done) → 1b (completed) or 0b (not completed) +# ───────────────────────────────────────────── + +# Clear pipe +data remove storage datalib:engine _macro_pipe + +# Default: not completed +$data modify storage datalib:engine _macro_pipe.$(var) set value "empty" + +# Set to 1b if the player has completed the advancement +$execute as @a[name=$(player),limit=1,advancements={$(advancement)=true}] run data modify storage datalib:engine _macro_pipe.$(var) set value 1b +$execute as @a[name=$(player),limit=1,advancements={$(advancement)=false}] run data modify storage datalib:engine _macro_pipe.$(var) set value 0b + +# Call target function with pipe as macro source +$function $(func) with storage datalib:engine _macro_pipe \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/macro/with_function.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/macro/with_function.mcfunction new file mode 100644 index 0000000..f4c0b35 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/macro/with_function.mcfunction @@ -0,0 +1,31 @@ +# ───────────────────────────────────────────── +# datalib:api/macro/with_function [MACRO] +# +# Runs a provider (source) function; passes the data that function +# wrote to datalib:engine _macro_pipe storage as macro variable source +# to a consumer (target) function. +# +# Establishes a type-safe data bridge between two functions. +# +# Usage: +# function datalib:engine/macro/with_function \ +# {source:"ns:provider", target:"ns:consumer"} +# +# Parameters: +# source — function that produces data and writes it to datalib:engine _macro_pipe +# target — function that consumes data from the pipe as macro variables +# +# Contract: +# source function must write its output to this storage: +# data modify storage datalib:engine _macro_pipe. set value +# target function can access those keys as $(key). +# ───────────────────────────────────────────── + +# Run provider function — it writes its output to _macro_pipe +$function $(source) + +# Pass pipe to consumer as macro source +$function $(target) with storage datalib:engine _macro_pipe + +# Clear pipe before source runs +data remove storage datalib:engine _macro_pipe \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/macro/with_score.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/macro/with_score.mcfunction new file mode 100644 index 0000000..fb49d7a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/macro/with_score.mcfunction @@ -0,0 +1,27 @@ +# ───────────────────────────────────────────── +# datalib:api/macro/with_score [MACRO] +# +# Reads a player's scoreboard value and injects it as a named +# macro variable into the target function. +# +# Usage: +# function datalib:engine/macro/with_score \ +# {func:"ns:path", player:"Name", objective:"myObj", var:"myVar"} +# +# Parameters: +# func — function to call (ns:path) +# player — target player name +# objective — scoreboard objective +# var — macro variable name to inject into the target function +# +# Output: $(myVar) → scoreboard value (int) +# ───────────────────────────────────────────── + +# Write score into pipe under the requested variable name +$execute store result storage datalib:engine _macro_pipe.$(var) int 1 run scoreboard players get $(player) $(objective) + +# Call target function with pipe as macro source +$function $(func) with storage datalib:engine _macro_pipe + +# Clear pipe +data remove storage datalib:engine _macro_pipe \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/check.mcfunction new file mode 100644 index 0000000..2286d17 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/check.mcfunction @@ -0,0 +1,11 @@ +scoreboard players set $pc_pid dl.tmp 0 +$execute store result score $pc_pid dl.tmp run data get storage datalib:engine player_pids.$(player) +execute if score $pc_pid dl.tmp matches 0 run return 0 + +execute as @a if score @s datalib.pid = $pc_pid dl.tmp run execute if entity @s[tag=datalib.admin] run return 1 + +$execute as @a if score @s datalib.pid = $pc_pid dl.tmp run execute if entity @s[tag=perm.$(perm)] run return 1 + +execute as @a if score @s datalib.pid = $pc_pid dl.tmp run playsound datalib:perm.denied master @s ~ ~ ~ 1 1 +$execute as @a if score @s datalib.pid = $pc_pid dl.tmp run tellraw @s ["",{"text":"\uE000","color":"#00AAAA"},{"text":" ","color":"#00AAAA"},{"text":"✘ ","color":"red"},{"text":"$(perm)","color":"yellow"},{"text":" ","color":"red"},{"translate":"datalib.msg.no_perm","with":[""],"color":"red"}] +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/clear.mcfunction new file mode 100644 index 0000000..03fff9f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/clear.mcfunction @@ -0,0 +1,5 @@ +execute unless entity @s[tag=datalib.admin] run return run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"Permission denied.","color":"red"}] + +$data remove storage datalib:engine permissions.$(player) +$advancement revoke @a[name=$(player),limit=1] from datalib:hidden/root +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/clear ","color":"aqua"},{"text":"⚠ ","color":"yellow"},{"text":"$(player)","color":"white"},{"text":" — all permissions cleared","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/exec.mcfunction new file mode 100644 index 0000000..68be670 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/exec.mcfunction @@ -0,0 +1,14 @@ +scoreboard players set $pex_pid dl.tmp 0 +$execute store result score $pex_pid dl.tmp run data get storage datalib:engine player_pids.$(player) +execute if score $pex_pid dl.tmp matches 0 run return 0 + +data modify storage datalib:engine _pex_tmp set value {result:0b} +execute as @a if score @s datalib.pid = $pex_pid dl.tmp run execute if entity @s[tag=datalib.admin] run data modify storage datalib:engine _pex_tmp.result set value 1b +$execute if data storage datalib:engine permissions.$(player).$(perm) run data modify storage datalib:engine _pex_tmp.result set value 1b + +$execute if data storage datalib:engine _pex_tmp{result:0b} run execute as @a if score @s datalib.pid = $pex_pid dl.tmp run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"$(perm)","color":"yellow"},{"text":" — you don't have this permission.","color":"red"}] +execute if data storage datalib:engine _pex_tmp{result:0b} run return 0 + +$execute as @a if score @s datalib.pid = $pex_pid dl.tmp at @s run $(cmd) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/exec ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" [","color":"#555555"},{"text":"$(perm)","color":"aqua"},{"text":"] → ","color":"#555555"},{"text":"$(cmd)","color":"green"}] +data remove storage datalib:engine _pex_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/grant.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/grant.mcfunction new file mode 100644 index 0000000..75e7a38 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/grant.mcfunction @@ -0,0 +1,11 @@ +execute if entity @s unless entity @s[tag=datalib.admin] run playsound datalib:perm.denied master @s ~ ~ ~ 1 1 +execute if entity @s unless entity @s[tag=datalib.admin] run return run tellraw @s ["",{"text":"\uE000","color":"#00AAAA"},{"text":" ","color":"#00AAAA"},{"text":"✘ ","color":"red"},{"translate":"datalib.msg.permission_denied","color":"red"}] + +$data modify storage datalib:engine permissions.$(player).$(perm) set value 1b + +scoreboard players set $pg_pid dl.tmp 0 +$execute store result score $pg_pid dl.tmp run data get storage datalib:engine player_pids.$(player) +$execute as @a if score @s datalib.pid = $pg_pid dl.tmp run tag @s add perm.$(perm) +$advancement grant @a[name=$(player),limit=1] only datalib:api/perm/$(perm) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/grant ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(player)","color":"white"},{"text":" ← ","color":"#555555"},{"text":"$(perm)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/has.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/has.mcfunction new file mode 100644 index 0000000..5170983 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/has.mcfunction @@ -0,0 +1,11 @@ +data modify storage datalib:output result set value 0b + +scoreboard players set $ph_pid dl.tmp 0 +$execute store result score $ph_pid dl.tmp run data get storage datalib:engine player_pids.$(player) + +execute as @a if score @s datalib.pid = $ph_pid dl.tmp run execute if entity @s[tag=datalib.admin] run data modify storage datalib:output result set value 1b +$execute as @a if score @s datalib.pid = $ph_pid dl.tmp run execute if entity @s[tag=perm.$(perm)] run data modify storage datalib:output result set value 1b + +$execute if data storage datalib:engine permissions.$(player).$(perm) run data modify storage datalib:output result set value 1b + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/has ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(perm)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/list.mcfunction new file mode 100644 index 0000000..fc4ada8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/list.mcfunction @@ -0,0 +1,4 @@ +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Perms: ","color":"aqua"},{"text":"$(player)","color":"white","bold":true},{"text":" ━━━━━━━━━━━━━━","color":"#555555"}] +$execute if data storage datalib:engine permissions.$(player) run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"permissions.$(player)","interpret":false,"color":"yellow"}] +$execute unless data storage datalib:engine permissions.$(player) run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"text":"(no permissions)","color":"gray","italic":true}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/revoke.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/revoke.mcfunction new file mode 100644 index 0000000..424fa0a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/revoke.mcfunction @@ -0,0 +1,11 @@ +execute unless entity @s[tag=datalib.admin] run playsound datalib:perm.denied master @s ~ ~ ~ 1 1 +execute unless entity @s[tag=datalib.admin] run return run tellraw @s ["",{"text":"\uE000","color":"#00AAAA"},{"text":" ","color":"#00AAAA"},{"text":"✘ ","color":"red"},{"translate":"datalib.msg.permission_denied","color":"red"}] + +$data remove storage datalib:engine permissions.$(player).$(perm) + +scoreboard players set $prv_pid dl.tmp 0 +$execute store result score $prv_pid dl.tmp run data get storage datalib:engine player_pids.$(player) +$execute as @a if score @s datalib.pid = $prv_pid dl.tmp run tag @s remove perm.$(perm) +$advancement revoke @a[name=$(player),limit=1] only datalib:api/perm/$(perm) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/revoke ","color":"aqua"},{"text":"✘ ","color":"red"},{"text":"$(player)","color":"white"},{"text":" — ","color":"#555555"},{"text":"$(perm)","color":"aqua"},{"text":" revoked","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/run.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/run.mcfunction new file mode 100644 index 0000000..906356a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/run.mcfunction @@ -0,0 +1,15 @@ +scoreboard players set $pr_pid dl.tmp 0 +$execute store result score $pr_pid dl.tmp run data get storage datalib:engine player_pids.$(player) +execute if score $pr_pid dl.tmp matches 0 run return 0 + +data modify storage datalib:engine _pr_tmp set value {result:0b} +execute as @a if score @s datalib.pid = $pr_pid dl.tmp run execute if entity @s[tag=datalib.admin] run data modify storage datalib:engine _pr_tmp.result set value 1b +$execute as @a if score @s datalib.pid = $pr_pid dl.tmp run execute if entity @s[tag=perm.$(perm)] run data modify storage datalib:engine _pr_tmp.result set value 1b + +$execute if data storage datalib:engine _pr_tmp{result:0b} run execute as @a if score @s datalib.pid = $pr_pid dl.tmp run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"$(perm)","color":"yellow"},{"text":" — you don't have this permission.","color":"red"}] +execute if data storage datalib:engine _pr_tmp{result:0b} run return 0 + +$execute as @a if score @s datalib.pid = $pr_pid dl.tmp at @s run $(cmd) + +data remove storage datalib:engine _pr_tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/run ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" [","color":"#555555"},{"text":"$(perm)","color":"green"},{"text":"] → ","color":"#555555"},{"text":"$(cmd)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/bind.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/bind.mcfunction new file mode 100644 index 0000000..8113fff --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/bind.mcfunction @@ -0,0 +1,9 @@ +$scoreboard objectives add $(name) trigger + +$execute unless data storage datalib:engine perm_triggers.$(name) run data modify storage datalib:engine perm_triggers.$(name) set value [] +$data modify storage datalib:engine perm_triggers.$(name) append value {value:$(value), func:"$(func)", perm:"$(perm)"} + +execute unless data storage datalib:engine perm_trigger_names run data modify storage datalib:engine perm_trigger_names set value [] +$execute unless data storage datalib:engine perm_trigger_names[{name:"$(name)"}] run data modify storage datalib:engine perm_trigger_names append value {name:"$(name)"} + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/trigger/bind ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(name)","color":"white"},{"text":":","color":"#555555"},{"text":"$(value)","color":"yellow"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"},{"text":" [","color":"#555555"},{"text":"$(perm)","color":"green"},{"text":"]","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/bind_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/bind_cmd.mcfunction new file mode 100644 index 0000000..f763997 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/bind_cmd.mcfunction @@ -0,0 +1,9 @@ +$scoreboard objectives add $(name) trigger + +$execute unless data storage datalib:engine perm_triggers.$(name) run data modify storage datalib:engine perm_triggers.$(name) set value [] +$data modify storage datalib:engine perm_triggers.$(name) append value {value:$(value), cmd:"$(cmd)", perm:"$(perm)"} + +execute unless data storage datalib:engine perm_trigger_names run data modify storage datalib:engine perm_trigger_names set value [] +$execute unless data storage datalib:engine perm_trigger_names[{name:"$(name)"}] run data modify storage datalib:engine perm_trigger_names append value {name:"$(name)"} + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/trigger/bind_cmd ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(name)","color":"white"},{"text":":","color":"#555555"},{"text":"$(value)","color":"yellow"},{"text":" → ","color":"#555555"},{"text":"$(cmd)","color":"aqua"},{"text":" [","color":"#555555"},{"text":"$(perm)","color":"green"},{"text":"]","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/clear.mcfunction new file mode 100644 index 0000000..5f3e29c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/clear.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine perm_triggers.$(name) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/trigger/clear ","color":"aqua"},{"text":"⚠ ","color":"yellow"},{"text":"$(name)","color":"white"},{"text":" — all binds cleanndi","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/enable.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/enable.mcfunction new file mode 100644 index 0000000..1456937 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/enable.mcfunction @@ -0,0 +1,15 @@ +scoreboard players set $pte_pid dl.tmp 0 +$execute store result score $pte_pid dl.tmp run data get storage datalib:engine player_pids.$(player) +execute if score $pte_pid dl.tmp matches 0 run return 0 + +data modify storage datalib:engine _pte_tmp set value {result:0b} +execute as @a if score @s datalib.pid = $pte_pid dl.tmp run execute if entity @s[tag=datalib.admin] run data modify storage datalib:engine _pte_tmp.result set value 1b +$execute if data storage datalib:engine permissions.$(player).$(perm) run data modify storage datalib:engine _pte_tmp.result set value 1b + +$execute if data storage datalib:engine _pte_tmp{result:0b} run execute as @a if score @s datalib.pid = $pte_pid dl.tmp run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"$(perm)","color":"yellow"},{"text":" — you don't have this permission.","color":"red"}] +execute if data storage datalib:engine _pte_tmp{result:0b} run return 0 + +$execute as @a if score @s datalib.pid = $pte_pid dl.tmp run scoreboard players enable @s $(name) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/trigger/enable ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(player)","color":"white"},{"text":" — ","color":"#555555"},{"text":"$(name)","color":"aqua"},{"text":" enabled","color":"#555555"}] +data remove storage datalib:engine _pte_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/unbind.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/unbind.mcfunction new file mode 100644 index 0000000..38b46d5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/perm/trigger/unbind.mcfunction @@ -0,0 +1,13 @@ +$execute unless data storage datalib:engine perm_triggers.$(name) run return 0 + +$data modify storage datalib:engine _pt_unbind set from storage datalib:engine perm_triggers.$(name) +$data modify storage datalib:engine perm_triggers.$(name) set value [] +$data modify storage datalib:engine _pt_uval set value $(value) +$data modify storage datalib:engine _pt_filter_ctx set value {name:"$(name)"} + +function datalib:core/internal/api/perm/trigger/unbind_filter + +data remove storage datalib:engine _pt_unbind +data remove storage datalib:engine _pt_uval +data remove storage datalib:engine _pt_filter_ctx +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm/trigger/unbind ","color":"aqua"},{"text":"✘ ","color":"red"},{"text":"$(name)","color":"white"},{"text":":","color":"#555555"},{"text":"$(value)","color":"yellow"},{"text":" removed","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/security/allowlist_add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/security/allowlist_add.mcfunction new file mode 100644 index 0000000..acd8989 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/security/allowlist_add.mcfunction @@ -0,0 +1,14 @@ +# datalib:api/security/allowlist_add [MACRO] +# Adds a command prefix to datalib:engine security.sandbox_allowlist (compound). +# Compound format: {give:1b, say:1b, ...} — O(1) lookup. +# +# BREAKING CHANGE (v6.0.0): allowlist is now a compound, not a list. +# Enforcement is now ACTIVE — unlisted commands in sandbox mode are blocked + kick. +# +# INPUT (macro args): +# $(prefix) — command prefix string, e.g. "say" or "give" +# +# EXAMPLE: +# function datalib:api/security/allowlist_add {prefix:"say"} +$data modify storage datalib:engine security.sandbox_allowlist merge value {$(prefix):1b} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"security/allowlist_add ","color":"aqua"},{"text":"$(prefix)","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/security/allowlist_clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/security/allowlist_clear.mcfunction new file mode 100644 index 0000000..c4896d2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/security/allowlist_clear.mcfunction @@ -0,0 +1,4 @@ +# datalib:api/security/allowlist_clear +# Clears the entire sandbox_allowlist (all prefixes blocked in sandbox mode). +data modify storage datalib:engine security.sandbox_allowlist set value {} +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"security/allowlist_clear ","color":"aqua"},{"text":"✔ cleared","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/security/get_level.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/security/get_level.mcfunction new file mode 100644 index 0000000..4ac5771 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/security/get_level.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/security/get_level [MACRO] +# Shows a player's current dl.perm_level to debug admins. +# +# INPUT (macro args): +# $(player) — exact player name +# +# EXAMPLE: +# function datalib:api/security/get_level {player:"Steve"} +# ───────────────────────────────────────────────────────────────── +$execute as @a[name=$(player),limit=1] run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"security/get_level ","color":"aqua"},{"text":"$(player)","color":"gold"},{"text":" → ","color":"#555555"},{"score":{"name":"@s","objective":"dl.perm_level"},"color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/security/set_level.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/security/set_level.mcfunction new file mode 100644 index 0000000..be9f40a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/security/set_level.mcfunction @@ -0,0 +1,24 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/security/set_level [MACRO] +# Sets a player's dl.perm_level scoreboard value. +# +# INPUT (macro args): +# $(player) — exact player name +# $(level) — integer level (0=none, 1=basic, 2=standard, +# 3=elevated/$$(cmd), 4=super) +# +# EXAMPLE: +# function datalib:api/security/set_level {player:"Steve",level:3} +# +# LEVELS: +# 0 No access (default for new players) +# 1 Basic — may use cmd/ functions that only require admin_min_level=1 +# 2 Standard — full cmd/ access (default admin_min_level) +# 3 Elevated — may also trigger $$(cmd) execution +# 4 Super — may trigger $$(cmd) even in sandbox mode +# +# NOTE: admin_can_override:0b means even level-4 users are subject +# to the security.sandbox_cmd_min_level floor. +# ───────────────────────────────────────────────────────────────── +$execute as @a[name=$(player),limit=1] run scoreboard players set @s dl.perm_level $(level) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"security/set_level ","color":"aqua"},{"text":"$(player)","color":"gold"},{"text":" → ","color":"#555555"},{"text":"$(level)","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/title/actionbar.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/title/actionbar.mcfunction new file mode 100644 index 0000000..1667e29 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/title/actionbar.mcfunction @@ -0,0 +1,20 @@ +# datalib:api/title/actionbar — Raw JSON actionbar display [MACRO] +# Displays a full JSON component string in the actionbar of a named player. +# Unlike cmd/actionbar (text + color only), this accepts any serialized component +# including gradients, translate, score, selector, and nbt text sources. +# +# Input (macro args): +# player — player name selector string (e.g. "Steve") +# json — serialized JSON component string +# +# Output → none +# +# Usage: +# function datalib:api/title/actionbar {player:"Steve",json:'{"text":"HP: 20/20","color":"red"}'} +# function datalib:api/title/actionbar {player:"Steve",\ +# json:'[{"text":"Kills: "},{"score":{"name":"@s","objective":"kills"},"color":"gold"}]'} + +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$title @a[name=$(player),limit=1] actionbar $(json) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"title/actionbar ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/title/broadcast.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/title/broadcast.mcfunction new file mode 100644 index 0000000..c8be5ed --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/title/broadcast.mcfunction @@ -0,0 +1,27 @@ +# datalib:api/title/broadcast — Broadcast title + subtitle + times to all players [MACRO] +# Sends a complete title display (timing + title + subtitle) to every online player. +# Unlike cmd/title_all which only sends a plain title to @a with no subtitle or +# timing control, this sets times and subtitle in the same atomic call. +# +# Input (macro args): +# title — title text +# subtitle — subtitle text +# color — title color (e.g. "red", "#RRGGBB") +# sub_color — subtitle color (e.g. "yellow", "#RRGGBB") +# fade_in — ticks to fade in (e.g. 20) +# stay — ticks to stay (e.g. 100) +# fade_out — ticks to fade out (e.g. 20) +# +# Output → none +# +# Usage: +# function datalib:api/title/broadcast {title:"Server restart in 5 min",\ +# subtitle:"Save your progress!",color:"red",sub_color:"yellow",\ +# fade_in:20,stay:100,fade_out:20} + +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$title @a times $(fade_in) $(stay) $(fade_out) +$title @a title {"text":"$(title)","color":"$(color)"} +$title @a subtitle {"text":"$(subtitle)","color":"$(sub_color)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"title/broadcast ","color":"aqua"},{"text":"@a ","color":"gray"},{"text":"→ ","color":"#555555"},{"text":"$(title)","color":"$(color)"},{"text":" / ","color":"#555555"},{"text":"$(subtitle)","color":"$(sub_color)"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/title/show.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/title/show.mcfunction new file mode 100644 index 0000000..2dc05dd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/title/show.mcfunction @@ -0,0 +1,27 @@ +# datalib:api/title/show — Atomic title display [MACRO] +# Sets display timing then shows title + subtitle for one player in a single call. +# Unlike calling cmd/title_times + cmd/title + cmd/subtitle separately, +# this guarantees consistent timing for the title/subtitle pair. +# +# Input (macro args): +# player — player name selector string (e.g. "Steve") +# title — title text +# subtitle — subtitle text +# color — title color (e.g. "gold", "#RRGGBB") +# sub_color — subtitle color (e.g. "gray", "#RRGGBB") +# fade_in — ticks to fade in (e.g. 10) +# stay — ticks to stay (e.g. 60) +# fade_out — ticks to fade out (e.g. 10) +# +# Output → none +# +# Usage: +# function datalib:api/title/show {player:"Steve",title:"Hello",subtitle:"welcome back",\ +# color:"gold",sub_color:"gray",fade_in:10,stay:60,fade_out:10} + +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$title @a[name=$(player),limit=1] times $(fade_in) $(stay) $(fade_out) +$title @a[name=$(player),limit=1] title {"text":"$(title)","color":"$(color)"} +$title @a[name=$(player),limit=1] subtitle {"text":"$(subtitle)","color":"$(sub_color)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"title/show ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(title)","color":"$(color)"},{"text":" / ","color":"#555555"},{"text":"$(subtitle)","color":"$(sub_color)"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/title/show_raw.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/title/show_raw.mcfunction new file mode 100644 index 0000000..81c60f3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/title/show_raw.mcfunction @@ -0,0 +1,26 @@ +# datalib:api/title/show_raw — Atomic title display with raw JSON [MACRO] +# Like title/show but accepts full serialized JSON component strings, +# allowing gradients, translate, score, selector, and nbt text sources. +# +# Input (macro args): +# player — player name selector string (e.g. "Steve") +# title_json — serialized JSON component for title (must be a valid JSON text component) +# subtitle_json — serialized JSON component for subtitle (must be a valid JSON text component) +# fade_in — ticks to fade in +# stay — ticks to stay +# fade_out — ticks to fade out +# +# Output → none +# +# Usage: +# function datalib:api/title/show_raw {player:"Steve",\ +# title_json:'{"text":"Hello","color":"gold","bold":true}',\ +# subtitle_json:'[{"text":"Welcome "},{"score":{"name":"@s","objective":"kills"}}]',\ +# fade_in:10,stay:70,fade_out:20} + +execute unless function datalib:debug/tools/utils/check_all run return 0 + +$title @a[name=$(player),limit=1] times $(fade_in) $(stay) $(fade_out) +$title @a[name=$(player),limit=1] title $(title_json) +$title @a[name=$(player),limit=1] subtitle $(subtitle_json) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"title/show_raw ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/cb/false.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/cb/false.mcfunction new file mode 100644 index 0000000..2948bb7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/cb/false.mcfunction @@ -0,0 +1,2 @@ +data modify storage datalib:engine modules.cb set value 0b +tellraw @s [{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cb module: ","color":"aqua"},{"text":"disabled","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/cb/true.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/cb/true.mcfunction new file mode 100644 index 0000000..3700e3b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/cb/true.mcfunction @@ -0,0 +1,2 @@ +data modify storage datalib:engine modules.cb set value 1b +tellraw @s [{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cb module: ","color":"aqua"},{"text":"enabled","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/geo/false.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/geo/false.mcfunction new file mode 100644 index 0000000..ea5e4ef --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/geo/false.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/toggle/geo/false — Disable the geo/region_watch module + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.geo set value 0b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"disabled","color":"red"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/geo ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"false","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/geo/true.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/geo/true.mcfunction new file mode 100644 index 0000000..da4fe90 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/geo/true.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/toggle/geo/true — Enable the geo/region_watch module + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.geo set value 1b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"enabled","color":"green"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/geo ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"true","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/hook/false.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/hook/false.mcfunction new file mode 100644 index 0000000..5e7b108 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/hook/false.mcfunction @@ -0,0 +1,10 @@ +# datalib:api/toggle/hook/false — Disable the hook module +# Called by the module toggle dialog when State = false. +# Caller: datalib.admin tag required (enforced by dialog show guard in show.mcfunction) + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.hook set value 0b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"hook","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"disabled","color":"red"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/hook ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"false","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/hook/true.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/hook/true.mcfunction new file mode 100644 index 0000000..effa141 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/hook/true.mcfunction @@ -0,0 +1,10 @@ +# datalib:api/toggle/hook/true — Enable the hook module +# Called by the module toggle dialog when State = true. +# Caller: datalib.admin tag required (enforced by dialog show guard in show.mcfunction) + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.hook set value 1b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"hook","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"enabled","color":"green"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/hook ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"true","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/interaction/false.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/interaction/false.mcfunction new file mode 100644 index 0000000..3f08f5d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/interaction/false.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/toggle/interaction/false — Disable the interaction (IE) module + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.interaction set value 0b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"interaction","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"disabled","color":"red"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/interaction ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"false","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/interaction/true.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/interaction/true.mcfunction new file mode 100644 index 0000000..f612a12 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/interaction/true.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/toggle/interaction/true — Enable the interaction (IE) module + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.interaction set value 1b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"interaction","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"enabled","color":"green"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/interaction ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"true","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/list.mcfunction new file mode 100644 index 0000000..7f2f855 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/list.mcfunction @@ -0,0 +1,11 @@ +# datalib:api/toggle/list +# Prints the enabled/disabled state of all DL modules. +# +# Usage: function datalib:api/toggle/list +# Caller: datalib.admin tag required + +execute unless entity @s[tag=datalib.admin] run return 0 + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Module States ━━━━━━━━━━━━━━━","color":"#555555"}] +tellraw @s ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"modules","interpret":false,"color":"yellow"}] +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/perm/false.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/perm/false.mcfunction new file mode 100644 index 0000000..600813b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/perm/false.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/toggle/perm/false — Disable the perm trigger module + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.perm set value 0b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"disabled","color":"red"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/perm ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"false","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/perm/true.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/perm/true.mcfunction new file mode 100644 index 0000000..69cfa7a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/perm/true.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/toggle/perm/true — Enable the perm trigger module + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.perm set value 1b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"perm","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"enabled","color":"green"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/perm ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"true","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/show.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/show.mcfunction new file mode 100644 index 0000000..9069ebc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/show.mcfunction @@ -0,0 +1,19 @@ +# datalib:api/toggle/show +# Opens the module toggle dialog (inline, 1.21.6+). +# +# Usage: function datalib:api/toggle/show +# Caller: datalib.admin tag required +# +# On submit → dialog calls: +# /function datalib:api/toggle// +# where is "true" (enable) or "false" (disable). +# +# Supported modules: hook, interaction, perm, wand, geo +# +# NOTE: template uses $(Module) and $(2) to match the defined input keys. +# The original spec used $(1) which does not correspond to any key; +# $(Module) is the correct substitution for key:"Module". + +execute unless entity @s[tag=datalib.admin] run return 0 + +dialog show @s {"type":"minecraft:multi_action","title":"","inputs":[{"type":"minecraft:text","key":"Module","label":"Module Name","label_visible":true,"max_length":64},{"type":"minecraft:boolean","key":"2","label":"Enabled","initial":true,"on_true":"true","on_false":"false"}],"can_close_with_escape":true,"after_action":"close","pause":false,"exit_action":{"label":"Close"},"actions":[{"label":"Apply","action":{"type":"minecraft:dynamic/run_command","template":"/function datalib:api/toggle/$(Module)/$(2)"}}]} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/wand/false.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/wand/false.mcfunction new file mode 100644 index 0000000..0d373a3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/wand/false.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/toggle/wand/false — Disable the wand module + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.wand set value 0b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"disabled","color":"red"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/wand ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"false","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/wand/true.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/wand/true.mcfunction new file mode 100644 index 0000000..fa7788f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/toggle/wand/true.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/toggle/wand/true — Enable the wand module + +execute unless entity @s[tag=datalib.admin] run return 0 + +data modify storage datalib:engine modules.wand set value 1b + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"enabled","color":"green"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"toggle/wand ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"true","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/bind.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/bind.mcfunction new file mode 100644 index 0000000..8a51b45 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/bind.mcfunction @@ -0,0 +1,4 @@ +execute unless data storage datalib:engine trigger_binds run data modify storage datalib:engine trigger_binds set value [] + +$data modify storage datalib:engine trigger_binds append value {value:$(value), func:"$(func)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"trigger/bind ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(value)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/bind_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/bind_cmd.mcfunction new file mode 100644 index 0000000..9a19a95 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/bind_cmd.mcfunction @@ -0,0 +1,4 @@ +execute unless data storage datalib:engine trigger_binds run data modify storage datalib:engine trigger_binds set value [] + +$data modify storage datalib:engine trigger_binds append value {value:$(value), cmd:"$(cmd)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"trigger/bind_cmd ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(value)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(cmd)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/disable.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/disable.mcfunction new file mode 100644 index 0000000..f1701dd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/disable.mcfunction @@ -0,0 +1,2 @@ +$scoreboard players reset $(player) dl_action +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"trigger/disable ","color":"aqua"},{"text":"· ","color":"#555555"},{"text":"$(player)","color":"white"},{"text":" — dl_action disabled","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/enable.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/enable.mcfunction new file mode 100644 index 0000000..06a0779 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/enable.mcfunction @@ -0,0 +1,2 @@ +$scoreboard players enable $(player) dl_action +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"trigger/enable ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(player)","color":"white"},{"text":" — dl_action enabled","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/list.mcfunction new file mode 100644 index 0000000..c7263f3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/list.mcfunction @@ -0,0 +1,4 @@ +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Trigger Binds ","color":"aqua"},{"text":"━━━━━━━━━━━━━","color":"#555555"}] +execute unless data storage datalib:engine trigger_binds[0] run tellraw @s ["",{"text":" ","color":"#555555"},{"text":"(no binds registered)","color":"gray","italic":true}] +execute if data storage datalib:engine trigger_binds[0] run tellraw @s ["",{"text":" ","color":"#555555"},{"nbt":"trigger_binds","storage":"datalib:engine","interpret":false,"color":"yellow"}] +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/unbind.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/unbind.mcfunction new file mode 100644 index 0000000..5462ff4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/unbind.mcfunction @@ -0,0 +1,10 @@ +execute unless data storage datalib:engine trigger_binds run return 0 + +data modify storage datalib:engine _tc_unbind set from storage datalib:engine trigger_binds +data modify storage datalib:engine trigger_binds set value [] + +$data modify storage datalib:engine _tc_uval set value $(value) +function datalib:core/internal/api/trigger/unbind_filter +data remove storage datalib:engine _tc_unbind +data remove storage datalib:engine _tc_uval +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"trigger/unbind ","color":"aqua"},{"text":"✘ ","color":"red"},{"text":"value=$(value)","color":"white"},{"text":" removed","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/unbind_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/unbind_all.mcfunction new file mode 100644 index 0000000..d3e2f43 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/trigger/unbind_all.mcfunction @@ -0,0 +1,2 @@ +data modify storage datalib:engine trigger_binds set value [] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"trigger/unbind_all ","color":"aqua"},{"text":"⚠ ","color":"yellow"},{"text":"all trigger binds cleared","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/cooldown_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/cooldown_check.mcfunction new file mode 100644 index 0000000..55cce5d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/cooldown_check.mcfunction @@ -0,0 +1,23 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/cooldown_check +# Checks whether the wand cooldown is active. +# NOTE: Wand cooldowns are stored under datalib:engine wand_cooldowns; +# this avoids collision with datalib:cooldown module's "$(player).$(key)" path +# so there is zero risk of key collision. +# +# INPUT: +# $(player) → player name +# $(tag) → wand tag +# OUTPUT: +# datalib:output result → 0b=ready (no cooldown), 1b=cooldown active +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output result set value 0b + +$execute unless data storage datalib:engine wand_cooldowns.$(player).$(tag) run return 0 + +$execute store result score $wcc_exp dl.tmp run data get storage datalib:engine wand_cooldowns.$(player).$(tag) +execute store result score $wcc_now dl.tmp run scoreboard players get $epoch datalib.time + +execute if score $wcc_now dl.tmp < $wcc_exp dl.tmp run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/cooldown_check ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" [$(tag)] → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/cooldown_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/cooldown_set.mcfunction new file mode 100644 index 0000000..429915f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/cooldown_set.mcfunction @@ -0,0 +1,18 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/cooldown_set +# Applies a cooldown to wand usage. +# NOTE: Wand cooldowns are stored under datalib:engine wand_cooldowns; +# this avoids collision with datalib:cooldown module's "$(player).$(key)" path +# so there is zero risk of key collision. +# +# INPUT: +# $(player) → player name +# $(tag) → wand tag +# $(duration) → cooldown duration (in ticks) +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $wcd_dur dl.tmp $(duration) +execute store result score $wcd_now dl.tmp run scoreboard players get $epoch datalib.time +scoreboard players operation $wcd_now dl.tmp += $wcd_dur dl.tmp +$execute store result storage datalib:engine wand_cooldowns.$(player).$(tag) int 1 run scoreboard players get $wcd_now dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/cooldown_set ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" [$(tag)] ","color":"#555555"},{"text":"$(duration)t","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/give.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/give.mcfunction new file mode 100644 index 0000000..f8112fd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/give.mcfunction @@ -0,0 +1,19 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/give +# Gives the player a carrot_on_a_stick marked as a wand. +# The item is automatically tagged with custom_data. +# +# INPUT: +# $(player) → target player +# $(tag) → wand tag (written into custom_data) +# $(name) → item name (JSON text component, e.g. "Fire Wand") +# +# EXAMPLE: +# data modify storage datalib:input player set value "Steve" +# data modify storage datalib:input tag set value "fire_wand" +# data modify storage datalib:input name set value "Fire Wand" +# function datalib:api/wand/give with storage datalib:input {} +# ───────────────────────────────────────────────────────────────── + +$give @a[name=$(player),limit=1] minecraft:carrot_on_a_stick[minecraft:custom_data={wand:"$(tag)"},minecraft:item_name={"text":"$(name)"},minecraft:enchantment_glint_override=true] +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/give ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(tag)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/give_custom.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/give_custom.mcfunction new file mode 100644 index 0000000..1d50e1b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/give_custom.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/give_custom +# Gives a custom item tagged as a wand. +# Any item type can be used (sword, stick, etc.) +# but right-click only works with carrot_on_a_stick. +# +# INPUT: +# $(player) → target player +# $(tag) → wand tag +# $(name) → item name (JSON text string) +# $(count) → quantity (default 1) +# +# EXAMPLE: +# data modify storage datalib:input player set value "Steve" +# data modify storage datalib:input tag set value "ice_wand" +# data modify storage datalib:input name set value "Ice Wand" +# data modify storage datalib:input count set value 1 +# function datalib:api/wand/give_custom with storage datalib:input {} +# ───────────────────────────────────────────────────────────────── + +$give @a[name=$(player),limit=1] minecraft:carrot_on_a_stick[minecraft:custom_data={wand:"$(tag)"},minecraft:item_name={"text":"$(name)"},minecraft:enchantment_glint_override=true] $(count) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/give_custom ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(item)","color":"aqua"},{"text":" [$(tag)]","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/give_lore.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/give_lore.mcfunction new file mode 100644 index 0000000..3c34fab --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/give_lore.mcfunction @@ -0,0 +1,21 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/give_lore +# Writes the wand with lore to mainhand (item replace). +# +# INPUT (storage datalib:input): +# player → target player name +# tag → wand tag +# name → item name (string) +# lore → lore metni, TEK SATIR (string) +# color → lore color (e.g. "red", "gold", "gray") +# +# EXAMPLE: +# data modify storage datalib:input player set value "Steve" +# data modify storage datalib:input tag set value "fire_wand" +# data modify storage datalib:input name set value "Fire Wand" +# data modify storage datalib:input lore set value "Fire Damage: +20" +# data modify storage datalib:input color set value "red" +# function datalib:api/wand/give_lore +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/api/wand/give_lore_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/has.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/has.mcfunction new file mode 100644 index 0000000..ffbefec --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/has.mcfunction @@ -0,0 +1,14 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/has +# Does the player hold a specific wand in their main hand? +# +# INPUT: +# $(player) → player name +# $(tag) → wand tag to check +# OUTPUT: +# datalib:output result → 1b (found) / 0b (not found) +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output result set value 0b +$execute as @a[name=$(player),limit=1] if items entity @s weapon.mainhand *[minecraft:custom_data~{wand:"$(tag)"}] run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/has ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" [$(tag)] → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/list.mcfunction new file mode 100644 index 0000000..a7a49eb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/list.mcfunction @@ -0,0 +1,5 @@ +# datalib:api/wand/list — Shows registered wand binds. +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Wand Binds ","color":"aqua"},{"text":"━━━━━━━━━━━━━━━","color":"#555555"}] +execute unless data storage datalib:engine wand_binds[0] run tellraw @s ["",{"text":" ","color":"#555555"},{"text":"(no wand binds)","color":"gray","italic":true}] +execute if data storage datalib:engine wand_binds[0] run tellraw @s ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"wand_binds","interpret":false,"color":"yellow"}] +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/register.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/register.mcfunction new file mode 100644 index 0000000..aa65ab2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/register.mcfunction @@ -0,0 +1,17 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/register +# Registers a wand with a specific custom_data tag. +# On every item use, $(func) or $(cmd) runs. +# +# INPUT (storage datalib:input): +# tag → custom_data tag name (e.g. "my_wand") +# func → (optional) function to run +# cmd → (optional) command to run (if no func) +# +# USAGE: +# data modify storage datalib:input tag set value "fire_wand" +# data modify storage datalib:input func set value "mypack:on_fire_wand" +# function datalib:api/wand/register with storage datalib:input {} +# ───────────────────────────────────────────────────────────────── +execute unless data storage datalib:engine wand_binds run data modify storage datalib:engine wand_binds set value [] +function datalib:core/internal/api/wand/register_do with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/register_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/register_cmd.mcfunction new file mode 100644 index 0000000..122a03e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/register_cmd.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/register_cmd +# Binds a raw command to a wand (carrot_on_a_stick). +# +# INPUT (storage datalib:input): +# tag → custom_data tag name +# cmd → raw command to run +# ───────────────────────────────────────────────────────────────── +execute unless data storage datalib:engine wand_binds run data modify storage datalib:engine wand_binds set value [] +function datalib:core/internal/api/wand/register_cmd_do with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/register_fn.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/register_fn.mcfunction new file mode 100644 index 0000000..c0e8f24 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/register_fn.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/register_fn +# Binds a function to a wand (carrot_on_a_stick). +# +# INPUT (storage datalib:input): +# tag → custom_data tag name +# func → function to run +# ───────────────────────────────────────────────────────────────── +execute unless data storage datalib:engine wand_binds run data modify storage datalib:engine wand_binds set value [] +function datalib:core/internal/api/wand/register_fn_do with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/unregister.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/unregister.mcfunction new file mode 100644 index 0000000..41f64d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/unregister.mcfunction @@ -0,0 +1,13 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/unregister +# Removes all wand binds belonging to a specific tag. +# +# INPUT (storage datalib:input): +# tag → wand tag to remove +# +# EXAMPLE: +# data modify storage datalib:input tag set value "fire_wand" +# function datalib:api/wand/unregister +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/api/wand/unregister_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/unregister_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/unregister_all.mcfunction new file mode 100644 index 0000000..15ce218 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/api/wand/unregister_all.mcfunction @@ -0,0 +1,3 @@ +# datalib:api/wand/unregister_all — Clears all wand binds. +data modify storage datalib:engine wand_binds set value [] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/unregister_all ","color":"aqua"},{"text":"⚠ all wand binds cleared","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cmd/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cmd/exec.mcfunction new file mode 100644 index 0000000..ae1d9d7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cmd/exec.mcfunction @@ -0,0 +1,8 @@ +# datalib:core/cmd/exec +# Bridges datalib:input cmd → datalib:engine tools_trigger → dispatch. +# Called only when datalib:input cmd exists. + +data modify storage datalib:engine tools_trigger set from storage datalib:input cmd +function datalib:core/internal/debug/tools/trigger/dispatch +data remove storage datalib:engine tools_trigger +data remove storage datalib:input cmd diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cmd/run.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cmd/run.mcfunction new file mode 100644 index 0000000..2829824 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cmd/run.mcfunction @@ -0,0 +1,22 @@ +# datalib:core/cmd/run +# Entry point for the command dispatcher. +# Fires when any player triggers dl_run (via player_systems.mcfunction). +# Expects datalib:input cmd to be set before triggering: +# data merge storage datalib:input {cmd:{type:"...", data:{...}}} +# /trigger dl_run set 1 +# +# Available types: see datalib:debug/tools/trigger/internal/dispatch for full list. +# Examples: +# msg → data:{player:"Name", message:"..."} +# give → data:{player:"Name", item:"minecraft:diamond", count:1} +# gamemode → data:{player:"Name", mode:"survival"} +# tp → data:{player:"Name", x:0, y:64, z:0} +# effect_add → data:{player:"Name", effect:"minecraft:speed", duration:100, amplifier:1} +# score_set → data:{player:"Name", objective:"obj", value:10} +# tag_add → data:{player:"Name", tag:"myTag"} +# xp → data:{player:"Name", amount:100, type:"points"} +# fill → data:{x1:0,y1:0,z1:0,x2:1,y2:1,z2:1,block:"minecraft:stone"} +# setblock → data:{x:0, y:64, z:0, block:"minecraft:stone"} + +execute if data storage datalib:input cmd run function datalib:core/cmd/exec +execute unless data storage datalib:input cmd run tellraw @s [{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd: ","color":"aqua"},{"text":"datalib:input cmd not set","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/delete.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/delete.mcfunction new file mode 100644 index 0000000..ce26433 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/delete.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine config.$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"config/delete ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/exec.mcfunction new file mode 100644 index 0000000..26cedd7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/exec.mcfunction @@ -0,0 +1,19 @@ +# datalib:core/config/exec [MACRO] +# Runs a function if the config score matches a range. +# Works with values stored on datalib.config scoreboard via score_set. +# +# INPUT (macro args): +# $(key) — scoreboard fake player name (e.g. "damage") +# $(matches) — score range string (e.g. "1..", "5", "1..10") +# $(func) — function to run if condition is true +# +# USAGE: +# data modify storage datalib:input key set value "pvp_enabled" +# data modify storage datalib:input matches set value "1.." +# data modify storage datalib:input func set value "mypack:on_pvp" +# function datalib:core/config/exec with storage datalib:input {} +# +# EXAMPLE (bind a command instead of func): +# Use score_set to write the value, then check inline: +# execute if score #pvp_enabled datalib.config matches 1.. run function mypack:on_pvp +$execute if score #$(key) datalib.config matches $(matches) run function $(func) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/get.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/get.mcfunction new file mode 100644 index 0000000..a9a6697 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/get.mcfunction @@ -0,0 +1,4 @@ +data modify storage datalib:output result set value "" + +$execute if data storage datalib:engine config.$(key) run data modify storage datalib:output result set from storage datalib:engine config.$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"config/get ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/has.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/has.mcfunction new file mode 100644 index 0000000..1f9cc14 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/has.mcfunction @@ -0,0 +1,3 @@ +data modify storage datalib:output result set value 0b +$execute if data storage datalib:engine config.$(key) run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"config/has ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/list.mcfunction new file mode 100644 index 0000000..92087a9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/list.mcfunction @@ -0,0 +1,4 @@ +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Config Values ","color":"aqua"},{"text":"━━━━━━━━━━━","color":"#555555"}] +execute if data storage datalib:engine config run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"config","interpret":false,"color":"green"}] +execute unless data storage datalib:engine config run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"text":"(no config values set)","color":"gray","italic":true}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/reset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/reset.mcfunction new file mode 100644 index 0000000..5ffbcba --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/reset.mcfunction @@ -0,0 +1 @@ +data remove storage datalib:engine config diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/score_get.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/score_get.mcfunction new file mode 100644 index 0000000..b9c8660 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/score_get.mcfunction @@ -0,0 +1,5 @@ +# datalib:core/config/score_get +# Prints a config value to the caller (admin only, debug use). +# Usage: $function datalib:core/config/score_get {key:"damage"} +execute unless entity @s[tag=datalib.admin] run return 0 +$tellraw @s ["",{"text":"[Config] ","color":"aqua"},{"text":"#$(key)","color":"white"},{"text":" = ","color":"#555555"},{"score":{"name":"#$(key)","objective":"datalib.config"},"color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/score_set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/score_set.mcfunction new file mode 100644 index 0000000..6b8d9fa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/score_set.mcfunction @@ -0,0 +1,5 @@ +# datalib:core/config/score_set +# Sets an integer config value on the datalib.config scoreboard. +# Usage: $function datalib:core/config/score_set {key:"damage",value:5} +# Read back: scoreboard players get #damage datalib.config +$scoreboard players set #$(key) datalib.config $(value) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/set.mcfunction new file mode 100644 index 0000000..973c7b1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/set.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine config.$(key) set value "$(value)" +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"config/set ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/set_default.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/set_default.mcfunction new file mode 100644 index 0000000..fbe1194 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/set_default.mcfunction @@ -0,0 +1,7 @@ +data modify storage datalib:output result set value 1b + +$execute if data storage datalib:engine config.$(key) run data modify storage datalib:output result set value 0b +$execute if data storage datalib:engine config.$(key) run return 0 + +$data modify storage datalib:engine config.$(key) set value "$(value)" +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"config/set_default ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/config/set_int.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/set_int.mcfunction new file mode 100644 index 0000000..59ba88f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/config/set_int.mcfunction @@ -0,0 +1,2 @@ +$execute store result storage datalib:engine config.$(key) int 1 run scoreboard players set $cfg_tmp dl.tmp $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"config/set_int ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/check.mcfunction new file mode 100644 index 0000000..28c2f6c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/check.mcfunction @@ -0,0 +1,9 @@ +data modify storage datalib:output result set value 1b + +$execute unless data storage datalib:engine cooldowns.$(player).$(key) run return 0 + +$execute store result score $cd_exp dl.tmp run data get storage datalib:engine cooldowns.$(player).$(key) +execute store result score $cd_now dl.tmp run scoreboard players get $epoch datalib.time + +execute if score $cd_now dl.tmp < $cd_exp dl.tmp run data modify storage datalib:output result set value 0b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/check ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/clear.mcfunction new file mode 100644 index 0000000..6a5059b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/clear.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine cooldowns.$(player).$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/clear ","color":"aqua"},{"text":"✘ ","color":"red"},{"text":"$(player)","color":"white"},{"text":":","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" cleared","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/clear_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/clear_all.mcfunction new file mode 100644 index 0000000..a37dfd7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/clear_all.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine cooldowns.$(player) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/clear_all ","color":"aqua"},{"text":"✘ ","color":"red"},{"text":"$(player)","color":"white"},{"text":" — all cooldowns cleared","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/detail.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/detail.mcfunction new file mode 100644 index 0000000..de3d90d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/detail.mcfunction @@ -0,0 +1,15 @@ +data merge storage datalib:output {active:0b,remaining:0,expires:0} + +$execute unless data storage datalib:engine cooldowns.$(player).$(key) run return 0 + +$execute store result score $cdd_exp dl.tmp run data get storage datalib:engine cooldowns.$(player).$(key) +execute store result storage datalib:output expires int 1 run scoreboard players get $cdd_exp dl.tmp + +execute store result score $cdd_now dl.tmp run scoreboard players get $epoch datalib.time + +execute if score $cdd_now dl.tmp < $cdd_exp dl.tmp run data modify storage datalib:output active set value 1b + +scoreboard players operation $cdd_exp dl.tmp -= $cdd_now dl.tmp +execute if score $cdd_exp dl.tmp matches 1.. run execute store result storage datalib:output remaining int 1 run scoreboard players get $cdd_exp dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/detail ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" active=","color":"#555555"},{"storage":"datalib:output","nbt":"active","color":"green"},{"text":" rem=","color":"#555555"},{"storage":"datalib:output","nbt":"remaining","color":"green"},{"text":" exp=","color":"#555555"},{"storage":"datalib:output","nbt":"expires","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/extend.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/extend.mcfunction new file mode 100644 index 0000000..65fb58b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/extend.mcfunction @@ -0,0 +1,13 @@ +execute store result score $ce_base dl.tmp run scoreboard players get $epoch datalib.time +scoreboard players operation $ce_exp dl.tmp = $ce_base dl.tmp + +$execute if data storage datalib:engine cooldowns.$(player).$(key) run execute store result score $ce_exp dl.tmp run data get storage datalib:engine cooldowns.$(player).$(key) + +execute if score $ce_exp dl.tmp <= $ce_base dl.tmp run scoreboard players operation $ce_exp dl.tmp = $ce_base dl.tmp + +$scoreboard players set $ce_amt dl.tmp $(amount) +scoreboard players operation $ce_exp dl.tmp += $ce_amt dl.tmp + +$execute store result storage datalib:engine cooldowns.$(player).$(key) int 1 run scoreboard players get $ce_exp dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/extend ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":":","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" +$(amount)t","color":"green"},{"text":" → exp=","color":"#555555"},{"score":{"name":"$ce_exp","objective":"dl.tmp"},"color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/is_ready.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/is_ready.mcfunction new file mode 100644 index 0000000..9805c1e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/is_ready.mcfunction @@ -0,0 +1,7 @@ +$data modify storage datalib:input player set value "$(player)" +$data modify storage datalib:input key set value "$(key)" +function datalib:core/cooldown/check with storage datalib:input {} +# check: result=0b → cooldown active. is_ready returns the inverse. +execute if data storage datalib:output {result:0b} run data modify storage datalib:output result set value 1b +execute if data storage datalib:output {result:1b} run data modify storage datalib:output result set value 0b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/is_ready ","color":"aqua"},{"text":"$(player):$(key) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/pause.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/pause.mcfunction new file mode 100644 index 0000000..fa14bf0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/pause.mcfunction @@ -0,0 +1,22 @@ +# datalib:core/cooldown/pause +# Pauses an active cooldown, saving the remaining ticks. +# Params: player, key +# Output: datalib:output result (remaining ticks saved), 0b if not active + +data modify storage datalib:output result set value 0b + +$execute unless data storage datalib:engine cooldowns.$(player).$(key) run return 0 + +# Calculate remaining ticks +$execute store result score $cdp_exp dl.tmp run data get storage datalib:engine cooldowns.$(player).$(key) +execute store result score $cdp_now dl.tmp run scoreboard players get $epoch datalib.time +scoreboard players operation $cdp_exp dl.tmp -= $cdp_now dl.tmp + +# Only pause if actually still active +execute unless score $cdp_exp dl.tmp matches 1.. run return 0 + +# Save remaining ticks to paused storage and clear the live cooldown +$execute store result storage datalib:engine paused_cooldowns.$(player).$(key) int 1 run scoreboard players get $cdp_exp dl.tmp +$data remove storage datalib:engine cooldowns.$(player).$(key) +execute store result storage datalib:output result int 1 run scoreboard players get $cdp_exp dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/pause ","color":"aqua"},{"text":"⏸ ","color":"yellow"},{"text":"$(player)","color":"white"},{"text":":","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"},{"text":"t remaining","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/remaining.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/remaining.mcfunction new file mode 100644 index 0000000..3334aa8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/remaining.mcfunction @@ -0,0 +1,9 @@ +data modify storage datalib:output result set value 0 +$execute unless data storage datalib:engine cooldowns.$(player).$(key) run return 0 + +$execute store result score $cd_exp dl.tmp run data get storage datalib:engine cooldowns.$(player).$(key) +execute store result score $cd_now dl.tmp run scoreboard players get $epoch datalib.time + +scoreboard players operation $cd_exp dl.tmp -= $cd_now dl.tmp +execute if score $cd_exp dl.tmp matches 1.. run execute store result storage datalib:output result int 1 run scoreboard players get $cd_exp dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/remaining ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/reset_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/reset_all.mcfunction new file mode 100644 index 0000000..2793c49 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/reset_all.mcfunction @@ -0,0 +1,13 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/cooldown/reset_all +# Clears all active cooldowns for a player. +# Girdi : $(player) → player name +# Output: (side effect only) +# +# Example: +# data modify storage datalib:input player set value "Steve" +# function datalib:core/cooldown/reset_all with storage datalib:input {} +# ───────────────────────────────────────────────────────────────── + +$data remove storage datalib:engine cooldowns.$(player) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/reset_all ","color":"aqua"},{"text":"$(player) all cooldowns cleared","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/resume.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/resume.mcfunction new file mode 100644 index 0000000..be700fe --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/resume.mcfunction @@ -0,0 +1,19 @@ +# datalib:core/cooldown/resume +# Resumes a previously paused cooldown. +# Params: player, key +# Output: datalib:output result (new expiry epoch tick), 0b if not paused + +data modify storage datalib:output result set value 0b + +$execute unless data storage datalib:engine paused_cooldowns.$(player).$(key) run return 0 + +# Reconstruct expiry: now + saved remaining ticks +$execute store result score $cdr_rem dl.tmp run data get storage datalib:engine paused_cooldowns.$(player).$(key) +execute store result score $cdr_now dl.tmp run scoreboard players get $epoch datalib.time +scoreboard players operation $cdr_now dl.tmp += $cdr_rem dl.tmp + +# Write back to live cooldowns, remove from paused +$execute store result storage datalib:engine cooldowns.$(player).$(key) int 1 run scoreboard players get $cdr_now dl.tmp +$data remove storage datalib:engine paused_cooldowns.$(player).$(key) +execute store result storage datalib:output result int 1 run scoreboard players get $cdr_now dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/resume ","color":"aqua"},{"text":"▶ ","color":"green"},{"text":"$(player)","color":"white"},{"text":":","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" resumed (","color":"#555555"},{"score":{"name":"$cdr_rem","objective":"dl.tmp"},"color":"yellow"},{"text":"t remaining)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/set.mcfunction new file mode 100644 index 0000000..d6c0d06 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/cooldown/set.mcfunction @@ -0,0 +1,5 @@ +$scoreboard players set $cd_dur dl.tmp $(duration) +execute store result score $cd_now dl.tmp run scoreboard players get $epoch datalib.time +scoreboard players operation $cd_now dl.tmp += $cd_dur dl.tmp +$execute store result storage datalib:engine cooldowns.$(player).$(key) int 1 run scoreboard players get $cd_now dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cooldown/set ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(player)","color":"white"},{"text":":","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" for ","color":"#555555"},{"text":"$(duration)","color":"green"},{"text":"t","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/disable/main.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/disable/main.mcfunction new file mode 100644 index 0000000..912463c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/disable/main.mcfunction @@ -0,0 +1,22 @@ +# datalib:disable — Dangerous command (confirmation gate required) +# +# Shuts down dataLib: removes all DL scoreboards, wipes datalib:engine +# and datalib:input storage, kills all DL marker entities. +# +# CHANGE FROM PREVIOUS BEHAVIOUR +# -------------------------------- +# This function NO LONGER runs cleanup immediately. +# It stores the disable intent in datalib:engine pending_gate and opens the +# dangerous-command gate. Cleanup runs only after admin confirms: +# /function dl_load:gate/yes +# +# To cancel: +# /function dl_load:gate/no +# +# Auto-cancel fires after 30 seconds if no response. +# +# REQUIRES: datalib.admin tag on calling entity +# (check_all → perm_check verifies this before any caller reaches here) + +data modify storage datalib:engine pending_gate set value {type:"disable"} +function dl_load:gate/request diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/dispatch/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/dispatch/exec.mcfunction new file mode 100644 index 0000000..ed43656 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/dispatch/exec.mcfunction @@ -0,0 +1,19 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/dispatch/exec [MACRO] +# THE ONLY file in dataLib that executes $function $(func). +# Do NOT call directly — use #datalib:internal/dispatch. +# +# INPUT (datalib:engine._dispatch): func → fully-qualified function name +# +# "with storage datalib:engine _dispatch" forwards the entire _dispatch +# compound as macro context to the target function — not just func. +# This lets callers stash extra fields (alongside func) on _dispatch +# before dispatching, and have the target read them as $(...) macro +# args, without this gateway needing to know what those fields are. +# Added so datalib:core/lib/fiber/internal/resume_dispatch (dispatched +# via the process_queue -> queue_run_func -> #datalib:internal/dispatch +# chain) can read $(id)/$(resume) directly instead of relying on a +# separate shared FIFO list that could desync between concurrent +# fibers — see resume_dispatch.mcfunction for the full explanation. +# ───────────────────────────────────────────────────────────────── +$function $(func) with storage datalib:engine _dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/dispatch/run.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/dispatch/run.mcfunction new file mode 100644 index 0000000..1d4d939 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/dispatch/run.mcfunction @@ -0,0 +1,9 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/dispatch/run +# Central function dispatch gateway — called via #datalib:internal/dispatch. +# Reads func from datalib:engine._dispatch and calls exec via datalib. +# +# Override #datalib:internal/dispatch in your overlay/pack to inject +# validation or logging without touching call sites. +# ───────────────────────────────────────────────────────────────── +function datalib:core/dispatch/exec with storage datalib:engine _dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/engine/call/execute_validated.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/engine/call/execute_validated.mcfunction new file mode 100644 index 0000000..b55ab66 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/engine/call/execute_validated.mcfunction @@ -0,0 +1,13 @@ +# ───────────────────────────────────────────── +# datalib:core/engine/call/execute_validated +# Runs a function that has passed security validation. +# Called only by datalib:debug/tools/utils/input_check. +# +# Girdi (datalib:output.inputs): +# func — function name to run (already validated) +# Veri (datalib:input): +# All parameters to pass to the function +# ───────────────────────────────────────────── + +# Pass validated func name to macro sub-function and run +function datalib:core/engine/call/execute_validated/run with storage datalib:output inputs diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/engine/call/execute_validated/run.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/engine/call/execute_validated/run.mcfunction new file mode 100644 index 0000000..4141f5f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/engine/call/execute_validated/run.mcfunction @@ -0,0 +1,8 @@ +# ───────────────────────────────────────────── +# datalib:core/engine/call/execute_validated/run +# Expands and runs the validated function via datalib. +# Gets $(func) variable from datalib:output.inputs storage, +# uses datalib:input storage as the parameter source. +# ───────────────────────────────────────────── + +$function $(func) with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/check.mcfunction new file mode 100644 index 0000000..dd5b3fa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/check.mcfunction @@ -0,0 +1,9 @@ +# datalib:core/fallback/check +# Returns 1 if a fallback was triggered in the last call, 0 otherwise. +# Usage: +# function datalib:core/fallback/clear +# function ns:your/action +# execute if data storage datalib:output fallback{triggered:1b} run function ns:handle_failure +# function datalib:core/fallback/check ← or use this for return-based checks +execute if data storage datalib:output fallback{triggered:1b} run return 1 +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/clear.mcfunction new file mode 100644 index 0000000..c120e81 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/clear.mcfunction @@ -0,0 +1,5 @@ +# datalib:core/fallback/clear +# Clears the fallback state from datalib:output. +# Call this before an action chain to get a clean fallback check afterwards. +# Usage: function datalib:core/fallback/clear +data remove storage datalib:output fallback diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/entity_missing.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/entity_missing.mcfunction new file mode 100644 index 0000000..cf2f5d9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/entity_missing.mcfunction @@ -0,0 +1,8 @@ +# datalib:core/fallback/entity_missing +# Called when a required entity target was not found. +data modify storage datalib:engine _log_add_tmp.message set value "[Fallback] entity_missing — no valid target found" +data modify storage datalib:engine _log_add_tmp.level set value "WARN" +data modify storage datalib:engine _log_add_tmp.color set value "yellow" +execute if score #dl.log_level dl.log_level matches 2.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp +data modify storage datalib:output fallback set value {triggered:1b,reason:"entity_missing"} +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/generic.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/generic.mcfunction new file mode 100644 index 0000000..32dcab3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/generic.mcfunction @@ -0,0 +1,8 @@ +# datalib:core/fallback/generic +# Called when no specific fallback applies. +data modify storage datalib:engine _log_add_tmp.message set value "[Fallback] generic fallback triggered" +data modify storage datalib:engine _log_add_tmp.level set value "WARN" +data modify storage datalib:engine _log_add_tmp.color set value "yellow" +execute if score #dl.log_level dl.log_level matches 2.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp +data modify storage datalib:output fallback set value {triggered:1b,reason:"generic"} +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/invalid_score.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/invalid_score.mcfunction new file mode 100644 index 0000000..276905b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/invalid_score.mcfunction @@ -0,0 +1,8 @@ +# datalib:core/fallback/invalid_score +# Called when a required scoreboard value is absent or out of range. +data modify storage datalib:engine _log_add_tmp.message set value "[Fallback] invalid_score — score missing or out of range, using default" +data modify storage datalib:engine _log_add_tmp.level set value "WARN" +data modify storage datalib:engine _log_add_tmp.color set value "yellow" +execute if score #dl.log_level dl.log_level matches 2.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp +data modify storage datalib:output fallback set value {triggered:1b,reason:"invalid_score"} +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/no_permission.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/no_permission.mcfunction new file mode 100644 index 0000000..50f988b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/no_permission.mcfunction @@ -0,0 +1,19 @@ +# datalib:core/fallback/no_permission +# Called when executor's dl.perm_level < security.cmd_min_level (or sandbox threshold). + +data modify storage datalib:engine _log_add_tmp.message set value "[Fallback] no_permission — dl.perm_level below required threshold" +data modify storage datalib:engine _log_add_tmp.level set value "WARN" +data modify storage datalib:engine _log_add_tmp.color set value "yellow" +execute if score #dl.log_level dl.log_level matches 2.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp +data remove storage datalib:engine _log_add_tmp.message +data remove storage datalib:engine _log_add_tmp.level +data remove storage datalib:engine _log_add_tmp.color + +# Notify caller +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"Permission denied. Your ","color":"red"},{"text":"dl.perm_level","color":"aqua"},{"text":" is insufficient.","color":"red"}] + +# Notify debug admins +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"NO_PERM ","color":"yellow","bold":true},{"selector":"@s","color":"gold"},{"text":" — perm_level below threshold","color":"yellow"}] + +data modify storage datalib:output fallback set value {triggered:1b,reason:"no_permission"} +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/not_loaded.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/not_loaded.mcfunction new file mode 100644 index 0000000..fe7970e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/not_loaded.mcfunction @@ -0,0 +1,8 @@ +# datalib:core/fallback/not_loaded +# Called when the engine is not initialized. +data modify storage datalib:engine _log_add_tmp.message set value "[Fallback] not_loaded — dataLib not initialized, run /function datalib:load" +data modify storage datalib:engine _log_add_tmp.level set value "ERROR" +data modify storage datalib:engine _log_add_tmp.color set value "red" +execute if score #dl.log_level dl.log_level matches 1.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp +data modify storage datalib:output fallback set value {triggered:1b,reason:"not_loaded"} +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/storage_missing.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/storage_missing.mcfunction new file mode 100644 index 0000000..49ca5ba --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/fallback/storage_missing.mcfunction @@ -0,0 +1,8 @@ +# datalib:core/fallback/storage_missing +# Called when expected NBT storage data is absent. +data modify storage datalib:engine _log_add_tmp.message set value "[Fallback] storage_missing — required NBT key not found" +data modify storage datalib:engine _log_add_tmp.level set value "WARN" +data modify storage datalib:engine _log_add_tmp.color set value "yellow" +execute if score #dl.log_level dl.log_level matches 2.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp +data modify storage datalib:output fallback set value {triggered:1b,reason:"storage_missing"} +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/handle_trigger.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/handle_trigger.mcfunction new file mode 100644 index 0000000..6239a24 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/handle_trigger.mcfunction @@ -0,0 +1,4 @@ +#> Handle datalib_settingsBook +execute if score @s datalib_settingsBook matches 1.. run function datalib:systems/dev_settings/display/open +scoreboard players set @s datalib_settingsBook 0 +scoreboard players enable @s datalib_settingsBook \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/apply_defaults.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/apply_defaults.mcfunction new file mode 100644 index 0000000..4dd7b69 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/apply_defaults.mcfunction @@ -0,0 +1,5 @@ +# datalib:api/cb/internal/apply_defaults +# Fills in missing x/y/z fields before the macro call. +execute unless data storage datalib:input cb.x run data modify storage datalib:input cb.x set value 0 +execute unless data storage datalib:input cb.y run data modify storage datalib:input cb.y set value -64 +execute unless data storage datalib:input cb.z run data modify storage datalib:input cb.z set value 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/exec.mcfunction new file mode 100644 index 0000000..3ee8976 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/exec.mcfunction @@ -0,0 +1,14 @@ +# datalib:api/cb/internal/exec +# Macro: called via "function ... with storage datalib:input cb" +# Expected keys: cmd (string), x (int), y (int), z (int) +# +# Side-effects: +# • Writes datalib:engine _cb_last {x,y,z} for the cleanup step. +# • Schedules datalib:api/cb/internal/reset 2t later. + +$data modify storage datalib:engine _cb_last set value {x:$(x),y:$(y),z:$(z)} +$forceload add $(x) $(z) +$setblock $(x) $(y) $(z) minecraft:command_block{Command:"",auto:0b,TrackOutput:0b} replace +$data modify block $(x) $(y) $(z) Command set value "$(cmd)" +$data modify block $(x) $(y) $(z) auto set value 1b +schedule function datalib:core/internal/api/cb/reset 2t replace diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/reset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/reset.mcfunction new file mode 100644 index 0000000..e580d96 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/reset.mcfunction @@ -0,0 +1,6 @@ +# datalib:api/cb/internal/reset +# Scheduled 2t after exec — cleans up the temporary command block. +# Reads coordinates from transient cb_slot storage so reset targets +# the correct location even if run() was called again in the meantime. + +function datalib:core/internal/api/cb/reset_exec with storage datalib:engine _cb_last diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/reset_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/reset_exec.mcfunction new file mode 100644 index 0000000..54eb6b0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cb/reset_exec.mcfunction @@ -0,0 +1,4 @@ +# Macro: receives {x, y, z} +$data modify block $(x) $(y) $(z) auto set value 0b +$setblock $(x) $(y) $(z) minecraft:air replace +$forceload remove $(x) $(z) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/anchor_tp.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/anchor_tp.mcfunction new file mode 100644 index 0000000..eee1ac8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/anchor_tp.mcfunction @@ -0,0 +1,19 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/freeze/internal/anchor_tp [INTERNAL] +# Called every tick via freeze/internal/tick, once per anchor stand. +# Execution context: AS = anchor armor stand, AT = stand's position. +# +# Reads this stand's dl.freeze_id into a tmp score, then teleports +# the frozen player whose datalib.pid matches that value back to +# this exact position (~ ~ ~). +# +# The ~ ~ ~ resolves to the armor stand's world position because +# the calling execute chain set position with `at @s` on the stand. +# Switching executor to the player with `as @a[...]` does NOT reset +# the position — it remains at the stand. So `teleport @s ~ ~ ~` +# moves the player to the stand's feet. This runs once per tick, +# so players cannot escape regardless of client-side movement speed. +# ───────────────────────────────────────────────────────────────── + +scoreboard players operation $freeze_tp dl.tmp = @s dl.freeze_id +execute as @a[tag=datalib.frozen] if score @s datalib.pid = $freeze_tp dl.tmp run teleport @s ~ ~ ~ diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/apply.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/apply.mcfunction new file mode 100644 index 0000000..6f271b6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/apply.mcfunction @@ -0,0 +1,26 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/freeze/internal/apply [INTERNAL] +# Runs AS the player to be frozen, AT their position. +# +# 1. Summons an invisible Marker armor stand at the player's feet. +# Marker=1b means no hitbox and no tick overhead. +# 2. Copies the player's datalib.pid to the stand's dl.freeze_id +# so the tick function can match player↔stand reliably. +# 3. Tags both the stand (datalib.freeze_anchor) and the player +# (datalib.frozen). +# ───────────────────────────────────────────────────────────────── + +# Summon the anchor stand at player's exact position +summon minecraft:armor_stand ~ ~ ~ {Invisible:1b,Marker:1b,NoGravity:1b,Tags:["datalib.freeze_anchor"]} + +# Copy this player's PID to a tmp score, then copy to the nearest +# anchor stand (the one we just summoned — always nearest to us). +scoreboard players operation $freeze_link dl.tmp = @s datalib.pid +execute as @e[tag=datalib.freeze_anchor,sort=nearest,limit=1] run scoreboard players operation @s dl.freeze_id = $freeze_link dl.tmp + +# Tag the player as frozen +tag @s add datalib.frozen + +# Notify and play sound +playsound datalib:ui.freeze master @s ~ ~ ~ 0.9 0.9 +tellraw @s ["",{"text":"\uE000","color":"#00AAAA"},{"text":" ","color":"#00AAAA"},{"translate":"datalib.msg.freeze","color":"#00aaff","bold":true}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/remove.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/remove.mcfunction new file mode 100644 index 0000000..1045c0b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/remove.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/freeze/internal/remove [INTERNAL] +# Runs AS the player being unfrozen. +# +# Copies the player's datalib.pid to tmp, then kills every anchor +# stand whose dl.freeze_id matches (should always be exactly one). +# Then removes the datalib.frozen tag so the tick function's +# early-exit check fires and no further TPs occur. +# ───────────────────────────────────────────────────────────────── + +# Store this player's PID so we can match it against anchor stands +scoreboard players operation $freeze_rm dl.tmp = @s datalib.pid + +# Kill the matching anchor stand +execute as @e[tag=datalib.freeze_anchor] if score @s dl.freeze_id = $freeze_rm dl.tmp run kill @s + +# Unfreeze the player +tag @s remove datalib.frozen + +# Notify and play sound +playsound datalib:ui.unfreeze master @s ~ ~ ~ 0.7 1.3 +tellraw @s ["",{"text":"\uE000","color":"#00AAAA"},{"text":" ","color":"#00AAAA"},{"translate":"datalib.msg.unfreeze","color":"#55ff55","bold":true}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/tick.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/tick.mcfunction new file mode 100644 index 0000000..09a21cc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/freeze/tick.mcfunction @@ -0,0 +1,17 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/freeze/internal/tick [INTERNAL — runs via on_tick] +# Hooked into #datalib:events/on_tick (called every game tick). +# +# Early-exit if no frozen players exist — zero cost when the +# freeze system is idle. +# +# For each anchor stand: switch execution position to the stand, +# then delegate to anchor_tp which identifies and teleports the +# matching frozen player back to that position. +# ───────────────────────────────────────────────────────────────── + +# Fast exit — no frozen players, nothing to do +execute unless entity @a[tag=datalib.frozen] run return 0 + +# Iterate anchor stands and teleport their linked players back +execute as @e[tag=datalib.freeze_anchor] at @s run function datalib:core/internal/api/cmd/freeze/anchor_tp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/run_spread.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/run_spread.mcfunction new file mode 100644 index 0000000..d0bc432 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/run_spread.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/advanced/internal/run_spread +# Spreads _mcmd_queue execution: one item per tick. +# Schedules run_spread_tick which self-reschedules until queue is drained. +# Supports full item format (conditions, hooks, cmd, func). +# ───────────────────────────────────────────────────────────────── + +execute if data storage datalib:engine _mcmd_queue[0] run schedule function datalib:core/internal/api/cmd/other/multi_cmd/advanced/run_spread_tick 1t append + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"multi_cmd/run_spread ","color":"aqua"},{"text":"↷ spread scheduled","color":"gray"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/run_spread_tick.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/run_spread_tick.mcfunction new file mode 100644 index 0000000..e1d3cb2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/run_spread_tick.mcfunction @@ -0,0 +1,23 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/advanced/internal/run_spread_tick +# Called once per tick by `schedule` to process the next spread command. +# Self-schedules until _mcmd_queue is drained. +# ───────────────────────────────────────────────────────────────── + +execute unless data storage datalib:engine _mcmd_queue[0] run return 0 + +data modify storage datalib:engine _mcmd_current set from storage datalib:engine _mcmd_queue[0] +data remove storage datalib:engine _mcmd_queue[0] + +execute if data storage datalib:engine _mcmd_current{} run function datalib:core/internal/api/cmd/other/multi_cmd/exec_object +execute unless data storage datalib:engine _mcmd_current{} run function datalib:core/internal/api/cmd/other/multi_cmd/exec_string + +data remove storage datalib:engine _mcmd_current + +# Continue draining the queue — schedule next tick +execute if data storage datalib:engine _mcmd_queue[0] run schedule function datalib:core/internal/api/cmd/other/multi_cmd/advanced/run_spread_tick 1t append + +# Cleanup options when fully done +execute unless data storage datalib:engine _mcmd_queue[0] run data remove storage datalib:engine _mcmd_options + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"multi_cmd/spread ","color":"aqua"},{"text":"◉ tick","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/sort_append_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/sort_append_loop.mcfunction new file mode 100644 index 0000000..60a811a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/sort_append_loop.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/advanced/internal/sort_append_loop +# Recursive: drain _sort_tmp into _mcmd_queue one item at a time. +# ───────────────────────────────────────────────────────────────── + +execute unless data storage datalib:engine _sort_tmp[0] run return 0 + +data modify storage datalib:engine _mcmd_queue append from storage datalib:engine _sort_tmp[0] +data remove storage datalib:engine _sort_tmp[0] + +function datalib:core/internal/api/cmd/other/multi_cmd/advanced/sort_append_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/sort_by_priority.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/sort_by_priority.mcfunction new file mode 100644 index 0000000..5f6d954 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/sort_by_priority.mcfunction @@ -0,0 +1,38 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/advanced/internal/sort_by_priority +# Sorts _mcmd_queue by priority field (ascending). +# Items with no priority field default to 0 (middle bucket). +# Buckets: negative | zero/unset | positive +# Uses sort_scan_loop (classify) + sort_append_loop (merge). +# ───────────────────────────────────────────────────────────────── + +# Move queue to sort_buf; initialize buckets +data modify storage datalib:engine _sort_buf set from storage datalib:engine _mcmd_queue +data modify storage datalib:engine _sort_neg set value [] +data modify storage datalib:engine _sort_zero set value [] +data modify storage datalib:engine _sort_pos set value [] + +# Classify each item into the correct bucket +function datalib:core/internal/api/cmd/other/multi_cmd/advanced/sort_scan_loop + +# Rebuild queue: neg → zero → pos +data modify storage datalib:engine _mcmd_queue set value [] + +data modify storage datalib:engine _sort_tmp set from storage datalib:engine _sort_neg +function datalib:core/internal/api/cmd/other/multi_cmd/advanced/sort_append_loop + +data modify storage datalib:engine _sort_tmp set from storage datalib:engine _sort_zero +function datalib:core/internal/api/cmd/other/multi_cmd/advanced/sort_append_loop + +data modify storage datalib:engine _sort_tmp set from storage datalib:engine _sort_pos +function datalib:core/internal/api/cmd/other/multi_cmd/advanced/sort_append_loop + +# Cleanup +data remove storage datalib:engine _sort_buf +data remove storage datalib:engine _sort_neg +data remove storage datalib:engine _sort_zero +data remove storage datalib:engine _sort_pos +data remove storage datalib:engine _sort_tmp +data remove storage datalib:engine _sort_cur + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"multi_cmd/sort ","color":"aqua"},{"text":"✔ sorted by priority","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/sort_scan_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/sort_scan_loop.mcfunction new file mode 100644 index 0000000..b5ba40d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/advanced/sort_scan_loop.mcfunction @@ -0,0 +1,20 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/advanced/internal/sort_scan_loop +# Recursive: dequeue one item from _sort_buf and classify it. +# ───────────────────────────────────────────────────────────────── + +execute unless data storage datalib:engine _sort_buf[0] run return 0 + +data modify storage datalib:engine _sort_cur set from storage datalib:engine _sort_buf[0] +data remove storage datalib:engine _sort_buf[0] + +# Read priority into scoreboard — returns 0 if field absent (desired default) +execute store result score $sort_pri dl.tmp run data get storage datalib:engine _sort_cur.priority + +execute if score $sort_pri dl.tmp matches ..-1 run data modify storage datalib:engine _sort_neg append from storage datalib:engine _sort_cur +execute if score $sort_pri dl.tmp matches 0 run data modify storage datalib:engine _sort_zero append from storage datalib:engine _sort_cur +execute if score $sort_pri dl.tmp matches 1.. run data modify storage datalib:engine _sort_pos append from storage datalib:engine _sort_cur + +scoreboard players reset $sort_pri dl.tmp + +function datalib:core/internal/api/cmd/other/multi_cmd/advanced/sort_scan_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/check_condition.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/check_condition.mcfunction new file mode 100644 index 0000000..6c533e5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/check_condition.mcfunction @@ -0,0 +1,23 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/internal/check_condition +# Check condition and write result to $mcmd_cond_result +# _mcmd_current.condition: {tag:"...", score:{...}, predicate:"..."} +# ───────────────────────────────────────────────────────────────── + +# Default: condition passed +scoreboard players set $mcmd_cond_result dl.tmp 1 + +# Tag check +execute if data storage datalib:engine _mcmd_current.condition.tag run function datalib:core/internal/api/cmd/other/multi_cmd/cond_check_tag + +# Score check +execute if data storage datalib:engine _mcmd_current.condition.score run function datalib:core/internal/api/cmd/other/multi_cmd/cond_check_score + +# Predicate check +execute if data storage datalib:engine _mcmd_current.condition.predicate run function datalib:core/internal/api/cmd/other/multi_cmd/cond_check_predicate + +# Entity check (selector) +execute if data storage datalib:engine _mcmd_current.condition.entity run function datalib:core/internal/api/cmd/other/multi_cmd/cond_check_entity + +# Storage check +execute if data storage datalib:engine _mcmd_current.condition.storage run function datalib:core/internal/api/cmd/other/multi_cmd/cond_check_storage diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cleanup.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cleanup.mcfunction new file mode 100644 index 0000000..b83b69f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cleanup.mcfunction @@ -0,0 +1,21 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/internal/cleanup +# Cleanup — remove temporary storages +# ───────────────────────────────────────────────────────────────── + +data remove storage datalib:engine _mcmd_queue +data remove storage datalib:engine _mcmd_current +data remove storage datalib:engine _mcmd_exec +data remove storage datalib:engine _mcmd_cond_tmp + +# Sort temporaries (no-op if sort was not used) +data remove storage datalib:engine _sort_neg +data remove storage datalib:engine _sort_zero +data remove storage datalib:engine _sort_pos +data remove storage datalib:engine _sort_buf +data remove storage datalib:engine _sort_tmp +data remove storage datalib:engine _sort_cur + +scoreboard players reset $mcmd_cond_result dl.tmp +scoreboard players reset $mcmd_cond_score dl.tmp +scoreboard players reset $sort_pri dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_entity.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_entity.mcfunction new file mode 100644 index 0000000..ac7a837 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_entity.mcfunction @@ -0,0 +1,2 @@ +# Entity selector checker +function datalib:core/internal/api/cmd/other/multi_cmd/cond_entity_exec with storage datalib:engine _mcmd_current.condition diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_predicate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_predicate.mcfunction new file mode 100644 index 0000000..0716a6b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_predicate.mcfunction @@ -0,0 +1,2 @@ +# Predicate checker +function datalib:core/internal/api/cmd/other/multi_cmd/cond_pred_exec with storage datalib:engine _mcmd_current.condition diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_score.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_score.mcfunction new file mode 100644 index 0000000..1efe322 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_score.mcfunction @@ -0,0 +1,6 @@ +# Score checker +execute store result score $mcmd_cond_score dl.tmp run scoreboard players get @s dummy +data modify storage datalib:engine _mcmd_cond_tmp set from storage datalib:engine _mcmd_current.condition.score +function datalib:core/internal/api/cmd/other/multi_cmd/cond_score_exec with storage datalib:engine _mcmd_cond_tmp +data remove storage datalib:engine _mcmd_cond_tmp +scoreboard players reset $mcmd_cond_score dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_storage.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_storage.mcfunction new file mode 100644 index 0000000..81ed5bd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_storage.mcfunction @@ -0,0 +1,2 @@ +# Storage data checker +function datalib:core/internal/api/cmd/other/multi_cmd/cond_storage_exec with storage datalib:engine _mcmd_current.condition.storage diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_tag.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_tag.mcfunction new file mode 100644 index 0000000..beffe8b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_check_tag.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/internal/cond_check_tag +# Tag check — @s must have the specified tag +# condition.tag: "admin" or {name:"admin", has:1b} +# ───────────────────────────────────────────────────────────────── + +# Simple string format +execute unless data storage datalib:engine _mcmd_current.condition.tag{} run function datalib:core/internal/api/cmd/other/multi_cmd/cond_tag_simple + +# Object format {name:"...", has:1b/0b} +execute if data storage datalib:engine _mcmd_current.condition.tag{} run function datalib:core/internal/api/cmd/other/multi_cmd/cond_tag_object diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_entity_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_entity_exec.mcfunction new file mode 100644 index 0000000..f0853b0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_entity_exec.mcfunction @@ -0,0 +1,2 @@ +# [MACRO] INPUT: $(entity) +$execute unless entity $(entity) run scoreboard players set $mcmd_cond_result dl.tmp 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_pred_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_pred_exec.mcfunction new file mode 100644 index 0000000..b83dc98 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_pred_exec.mcfunction @@ -0,0 +1,2 @@ +# [MACRO] INPUT: $(predicate) +$execute unless predicate $(predicate) run scoreboard players set $mcmd_cond_result dl.tmp 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_score_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_score_exec.mcfunction new file mode 100644 index 0000000..977f37b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_score_exec.mcfunction @@ -0,0 +1,4 @@ +# [MACRO] INPUT: $(objective), $(min), $(max) +$execute store result score $mcmd_cond_score dl.tmp run scoreboard players get @s $(objective) +$execute if score $mcmd_cond_score dl.tmp matches $(min)..$(max) run return 0 +scoreboard players set $mcmd_cond_result dl.tmp 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_storage_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_storage_exec.mcfunction new file mode 100644 index 0000000..c48d6bf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_storage_exec.mcfunction @@ -0,0 +1,2 @@ +# [MACRO] INPUT: $(path) +$execute unless data storage $(path) run scoreboard players set $mcmd_cond_result dl.tmp 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_exec.mcfunction new file mode 100644 index 0000000..2a03f95 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_exec.mcfunction @@ -0,0 +1,2 @@ +# [MACRO] INPUT: $(tag) +$execute unless entity @s[tag=$(tag)] run scoreboard players set $mcmd_cond_result dl.tmp 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_obj_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_obj_exec.mcfunction new file mode 100644 index 0000000..25f7ab2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_obj_exec.mcfunction @@ -0,0 +1,3 @@ +# [MACRO] INPUT: $(name), $(has) +$execute if data storage datalib:engine _mcmd_cond_tmp{has:1b} unless entity @s[tag=$(name)] run scoreboard players set $mcmd_cond_result dl.tmp 0 +$execute if data storage datalib:engine _mcmd_cond_tmp{has:0b} if entity @s[tag=$(name)] run scoreboard players set $mcmd_cond_result dl.tmp 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_object.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_object.mcfunction new file mode 100644 index 0000000..bd22f44 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_object.mcfunction @@ -0,0 +1,7 @@ +# Tag object checker - {name:"...", has:1b/0b} + +data modify storage datalib:engine _mcmd_cond_tmp set from storage datalib:engine _mcmd_current.condition.tag +execute unless data storage datalib:engine _mcmd_cond_tmp.has run data modify storage datalib:engine _mcmd_cond_tmp.has set value 1b + +function datalib:core/internal/api/cmd/other/multi_cmd/cond_tag_obj_exec with storage datalib:engine _mcmd_cond_tmp +data remove storage datalib:engine _mcmd_cond_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_simple.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_simple.mcfunction new file mode 100644 index 0000000..1d5d092 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/cond_tag_simple.mcfunction @@ -0,0 +1,7 @@ +# datalib:api/cmd/other/multi_cmd/internal/cond_tag_simple +# Simple string tag check + +data modify storage datalib:engine _mcmd_cond_tmp set value {} +data modify storage datalib:engine _mcmd_cond_tmp.tag set from storage datalib:engine _mcmd_current.condition.tag +function datalib:core/internal/api/cmd/other/multi_cmd/cond_tag_exec with storage datalib:engine _mcmd_cond_tmp +data remove storage datalib:engine _mcmd_cond_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec.mcfunction new file mode 100644 index 0000000..a51f4e5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec.mcfunction @@ -0,0 +1 @@ +$execute run $(current_cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_func.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_func.mcfunction new file mode 100644 index 0000000..7bf115e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_func.mcfunction @@ -0,0 +1 @@ +$function $(current_cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_func_macro.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_func_macro.mcfunction new file mode 100644 index 0000000..360314d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_func_macro.mcfunction @@ -0,0 +1,6 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/internal/exec_func_macro [MACRO] +# INPUT: $(func) +# ───────────────────────────────────────────────────────────────── + +$function $(func) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_macro.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_macro.mcfunction new file mode 100644 index 0000000..ce9f524 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_macro.mcfunction @@ -0,0 +1,15 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/internal/exec_macro [MACRO] +# INPUT: $(cmd) +# ───────────────────────────────────────────────────────────────── + +# Pass raw command to pipeline input +$data modify storage datalib:input raw_command set value "$(cmd)" + +# Execute security pipeline (which sets up isolation, validates, checks canary) +# cmd_gate now acts as the pipeline entry point +execute unless function datalib:core/security/cmd_gate run return 0 + +tellraw @a[tag=datalib.admin] [{"selector":"@s","color":"gold"},{"text":" - command safely executed via pipeline","color":"yellow"}] + +$$(cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_object.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_object.mcfunction new file mode 100644 index 0000000..3014690 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_object.mcfunction @@ -0,0 +1,28 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/internal/exec_object +# Execute advanced object command +# _mcmd_current format: {cmd:"...", condition:{}, priority:0} +# ───────────────────────────────────────────────────────────────── + +# Check condition (if present) +execute if data storage datalib:engine _mcmd_current.condition run function datalib:core/internal/api/cmd/other/multi_cmd/check_condition +execute if data storage datalib:engine _mcmd_current.condition if score $mcmd_cond_result dl.tmp matches 0 run return 0 + +# Run pre-hook (if present) +execute if data storage datalib:engine _mcmd_current.pre_hook run function datalib:core/internal/api/cmd/other/multi_cmd/run_pre_hook + +# Start profiling (if present) +execute if data storage datalib:engine _mcmd_options{profile:1b} run execute store result score $mcmd_exec_start dl.tmp run time query gametime + +# Execute command +execute if data storage datalib:engine _mcmd_current.cmd run function datalib:core/internal/api/cmd/other/multi_cmd/exec_macro with storage datalib:engine _mcmd_current +execute if data storage datalib:engine _mcmd_current.func run function datalib:core/internal/api/cmd/other/multi_cmd/exec_func_macro with storage datalib:engine _mcmd_current + +# End profiling (if present) +execute if data storage datalib:engine _mcmd_options{profile:1b} run function datalib:core/internal/api/cmd/other/multi_cmd/record_exec_time + +# Run post-hook (if present) +execute if data storage datalib:engine _mcmd_current.post_hook run function datalib:core/internal/api/cmd/other/multi_cmd/run_post_hook + +# Track stats +execute if data storage datalib:engine _mcmd_options{profile:1b} run scoreboard players add $mcmd_success dl.tmp 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_string.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_string.mcfunction new file mode 100644 index 0000000..7326d6d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/exec_string.mcfunction @@ -0,0 +1,15 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/internal/exec_string +# Execute simple string command +# _mcmd_current is a plain string e.g. "say Hello" +# ───────────────────────────────────────────────────────────────── + +# Wrap string into object +data modify storage datalib:engine _mcmd_exec set value {} +data modify storage datalib:engine _mcmd_exec.cmd set from storage datalib:engine _mcmd_current + +# Execute via macro +function datalib:core/internal/api/cmd/other/multi_cmd/exec_macro with storage datalib:engine _mcmd_exec + +# Cleanup +data remove storage datalib:engine _mcmd_exec diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/func_convert_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/func_convert_loop.mcfunction new file mode 100644 index 0000000..121bba5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/func_convert_loop.mcfunction @@ -0,0 +1,9 @@ +# Convert string list to {func:"..."} objects +execute unless data storage datalib:input list[0] run return 0 + +data modify storage datalib:engine _mcmd_func_tmp set value {} +data modify storage datalib:engine _mcmd_func_tmp.func set from storage datalib:input list[0] +data modify storage datalib:engine _mcmd_queue append from storage datalib:engine _mcmd_func_tmp + +data remove storage datalib:input list[0] +function datalib:core/internal/api/cmd/other/multi_cmd/func_convert_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/hook_post_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/hook_post_exec.mcfunction new file mode 100644 index 0000000..b742d7e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/hook_post_exec.mcfunction @@ -0,0 +1,2 @@ +# [MACRO] INPUT: $(post_hook) +$function $(post_hook) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/hook_pre_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/hook_pre_exec.mcfunction new file mode 100644 index 0000000..51d1310 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/hook_pre_exec.mcfunction @@ -0,0 +1,2 @@ +# [MACRO] INPUT: $(pre_hook) +$function $(pre_hook) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/record_exec_time.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/record_exec_time.mcfunction new file mode 100644 index 0000000..9bbb209 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/record_exec_time.mcfunction @@ -0,0 +1,8 @@ +# Record execution time for profiling +execute store result score $mcmd_exec_end dl.tmp run time query gametime +scoreboard players operation $mcmd_exec_dur dl.tmp = $mcmd_exec_end dl.tmp +scoreboard players operation $mcmd_exec_dur dl.tmp -= $mcmd_exec_start dl.tmp + +scoreboard players reset $mcmd_exec_start dl.tmp +scoreboard players reset $mcmd_exec_end dl.tmp +scoreboard players reset $mcmd_exec_dur dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_as_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_as_exec.mcfunction new file mode 100644 index 0000000..91fb50f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_as_exec.mcfunction @@ -0,0 +1,2 @@ +# [MACRO] INPUT: $(selector) +$execute as $(selector) run function datalib:api/cmd/other/multi_cmd/run diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_at_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_at_exec.mcfunction new file mode 100644 index 0000000..f5b6dca --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_at_exec.mcfunction @@ -0,0 +1,2 @@ +# [MACRO] INPUT: $(selector) +$execute at $(selector) run function datalib:api/cmd/other/multi_cmd/run diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_post_hook.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_post_hook.mcfunction new file mode 100644 index 0000000..70b42b8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_post_hook.mcfunction @@ -0,0 +1,2 @@ +# Post-hook runner +function datalib:core/internal/api/cmd/other/multi_cmd/hook_post_exec with storage datalib:engine _mcmd_current diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_pre_hook.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_pre_hook.mcfunction new file mode 100644 index 0000000..6cf919a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/run_pre_hook.mcfunction @@ -0,0 +1,2 @@ +# Pre-hook runner +function datalib:core/internal/api/cmd/other/multi_cmd/hook_pre_exec with storage datalib:engine _mcmd_current diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/show_stats.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/show_stats.mcfunction new file mode 100644 index 0000000..549b6aa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/show_stats.mcfunction @@ -0,0 +1,21 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/internal/show_stats +# Show statistics +# ───────────────────────────────────────────────────────────────── + +execute store result score $mcmd_end_time dl.tmp run time query gametime +execute store result score $mcmd_duration dl.tmp run data get storage datalib:engine _mcmd_stats.start_time +scoreboard players operation $mcmd_duration dl.tmp = $mcmd_end_time dl.tmp +scoreboard players operation $mcmd_duration dl.tmp -= $mcmd_duration dl.tmp + +execute store result storage datalib:engine _mcmd_stats.total int 1 run scoreboard players get $mcmd_total dl.tmp +execute store result storage datalib:engine _mcmd_stats.success int 1 run scoreboard players get $mcmd_success dl.tmp +execute store result storage datalib:engine _mcmd_stats.duration int 1 run scoreboard players get $mcmd_duration dl.tmp + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"multi_cmd/stats ","color":"aqua"},{"text":"Total: ","color":"#555555"},{"nbt":"_mcmd_stats.total","storage":"datalib:engine","color":"white"},{"text":" | Success: ","color":"#555555"},{"nbt":"_mcmd_stats.success","storage":"datalib:engine","color":"green"},{"text":" | Duration: ","color":"#555555"},{"nbt":"_mcmd_stats.duration","storage":"datalib:engine","color":"yellow"},{"text":"t","color":"yellow"}] + +scoreboard players reset $mcmd_total dl.tmp +scoreboard players reset $mcmd_success dl.tmp +scoreboard players reset $mcmd_duration dl.tmp +scoreboard players reset $mcmd_end_time dl.tmp +data remove storage datalib:engine _mcmd_stats diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/step.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/step.mcfunction new file mode 100644 index 0000000..596c75b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/step.mcfunction @@ -0,0 +1,21 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/cmd/other/multi_cmd/internal/step +# Dequeue one command and execute it, then recurse +# ───────────────────────────────────────────────────────────────── + +# Return if queue is empty +execute unless data storage datalib:engine _mcmd_queue[0] run return 0 + +# Dequeue first command +data modify storage datalib:engine _mcmd_current set from storage datalib:engine _mcmd_queue[0] +data remove storage datalib:engine _mcmd_queue[0] + +# Increment stats counter +execute if data storage datalib:engine _mcmd_options{profile:1b} run scoreboard players add $mcmd_total dl.tmp 1 + +# Execute command (string or object) +execute if data storage datalib:engine _mcmd_current{} run function datalib:core/internal/api/cmd/other/multi_cmd/exec_object +execute unless data storage datalib:engine _mcmd_current{} run function datalib:core/internal/api/cmd/other/multi_cmd/exec_string + +# Process next command +function datalib:core/internal/api/cmd/other/multi_cmd/step diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/step_func.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/step_func.mcfunction new file mode 100644 index 0000000..941c062 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/other/multi_cmd/step_func.mcfunction @@ -0,0 +1,9 @@ +execute unless data storage datalib:engine _mcmd_list[0] run return 0 + +data modify storage datalib:engine _mcmd_entry set value {} +data modify storage datalib:engine _mcmd_entry.current_cmd set from storage datalib:engine _mcmd_list[0] +data remove storage datalib:engine _mcmd_list[0] + +function datalib:core/internal/api/cmd/other/multi_cmd/exec_func with storage datalib:engine _mcmd_entry + +function datalib:core/internal/api/cmd/other/multi_cmd/step_func diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_blocked.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_blocked.mcfunction new file mode 100644 index 0000000..d4ea208 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_blocked.mcfunction @@ -0,0 +1,4 @@ +# datalib:api/cmd/internal/sandbox_blocked +# Called by cmd/ files when sandbox:1b is active AND command is NOT in allowlist. +# Reads datalib:engine _sandbox_cmd (set by caller), logs, notifies, and kicks. +function datalib:core/internal/api/cmd/sandbox_blocked_macro with storage datalib:engine {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_blocked_macro.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_blocked_macro.mcfunction new file mode 100644 index 0000000..a6f4a93 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_blocked_macro.mcfunction @@ -0,0 +1,14 @@ +# datalib:api/cmd/internal/sandbox_blocked_macro [MACRO] +# INPUT: $(_sandbox_cmd) — read from datalib:engine storage via `with storage datalib:engine {}` +# Logs WARN entry, notifies debug admins, and kicks the player. +# Do NOT call directly — use datalib:api/cmd/internal/sandbox_blocked. +$data modify storage datalib:engine _log_add_tmp.message set value "[SANDBOX] cmd/$(_sandbox_cmd) blocked" +data modify storage datalib:engine _log_add_tmp.level set value "WARN" +data modify storage datalib:engine _log_add_tmp.color set value "yellow" +execute if score #dl.log_level dl.log_level matches 2.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"SANDBOX ","color":"red","bold":true},{"text":"cmd/$(_sandbox_cmd) blocked","color":"red"}] +data remove storage datalib:engine _log_add_tmp.message +data remove storage datalib:engine _log_add_tmp.level +data remove storage datalib:engine _log_add_tmp.color +execute if entity @s[type=player] run playsound datalib:ui.error master @s ~ ~ ~ 0.7 0.8 +execute if entity @s[type=player] run tellraw @s ["",{"text":"\uE000","color":"#00AAAA"},{"text":" ","color":"#00AAAA"},{"text":"✘ ","color":"red"},{"translate":"datalib.msg.sandbox_blocked","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_gate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_gate.mcfunction new file mode 100644 index 0000000..61c4f32 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_gate.mcfunction @@ -0,0 +1,21 @@ +# datalib:api/cmd/internal/sandbox_gate +# Allowlist-aware sandbox gate for cmd/ functions. +# Integrated with Memory Canaries for strict sandbox isolation. +# +# Returns 1 → command is allowlisted — execution continues. +# Returns 0 → command is blocked + player kicked — execution halts. + +# Set up canary in memory +data modify storage datalib:engine security.canary set value "0xCAFEBABE" + +# Run Obfuscated Validation (f_2a83h) +execute store success storage datalib:engine security.validation_status int 1 run function datalib:core/security/pipeline/f_2a83h + +# If Canary was manipulated -> HALT +execute unless data storage datalib:engine security{canary:"0xCAFEBABE"} run return run function datalib:core/security/pipeline/canary_trigger + +# Proceed to standard macro evaluation +function datalib:core/internal/api/cmd/sandbox_gate_macro with storage datalib:engine {} + +# Cleanup +data remove storage datalib:engine security.canary diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_gate_macro.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_gate_macro.mcfunction new file mode 100644 index 0000000..5d0a29e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/cmd/sandbox_gate_macro.mcfunction @@ -0,0 +1,10 @@ +# datalib:api/cmd/internal/sandbox_gate_macro [MACRO] +# Called with storage datalib:engine {} — reads $(_sandbox_cmd) from engine storage. +# Returns 1 if command is in sandbox_allowlist (compound key lookup). +# Calls type_violation (log + kick) and returns 0 if blocked. +$execute if data storage datalib:engine security.sandbox_allowlist{$(_sandbox_cmd):1b} run return 1 +# Not in allowlist +data modify storage datalib:input _violation_type set from storage datalib:engine _sandbox_cmd +function datalib:core/security/type_violation +data remove storage datalib:input _violation_type +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/call_on_false.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/call_on_false.mcfunction new file mode 100644 index 0000000..f425031 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/call_on_false.mcfunction @@ -0,0 +1,3 @@ +# datalib:api/gamerule/internal/call_on_false [MACRO] +# Calls the gr_on_false callback. Called by dispatch only. +$function $(gr_on_false) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/call_on_true.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/call_on_true.mcfunction new file mode 100644 index 0000000..c7c2859 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/call_on_true.mcfunction @@ -0,0 +1,3 @@ +# datalib:api/gamerule/internal/call_on_true [MACRO] +# Calls the gr_on_true callback. Called by dispatch only. +$function $(gr_on_true) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/dispatch.mcfunction new file mode 100644 index 0000000..a355711 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/dispatch.mcfunction @@ -0,0 +1,19 @@ +# datalib:api/gamerule/internal/dispatch +# Evaluates the value and calls the appropriate callback function. +# Called exclusively by datalib:api/gamerule/set — do NOT call directly. +# +# INPUT (storage datalib:input): +# value — raw value string: "true", "false", or numeric string +# gr_on_true — (optional) function to call when value is "true" +# gr_on_false — (optional) function to call when value is "false" +# gr_on_value — (optional) function to call for numeric match +# gr_matches — (optional) scoreboard range string, e.g. "5..10" + +# ── Boolean: true ──────────────────────────────────────────────────────────── +execute if data storage datalib:input {value:"true"} if data storage datalib:input gr_on_true run return run function datalib:core/internal/api/gamerule/call_on_true with storage datalib:input {} + +# ── Boolean: false ─────────────────────────────────────────────────────────── +execute if data storage datalib:input {value:"false"} if data storage datalib:input gr_on_false run return run function datalib:core/internal/api/gamerule/call_on_false with storage datalib:input {} + +# ── Numeric with explicit matches range ────────────────────────────────────── +execute if data storage datalib:input gr_on_value if data storage datalib:input gr_matches run function datalib:core/internal/api/gamerule/numeric_check with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/numeric_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/numeric_check.mcfunction new file mode 100644 index 0000000..2d706b3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/numeric_check.mcfunction @@ -0,0 +1,11 @@ +# datalib:api/gamerule/internal/numeric_check [MACRO] +# Converts value string to score, checks against gr_matches range, calls gr_on_value. +# Called exclusively by dispatch — do NOT call directly. +# +# INPUT (macro args via `with storage datalib:input {}`): +# $(value) — numeric value string, e.g. "10" +# $(gr_matches) — scoreboard range string, e.g. "5..10" or "1.." +# $(gr_on_value) — function to call if score is in range + +$scoreboard players set #dl_gamerule_scratch dl.gamerule $(value) +$execute if score #dl_gamerule_scratch dl.gamerule matches $(gr_matches) run function $(gr_on_value) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/persist.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/persist.mcfunction new file mode 100644 index 0000000..c9b4caf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/persist.mcfunction @@ -0,0 +1,9 @@ +# datalib:api/gamerule/internal/persist [MACRO] +# Writes the normalized rule name + value into datalib:engine gamerules compound. +# Called exclusively by datalib:api/gamerule/set — do NOT call directly. +# +# INPUT (macro args via `with storage datalib:input {}`): +# $(_gamerule_norm) — normalized rule name (spaces → underscores, lowercase) +# $(value) — value string + +$data modify storage datalib:engine gamerules.$(_gamerule_norm) set value "$(value)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/read.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/read.mcfunction new file mode 100644 index 0000000..4839404 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/read.mcfunction @@ -0,0 +1,4 @@ +# datalib:api/gamerule/internal/read [MACRO] +# Reads gamerule value from engine storage into output. +# Called by get only. +$execute if data storage datalib:engine gamerules.$(_gamerule_norm) run data modify storage datalib:output gamerule set from storage datalib:engine gamerules.$(_gamerule_norm) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/remove.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/remove.mcfunction new file mode 100644 index 0000000..107517b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/gamerule/remove.mcfunction @@ -0,0 +1,4 @@ +# datalib:api/gamerule/internal/remove [MACRO] +# Removes a single gamerule key from engine storage. +# Called by reset only. +$data remove storage datalib:engine gamerules.$(_gamerule_norm) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/bind_attack_do.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/bind_attack_do.mcfunction new file mode 100644 index 0000000..a5e72ec --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/bind_attack_do.mcfunction @@ -0,0 +1,5 @@ +# datalib:api/interaction/internal/bind_attack_do [MACRO] [INTERNAL] +# Called by bind_attack with storage datalib:input {} to do the actual append. +# INPUT: $(tag), $(func) +$data modify storage datalib:engine interaction_binds.attack append value {tag:"$(tag)", func:"$(func)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"interaction/bind_attack ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(tag)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/bind_use_do.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/bind_use_do.mcfunction new file mode 100644 index 0000000..0dd8f63 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/bind_use_do.mcfunction @@ -0,0 +1,5 @@ +# datalib:api/interaction/internal/bind_use_do [MACRO] [INTERNAL] +# Called by bind_use with storage datalib:input {} to do the actual append. +# INPUT: $(tag), $(func) +$data modify storage datalib:engine interaction_binds.use append value {tag:"$(tag)", func:"$(func)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"interaction/bind_use ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(tag)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/check_bind.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/check_bind.mcfunction new file mode 100644 index 0000000..73053f4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/check_bind.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +$execute if entity @e[type=minecraft:interaction,tag=datalib.ia_active,tag=$(tag),limit=1] run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/dispatch.mcfunction new file mode 100644 index 0000000..0155b84 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/dispatch.mcfunction @@ -0,0 +1,6 @@ +data modify storage datalib:engine _ia_cur set from storage datalib:engine _ia_iter[0] +data remove storage datalib:engine _ia_iter[0] + +function datalib:core/internal/api/interaction/check_bind with storage datalib:engine _ia_cur + +execute if data storage datalib:engine _ia_iter[0] run function datalib:core/internal/api/interaction/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/on_attack.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/on_attack.mcfunction new file mode 100644 index 0000000..ba606b9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/on_attack.mcfunction @@ -0,0 +1,9 @@ +tag @s add datalib.ia_active + +data modify storage datalib:engine _ia_iter set from storage datalib:engine interaction_binds.attack +execute if data storage datalib:engine _ia_iter[0] run execute on attacker run function datalib:core/internal/api/interaction/dispatch + +tag @s remove datalib.ia_active +data remove entity @s attack +data remove storage datalib:engine _ia_iter +data remove storage datalib:engine _ia_cur diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/on_use.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/on_use.mcfunction new file mode 100644 index 0000000..33bc3cc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/on_use.mcfunction @@ -0,0 +1,9 @@ +tag @s add datalib.ia_active + +data modify storage datalib:engine _ia_iter set from storage datalib:engine interaction_binds.use +execute if data storage datalib:engine _ia_iter[0] run execute on target run function datalib:core/internal/api/interaction/dispatch + +tag @s remove datalib.ia_active +data remove entity @s interaction +data remove storage datalib:engine _ia_iter +data remove storage datalib:engine _ia_cur diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/tick_scan.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/tick_scan.mcfunction new file mode 100644 index 0000000..4ce2388 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/tick_scan.mcfunction @@ -0,0 +1,8 @@ +# Module toggle guard — skips this module when disabled via datalib:api/toggle/interaction/false +execute unless data storage datalib:engine {modules:{interaction:1b}} run return 0 + +execute unless entity @e[type=minecraft:interaction,tag=datalib.interaction,limit=1] run return 0 + +execute if data storage datalib:engine interaction_binds.attack[0] run execute as @e[type=minecraft:interaction,tag=datalib.interaction] if data entity @s attack run function datalib:core/internal/api/interaction/on_attack + +execute if data storage datalib:engine interaction_binds.use[0] run execute as @e[type=minecraft:interaction,tag=datalib.interaction] if data entity @s interaction run function datalib:core/internal/api/interaction/on_use diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/unbind_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/unbind_check.mcfunction new file mode 100644 index 0000000..ccfc4f3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/unbind_check.mcfunction @@ -0,0 +1 @@ +$execute unless data storage datalib:engine _ia_ucur{tag:"$(tag)",func:"$(func)"} run data modify storage datalib:engine interaction_binds.$(list) append from storage datalib:engine _ia_ucur diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/unbind_filter.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/unbind_filter.mcfunction new file mode 100644 index 0000000..e077fe9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/interaction/unbind_filter.mcfunction @@ -0,0 +1,9 @@ +execute unless data storage datalib:engine _ia_ubinds[0] run return 0 + +data modify storage datalib:engine _ia_ucur set from storage datalib:engine _ia_ubinds[0] +data remove storage datalib:engine _ia_ubinds[0] + +function datalib:core/internal/api/interaction/unbind_check with storage datalib:engine _ia_ufilter + +function datalib:core/internal/api/interaction/unbind_filter +data remove storage datalib:engine _ia_ucur diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/check_bind.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/check_bind.mcfunction new file mode 100644 index 0000000..99bf7be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/check_bind.mcfunction @@ -0,0 +1,9 @@ +execute unless data storage datalib:engine _ptd_binds[0] run return 0 + +data modify storage datalib:engine _ptd_current set from storage datalib:engine _ptd_binds[0] +data remove storage datalib:engine _ptd_binds[0] + +execute store result score $ptd_entry_val dl.tmp run data get storage datalib:engine _ptd_current.value +execute if score $ptd_val dl.tmp = $ptd_entry_val dl.tmp run function datalib:core/internal/api/perm/trigger/run_if_perm with storage datalib:engine _ptd_current + +function datalib:core/internal/api/perm/trigger/check_bind diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/exec.mcfunction new file mode 100644 index 0000000..ea23837 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/exec.mcfunction @@ -0,0 +1,2 @@ +execute if data storage datalib:engine _ptd_current.func run function datalib:core/internal/api/trigger/call with storage datalib:engine _ptd_current +execute if data storage datalib:engine _ptd_current.cmd run function datalib:core/internal/api/trigger/call2 with storage datalib:engine _ptd_current diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/player_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/player_dispatch.mcfunction new file mode 100644 index 0000000..3441cee --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/player_dispatch.mcfunction @@ -0,0 +1,12 @@ +$scoreboard players operation $ptd_val dl.tmp = @s $(name) + +$scoreboard players set @s $(name) 0 +$scoreboard players enable @s $(name) + +$execute unless data storage datalib:engine perm_triggers.$(name)[0] run return 0 + +$data modify storage datalib:engine _ptd_binds set from storage datalib:engine perm_triggers.$(name) + +function datalib:core/internal/api/perm/trigger/check_bind +data remove storage datalib:engine _ptd_binds +data remove storage datalib:engine _ptd_current diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/run_if_perm.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/run_if_perm.mcfunction new file mode 100644 index 0000000..f2ae091 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/run_if_perm.mcfunction @@ -0,0 +1,5 @@ +execute if entity @s[tag=datalib.admin] run function datalib:core/internal/api/perm/trigger/exec with storage datalib:engine _ptd_current + +$execute unless entity @s[tag=datalib.admin] if entity @s[tag=perm.$(perm)] run function datalib:core/internal/api/perm/trigger/exec with storage datalib:engine _ptd_current + +$execute unless entity @s[tag=datalib.admin] unless entity @s[tag=perm.$(perm)] run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"$(perm)","color":"yellow"},{"text":" — you don't have this permission.","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/tick_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/tick_dispatch.mcfunction new file mode 100644 index 0000000..cdb4dd9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/tick_dispatch.mcfunction @@ -0,0 +1,3 @@ +$execute as @a[scores={$(name)=1..}] run function datalib:core/internal/api/perm/trigger/player_dispatch with storage datalib:engine _pt_tick_ctx + +$execute as @a run scoreboard players enable @s $(name) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/tick_start.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/tick_start.mcfunction new file mode 100644 index 0000000..f11fd0d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/tick_start.mcfunction @@ -0,0 +1,8 @@ +# Module toggle guard — skips this module when disabled via datalib:api/toggle/perm/false +execute unless data storage datalib:engine {modules:{perm:1b}} run return 0 + +execute unless data storage datalib:engine perm_trigger_names[0] run return 0 + +data modify storage datalib:engine _pt_names_tmp set from storage datalib:engine perm_trigger_names +function datalib:core/internal/api/perm/trigger/tick_step_loop +data remove storage datalib:engine _pt_names_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/tick_step_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/tick_step_loop.mcfunction new file mode 100644 index 0000000..80070f0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/tick_step_loop.mcfunction @@ -0,0 +1,8 @@ +execute unless data storage datalib:engine _pt_names_tmp[0] run return 0 + +data modify storage datalib:engine _pt_tick_ctx set from storage datalib:engine _pt_names_tmp[0] +data remove storage datalib:engine _pt_names_tmp[0] + +function datalib:core/internal/api/perm/trigger/tick_dispatch with storage datalib:engine _pt_tick_ctx + +function datalib:core/internal/api/perm/trigger/tick_step_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/unbind_filter.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/unbind_filter.mcfunction new file mode 100644 index 0000000..1296aa6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/unbind_filter.mcfunction @@ -0,0 +1,9 @@ +execute unless data storage datalib:engine _pt_unbind[0] run return 0 + +execute store result score $pt_fval dl.tmp run data get storage datalib:engine _pt_unbind[0].value +execute store result score $pt_uval dl.tmp run data get storage datalib:engine _pt_uval + +execute unless score $pt_fval dl.tmp = $pt_uval dl.tmp run function datalib:core/internal/api/perm/trigger/unbind_reinsert with storage datalib:engine _pt_filter_ctx + +data remove storage datalib:engine _pt_unbind[0] +function datalib:core/internal/api/perm/trigger/unbind_filter diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/unbind_reinsert.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/unbind_reinsert.mcfunction new file mode 100644 index 0000000..d4ba08c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/perm/trigger/unbind_reinsert.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:engine perm_triggers.$(name) append from storage datalib:engine _pt_unbind[0] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/call.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/call.mcfunction new file mode 100644 index 0000000..a855aae --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/call.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/call2.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/call2.mcfunction new file mode 100644 index 0000000..1a4c2a3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/call2.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/trigger/internal/call2 [MACRO] + +# SECURITY: central gate +execute unless function datalib:core/security/cmd_gate run return 0 + +tellraw @a[tag=datalib.admin] [{"selector":"@s","color":"gold"},{"text":" - command executed","color":"yellow"}] + +$$(cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/check_next.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/check_next.mcfunction new file mode 100644 index 0000000..d4c18a1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/check_next.mcfunction @@ -0,0 +1,12 @@ +execute unless data storage datalib:engine _tc_binds[0] run return 0 + +data modify storage datalib:engine _tc_current set from storage datalib:engine _tc_binds[0] +data remove storage datalib:engine _tc_binds[0] + +execute store result score $tc_val dl.tmp run data get storage datalib:engine _tc_current.value + +execute if score $tc_player dl.tmp = $tc_val dl.tmp if data storage datalib:engine _tc_current.func run function datalib:core/internal/api/trigger/call with storage datalib:engine _tc_current + +execute if score $tc_player dl.tmp = $tc_val dl.tmp if data storage datalib:engine _tc_current.cmd run function datalib:core/internal/api/trigger/call2 with storage datalib:engine _tc_current + +function datalib:core/internal/api/trigger/check_next diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/dispatch.mcfunction new file mode 100644 index 0000000..88b3d6b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/dispatch.mcfunction @@ -0,0 +1,12 @@ +scoreboard players operation $tc_player dl.tmp = @s dl_action + +scoreboard players set @s dl_action 0 +scoreboard players enable @s dl_action + +execute unless data storage datalib:engine trigger_binds[0] run return 0 + +data modify storage datalib:engine _tc_binds set from storage datalib:engine trigger_binds + +function datalib:core/internal/api/trigger/check_next +data remove storage datalib:engine _tc_binds +data remove storage datalib:engine _tc_current diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/unbind_filter.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/unbind_filter.mcfunction new file mode 100644 index 0000000..75d379f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/trigger/unbind_filter.mcfunction @@ -0,0 +1,10 @@ +execute unless data storage datalib:engine _tc_unbind[0] run return 0 + +execute store result score $tc_fval dl.tmp run data get storage datalib:engine _tc_unbind[0].value + +execute store result score $tc_uval dl.tmp run data get storage datalib:engine _tc_uval + +execute unless score $tc_fval dl.tmp = $tc_uval dl.tmp run data modify storage datalib:engine trigger_binds append from storage datalib:engine _tc_unbind[0] + +data remove storage datalib:engine _tc_unbind[0] +function datalib:core/internal/api/trigger/unbind_filter diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/call_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/call_cmd.mcfunction new file mode 100644 index 0000000..44f095d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/call_cmd.mcfunction @@ -0,0 +1,8 @@ +# datalib:api/wand/internal/call_cmd [MACRO] + +# SECURITY: central gate +execute unless function datalib:core/security/cmd_gate run return 0 + +tellraw @a[tag=datalib.admin] [{"selector":"@s","color":"gold"},{"text":" - command executed","color":"yellow"}] + +$$(cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/call_func.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/call_func.mcfunction new file mode 100644 index 0000000..5240f69 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/call_func.mcfunction @@ -0,0 +1,3 @@ +# datalib:api/wand/internal/call_func [MACRO] +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/check_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/check_item.mcfunction new file mode 100644 index 0000000..60c79f3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/check_item.mcfunction @@ -0,0 +1,5 @@ +# datalib:api/wand/internal/check_item [MACRO] +# $(tag) → custom_data tag name +# If the item in the player's main hand has this tag, run the bind. + +$execute if items entity @s weapon.mainhand *[minecraft:custom_data~{wand:"$(tag)"}] run function datalib:core/internal/api/wand/fire with storage datalib:engine _wand_current diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/check_next.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/check_next.mcfunction new file mode 100644 index 0000000..81b4b91 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/check_next.mcfunction @@ -0,0 +1,11 @@ +# datalib:api/wand/internal/check_next +# Iterate bind list: match the tag of the held item. + +execute unless data storage datalib:engine _wand_iter[0] run return 0 + +data modify storage datalib:engine _wand_current set from storage datalib:engine _wand_iter[0] +data remove storage datalib:engine _wand_iter[0] + +function datalib:core/internal/api/wand/check_item with storage datalib:engine _wand_current + +function datalib:core/internal/api/wand/check_next diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/dispatch.mcfunction new file mode 100644 index 0000000..03dabe1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/dispatch.mcfunction @@ -0,0 +1,7 @@ +# datalib:api/wand/internal/dispatch +# Called as @s. Compare held items with the bind list. + +data modify storage datalib:engine _wand_iter set from storage datalib:engine wand_binds +execute if data storage datalib:engine _wand_iter[0] run function datalib:core/internal/api/wand/check_next +data remove storage datalib:engine _wand_iter +data remove storage datalib:engine _wand_current diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/fire.mcfunction new file mode 100644 index 0000000..b97b97b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/fire.mcfunction @@ -0,0 +1,5 @@ +# datalib:api/wand/internal/fire [MACRO] +# Run the bind based on func or cmd field. + +execute if data storage datalib:engine _wand_current.func run function datalib:core/internal/api/wand/call_func with storage datalib:engine _wand_current +execute if data storage datalib:engine _wand_current.cmd run function datalib:core/internal/api/wand/call_cmd with storage datalib:engine _wand_current diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/give_lore_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/give_lore_exec.mcfunction new file mode 100644 index 0000000..d4f8cc8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/give_lore_exec.mcfunction @@ -0,0 +1,9 @@ +# datalib:api/wand/internal/give_lore_exec [MACRO] +# INPUT (macro): $(player), $(tag), $(name), $(lore), $(color) +# +# Writes with lore directly to mainhand via item replace weapon.mainhand. +# Not give but item replace — places directly in slot 0 (mainhand). + +$item replace entity @a[name=$(player),limit=1] weapon.mainhand with minecraft:carrot_on_a_stick[minecraft:custom_data={wand:"$(tag)"},minecraft:item_name={"text":"$(name)"},minecraft:lore=[{"text":"$(lore)","italic":false,"color":"$(color)"}],minecraft:enchantment_glint_override=true] + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/give_lore ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(tag)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/register_cmd_do.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/register_cmd_do.mcfunction new file mode 100644 index 0000000..cc61c8a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/register_cmd_do.mcfunction @@ -0,0 +1,5 @@ +# datalib:api/wand/internal/register_cmd_do [MACRO] [INTERNAL] +# Called by wand/register_cmd with storage datalib:input {} to do the actual append. +# INPUT: $(tag), $(cmd) +$data modify storage datalib:engine wand_binds append value {tag:"$(tag)", cmd:"$(cmd)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/register_cmd ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(tag)","color":"white"},{"text":" → cmd","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/register_do.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/register_do.mcfunction new file mode 100644 index 0000000..89233e4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/register_do.mcfunction @@ -0,0 +1,5 @@ +# datalib:api/wand/internal/register_do [MACRO] [INTERNAL] +# Called by wand/register with storage datalib:input {} to do the actual append. +# INPUT: $(tag), $(func), $(cmd) +$data modify storage datalib:engine wand_binds append value {tag:"$(tag)", func:"$(func)", cmd:"$(cmd)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/register ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(tag)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/register_fn_do.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/register_fn_do.mcfunction new file mode 100644 index 0000000..29a20b3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/register_fn_do.mcfunction @@ -0,0 +1,5 @@ +# datalib:api/wand/internal/register_fn_do [MACRO] [INTERNAL] +# Called by wand/register_fn with storage datalib:input {} to do the actual append. +# INPUT: $(tag), $(func) +$data modify storage datalib:engine wand_binds append value {tag:"$(tag)", func:"$(func)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/register_fn ","color":"aqua"},{"text":"✔ ","color":"green"},{"text":"$(tag)","color":"white"},{"text":" → func","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/tick_scan.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/tick_scan.mcfunction new file mode 100644 index 0000000..991405a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/tick_scan.mcfunction @@ -0,0 +1,11 @@ +# datalib:api/wand/internal/tick_scan +# Every tick: detect players with datalib.rightClick score 1+, +# check their held item, run the matching bind. + +# Module toggle guard — skips this module when disabled via datalib:api/toggle/wand/false +execute unless data storage datalib:engine {modules:{wand:1b}} run return 0 + +execute unless data storage datalib:engine wand_binds[0] run return 0 + +execute as @a[scores={datalib.rightClick=1..}] at @s run function datalib:core/internal/api/wand/dispatch +scoreboard players set @a[scores={datalib.rightClick=1..}] datalib.rightClick 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/unbind_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/unbind_check.mcfunction new file mode 100644 index 0000000..83a3772 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/unbind_check.mcfunction @@ -0,0 +1,4 @@ +# datalib:api/wand/internal/unbind_check [MACRO] +# $(tag) is the tag of the current record. Add back if it does not match _wand_filter_tag. + +$execute unless data storage datalib:engine {_wand_filter_tag:"$(tag)"} run data modify storage datalib:engine wand_binds append from storage datalib:engine _wand_cur diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/unbind_filter.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/unbind_filter.mcfunction new file mode 100644 index 0000000..07af744 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/unbind_filter.mcfunction @@ -0,0 +1,12 @@ +# datalib:api/wand/internal/unbind_filter +# Write back entries from _wand_unbinds that do not match _wand_filter_tag. + +execute unless data storage datalib:engine _wand_unbinds[0] run return 0 + +data modify storage datalib:engine _wand_cur set from storage datalib:engine _wand_unbinds[0] +data remove storage datalib:engine _wand_unbinds[0] + +function datalib:core/internal/api/wand/unbind_check with storage datalib:engine _wand_cur + +function datalib:core/internal/api/wand/unbind_filter +data remove storage datalib:engine _wand_cur diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/unregister_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/unregister_exec.mcfunction new file mode 100644 index 0000000..33dbfb7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/api/wand/unregister_exec.mcfunction @@ -0,0 +1,17 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:api/wand/unregister +# Removes all wand binds belonging to a specific tag. +# +# INPUT: +# $(tag) → tag to remove +# ───────────────────────────────────────────────────────────────── + +execute unless data storage datalib:engine wand_binds run return 0 + +data modify storage datalib:engine _wand_unbinds set from storage datalib:engine wand_binds +data modify storage datalib:engine wand_binds set value [] +$data modify storage datalib:engine _wand_filter_tag set value "$(tag)" +function datalib:core/internal/api/wand/unbind_filter +data remove storage datalib:engine _wand_unbinds +data remove storage datalib:engine _wand_filter_tag +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"wand/unregister ","color":"aqua"},{"text":"✘ ","color":"red"},{"text":"$(tag)","color":"white"},{"text":" removed","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/add_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/add_cmd.mcfunction new file mode 100644 index 0000000..6d6643c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/add_cmd.mcfunction @@ -0,0 +1,5 @@ +# datalib:core/lib/batch/internal/add_cmd [MACRO] +# INPUT: $(id), $(cmd) +# Called with cmd field guaranteed. + +$data modify storage datalib:engine batches.$(id).items append value {cmd:"$(cmd)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/add_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/add_exec.mcfunction new file mode 100644 index 0000000..d225b02 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/add_exec.mcfunction @@ -0,0 +1,9 @@ +# datalib:core/lib/batch/internal/add_exec [MACRO] +# INPUT: $(id) +# func or cmd field existence is checked outside the macro, +# then the relevant append_func / append_cmd is called — prevents undefined $(func/cmd). + +$execute unless data storage datalib:engine batches.$(id) run return 0 + +execute if data storage datalib:input func run function datalib:core/internal/core/lib/batch/add_func with storage datalib:input +execute if data storage datalib:input cmd run function datalib:core/internal/core/lib/batch/add_cmd with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/add_func.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/add_func.mcfunction new file mode 100644 index 0000000..4c4a7e7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/add_func.mcfunction @@ -0,0 +1,5 @@ +# datalib:core/lib/batch/internal/add_func [MACRO] +# INPUT: $(id), $(func) +# Called with func field guaranteed. + +$data modify storage datalib:engine batches.$(id).items append value {func:"$(func)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/begin_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/begin_exec.mcfunction new file mode 100644 index 0000000..33c770e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/begin_exec.mcfunction @@ -0,0 +1,6 @@ +# datalib:core/lib/batch/internal/begin_exec [MACRO] +# INPUT: $(id), $(spread_over) + +$data modify storage datalib:engine batches.$(id) set value {items:[],spread_over:$(spread_over),flushed:0b} + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/batch/begin ","color":"aqua"},{"text":"$(id)","color":"white"},{"text":" spread_over=$(spread_over)t","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/cancel_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/cancel_exec.mcfunction new file mode 100644 index 0000000..1601a3b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/cancel_exec.mcfunction @@ -0,0 +1,7 @@ +# datalib:core/lib/batch/internal/cancel_exec [MACRO] +# INPUT: $(id) + +$execute unless data storage datalib:engine batches.$(id) run return 0 +$data remove storage datalib:engine batches.$(id) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/batch/cancel ","color":"aqua"},{"text":"$(id)","color":"white"},{"text":" — cancelled","color":"#FF5555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_exec.mcfunction new file mode 100644 index 0000000..6e8c7db --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_exec.mcfunction @@ -0,0 +1,31 @@ +# datalib:core/lib/batch/internal/flush_exec [MACRO] +# INPUT: $(id) +# For each item, delay = floor(idx * spread_over / total) is computed. +# Item'lar tek tek process_queue'ya eklenir — slice storage gerekmez. + +$execute unless data storage datalib:engine batches.$(id) run return 0 + +# Load total and spread_over values to score +$execute store result score $bfl_total dl.tmp run data get storage datalib:engine batches.$(id).items +$execute store result score $bfl_spread dl.tmp run data get storage datalib:engine batches.$(id).spread_over +execute if score $bfl_spread dl.tmp matches ..0 run scoreboard players set $bfl_spread dl.tmp 1 +execute if score $bfl_total dl.tmp matches 0 run return 0 + +# Iteration counter +scoreboard players set $bfl_idx dl.tmp 0 + +# Copy items to working storage +$data modify storage datalib:engine _bfl_items set from storage datalib:engine batches.$(id).items +$data modify storage datalib:engine _bfl_id set value "$(id)" + +function datalib:core/internal/core/lib/batch/flush_loop + +data remove storage datalib:engine _bfl_items +data remove storage datalib:engine _bfl_id +scoreboard players reset $bfl_idx dl.tmp +scoreboard players reset $bfl_total dl.tmp +scoreboard players reset $bfl_spread dl.tmp + +$data remove storage datalib:engine batches.$(id) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/batch/flush ","color":"aqua"},{"text":"$(id)","color":"white"},{"text":" — queued","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_loop.mcfunction new file mode 100644 index 0000000..a9c7591 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_loop.mcfunction @@ -0,0 +1,27 @@ +# datalib:core/lib/batch/internal/flush_loop +# Consumes _bfl_items. For each item: +# delay = floor($bfl_idx * $bfl_spread / $bfl_total) +# computed and added to the queue. +# func or cmd presence is checked with execute if data. + +execute unless data storage datalib:engine _bfl_items[0] run return 0 + +# delay = floor(idx * spread / total) +scoreboard players operation $bfl_delay dl.tmp = $bfl_idx dl.tmp +scoreboard players operation $bfl_delay dl.tmp *= $bfl_spread dl.tmp +scoreboard players operation $bfl_delay dl.tmp /= $bfl_total dl.tmp + +# Move item to temporary storage +data modify storage datalib:engine _bfl_cur set from storage datalib:engine _bfl_items[0] +data remove storage datalib:engine _bfl_items[0] + +# Write delay to item, then queue by func/cmd +execute store result storage datalib:engine _bfl_cur.delay int 1 run scoreboard players get $bfl_delay dl.tmp + +execute if data storage datalib:engine _bfl_cur.func run function datalib:core/internal/core/lib/batch/flush_queue_func with storage datalib:engine _bfl_cur +execute unless data storage datalib:engine _bfl_cur.func run execute if data storage datalib:engine _bfl_cur.cmd run function datalib:core/internal/core/lib/batch/flush_queue_cmd with storage datalib:engine _bfl_cur + +data remove storage datalib:engine _bfl_cur +scoreboard players add $bfl_idx dl.tmp 1 + +function datalib:core/internal/core/lib/batch/flush_loop \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_queue_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_queue_cmd.mcfunction new file mode 100644 index 0000000..ca614bc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_queue_cmd.mcfunction @@ -0,0 +1,4 @@ +# datalib:core/lib/batch/internal/flush_queue_cmd [MACRO] +# INPUT: $(cmd), $(delay) — from _bfl_cur; cmd field guaranteed. + +$data modify storage datalib:engine queue append value {cmd:"$(cmd)", delay:$(delay)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_queue_func.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_queue_func.mcfunction new file mode 100644 index 0000000..8c3d5ec --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/batch/flush_queue_func.mcfunction @@ -0,0 +1,4 @@ +# datalib:core/lib/batch/internal/flush_queue_func [MACRO] +# INPUT: $(func), $(delay) — _bfl_cur'dan; func field guaranteed. + +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(delay)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/is_alive_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/is_alive_exec.mcfunction new file mode 100644 index 0000000..33077cc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/is_alive_exec.mcfunction @@ -0,0 +1,7 @@ +# datalib:core/lib/fiber/internal/is_alive_exec [MACRO] +# INPUT: $(id) + +data modify storage datalib:output result set value 0b +$execute if data storage datalib:engine fibers.$(id){alive:1b} run data modify storage datalib:output result set value 1b + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/fiber/is_alive ","color":"aqua"},{"text":"$(id)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/kill_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/kill_exec.mcfunction new file mode 100644 index 0000000..2f8e40d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/kill_exec.mcfunction @@ -0,0 +1,9 @@ +# datalib:core/lib/fiber/internal/kill_exec [MACRO] +# INPUT: $(id) + +$execute unless data storage datalib:engine fibers.$(id) run return 0 + +$data remove storage datalib:engine fibers.$(id).alive +$data remove storage datalib:engine fibers.$(id).resume + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/fiber/kill ","color":"aqua"},{"text":"[killed] ","color":"#FF5555"},{"text":"$(id)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/resume_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/resume_dispatch.mcfunction new file mode 100644 index 0000000..bddc58a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/resume_dispatch.mcfunction @@ -0,0 +1,25 @@ +# datalib:core/lib/fiber/internal/resume_dispatch [MACRO] +# Dispatched via the queue -> queue_run_func -> #datalib:internal/dispatch +# -> core/dispatch/exec chain. core/dispatch/exec forwards the entire +# _dispatch compound as macro context, so $(id)/$(resume) below are the +# id/resume fields this specific queue entry was created with in +# yield_exec.mcfunction — NOT a shared list popped in arrival order. +# +# BUGFIX (concurrency): the previous design wrote a separate FIFO list +# (fibers._pending) on yield, and had resume_dispatch unconditionally +# pop _pending[0] whenever ANY queue entry fired. With 2+ concurrent +# fibers yielding with different delays, process_queue only ever +# advances queue[0] (it never looks past the head of the queue), so a +# short-delay fiber queued behind a longer-delay one would not fire +# until the earlier entry's delay reached 0 — and whichever queue entry +# did fire would resume _pending[0], which could belong to a different +# fiber than the one whose timer actually elapsed. Carrying id/resume +# inside the queue entry itself (and reading them back here via macro +# context) ties each fire event to its own fiber unambiguously, with +# no shared list to desynchronize. +# +# INPUT (macro context from _dispatch, set in yield_exec.mcfunction): +# $(id) — fiber id +# $(resume) — function to resume + +$function datalib:core/internal/core/lib/fiber/resume_exec {id:"$(id)", func:"$(resume)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/resume_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/resume_exec.mcfunction new file mode 100644 index 0000000..9741df6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/resume_exec.mcfunction @@ -0,0 +1,12 @@ +# datalib:core/lib/fiber/internal/resume_exec [MACRO] +# INPUT: $(id), $(func) +# Fed from _fib_cur. + +# Is the fiber still alive? +$execute unless data storage datalib:engine fibers.$(id){alive:1b} run return 0 + +# Run via central dispatch +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/fiber/resume ","color":"aqua"},{"text":"[run] ","color":"green"},{"text":"$(id)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/spawn_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/spawn_exec.mcfunction new file mode 100644 index 0000000..b28cf90 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/spawn_exec.mcfunction @@ -0,0 +1,14 @@ +# datalib:core/lib/fiber/internal/spawn_exec [MACRO] +# INPUT: $(id), $(func) + +# Delete if same id exists +$data remove storage datalib:engine fibers.$(id) + +# Create fiber record +$data modify storage datalib:engine fibers.$(id) set value {alive:1b} + +# Run first step via central dispatch +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/fiber/spawn ","color":"aqua"},{"text":"[start] ","color":"green"},{"text":"$(id)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/yield_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/yield_exec.mcfunction new file mode 100644 index 0000000..0435e4f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/fiber/yield_exec.mcfunction @@ -0,0 +1,27 @@ +# datalib:core/lib/fiber/internal/yield_exec [MACRO] +# INPUT: $(id), $(resume), $(delay) + +# Do not continue if fiber is dead +$execute unless data storage datalib:engine fibers.$(id){alive:1b} run return 0 + +# Write resume point to fiber record (readable by is_alive/resume) +$data modify storage datalib:engine fibers.$(id).resume set value "$(resume)" + +# BUGFIX: previously this wrote a separate FIFO list (fibers._pending) +# and a separate process_queue entry, on the assumption that +# resume_dispatch would always consume them in lockstep (one queue +# entry firing == _pending[0] belongs to that same yield call). +# That assumption breaks with 2+ concurrent fibers: process_queue only +# decrements queue[0].delay each tick (it never looks past the head), +# so a fiber that yields with a short delay can get stuck behind an +# earlier entry with a longer delay, and whichever queue entry fires +# first ends up popping _pending[0] — which may belong to a different +# fiber than the one whose timer actually elapsed. +# +# Fix: the resume target (id + func) now travels INSIDE the queue +# entry itself (id/resume fields), so when this specific queue entry +# fires, queue_run_func passes it straight through as macro args to +# resume_dispatch — no shared list to desynchronize. +$data modify storage datalib:engine queue append value {func:"datalib:core/internal/core/lib/fiber/resume_dispatch", delay:$(delay), id:"$(id)", resume:"$(resume)"} + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/fiber/yield ","color":"aqua"},{"text":"$(id)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(resume)","color":"aqua"},{"text":" in $(delay)t","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/for_each_list_call.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/for_each_list_call.mcfunction new file mode 100644 index 0000000..a855aae --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/for_each_list_call.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/for_each_list_step.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/for_each_list_step.mcfunction new file mode 100644 index 0000000..362ab6a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/for_each_list_step.mcfunction @@ -0,0 +1,12 @@ +execute unless data storage datalib:engine _felist_input[0] run execute as @a[tag=datalib.debug] run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/for_each_list ","color":"aqua"},{"text":"DONE ","color":"green"},{"text":"list exhausted, loop ended","color":"#555555"}] +execute unless data storage datalib:engine _felist_input[0] run return 0 + +data modify storage datalib:engine _felist_current set from storage datalib:engine _felist_input[0] +execute store result storage datalib:engine _felist_i int 1 run scoreboard players get $felist_i dl.tmp + +function datalib:core/internal/core/lib/for_each_list_call with storage datalib:engine _felist_state + +data remove storage datalib:engine _felist_input[0] +scoreboard players add $felist_i dl.tmp 1 + +function datalib:core/internal/core/lib/for_each_list_step diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_fire.mcfunction new file mode 100644 index 0000000..977aee1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_fire.mcfunction @@ -0,0 +1,5 @@ +execute if data storage datalib:engine queue[0].func if data storage datalib:engine queue[0].player run function datalib:core/internal/core/lib/queue_run_func_as with storage datalib:engine queue[0] +execute if data storage datalib:engine queue[0].func unless data storage datalib:engine queue[0].player run function datalib:core/internal/core/lib/queue_run_func with storage datalib:engine queue[0] +execute if data storage datalib:engine queue[0].cmd if data storage datalib:engine queue[0].player run function datalib:core/internal/core/lib/queue_run_cmd_as with storage datalib:engine queue[0] +execute if data storage datalib:engine queue[0].cmd unless data storage datalib:engine queue[0].player run function datalib:core/internal/core/lib/queue_run_cmd with storage datalib:engine queue[0] +data remove storage datalib:engine queue[0] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_cmd.mcfunction new file mode 100644 index 0000000..6fccbc8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_cmd.mcfunction @@ -0,0 +1,6 @@ +# SECURITY: central gate +execute unless function datalib:core/security/cmd_gate run return 0 + +tellraw @a[tag=datalib.admin] [{"selector":"@s","color":"gold"},{"text":" - command executed","color":"yellow"}] + +$$(cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_cmd_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_cmd_as.mcfunction new file mode 100644 index 0000000..1e5fc42 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_cmd_as.mcfunction @@ -0,0 +1 @@ +$execute as $(player) at @s run $(cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_func.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_func.mcfunction new file mode 100644 index 0000000..a855aae --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_func.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_func_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_func_as.mcfunction new file mode 100644 index 0000000..487dd41 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/queue_run_func_as.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +$execute as $(player) at @s run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_call.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_call.mcfunction new file mode 100644 index 0000000..a855aae --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_call.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_n_call.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_n_call.mcfunction new file mode 100644 index 0000000..6f098f2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_n_call.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine _dispatch.func set value "$(_rn_func)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_n_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_n_loop.mcfunction new file mode 100644 index 0000000..44e120f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_n_loop.mcfunction @@ -0,0 +1,6 @@ +execute if score $rn_i dl.tmp >= $rn_n dl.tmp run return 0 + +execute store result score $repeat_i dl.tmp run scoreboard players get $rn_i dl.tmp +function datalib:core/internal/core/lib/repeat_n_call with storage datalib:engine {} +scoreboard players add $rn_i dl.tmp 1 +function datalib:core/internal/core/lib/repeat_n_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_run.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_run.mcfunction new file mode 100644 index 0000000..3070f76 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/repeat_run.mcfunction @@ -0,0 +1,13 @@ +execute store result score $rep_r dl.tmp run data get storage datalib:engine _repeat.remaining +execute if score $rep_r dl.tmp matches ..0 run execute as @a[tag=datalib.debug] run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/repeat ","color":"aqua"},{"text":"DONE ","color":"green"},{"text":"all iterations completed","color":"#555555"}] +execute if score $rep_r dl.tmp matches ..0 run return 0 + +function datalib:core/internal/core/lib/repeat_call with storage datalib:engine _repeat + +scoreboard players remove $rep_r dl.tmp 1 +execute store result storage datalib:engine _repeat.remaining int 1 run scoreboard players get $rep_r dl.tmp +execute store result score $rep_i dl.tmp run data get storage datalib:engine _repeat.i +scoreboard players add $rep_i dl.tmp 1 +execute store result storage datalib:engine _repeat.i int 1 run scoreboard players get $rep_i dl.tmp + +function datalib:core/internal/core/lib/repeat_run diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue.mcfunction new file mode 100644 index 0000000..8f9d58e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(interval)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue_as.mcfunction new file mode 100644 index 0000000..6ce1529 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue_as.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(interval), player:"$(player)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue_cmd.mcfunction new file mode 100644 index 0000000..caba9aa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue_cmd.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:engine queue append value {cmd:"$(cmd)", delay:$(interval)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue_cmd_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue_cmd_as.mcfunction new file mode 100644 index 0000000..9cbb541 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_requeue_cmd_as.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:engine queue append value {cmd:"$(cmd)", delay:$(interval), player:"$(player)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do.mcfunction new file mode 100644 index 0000000..373219e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do.mcfunction @@ -0,0 +1,3 @@ +$data modify storage datalib:engine schedules.$(key).func set value "$(func)" +$data modify storage datalib:engine schedules.$(key).interval set value $(interval) +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(interval)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do_as.mcfunction new file mode 100644 index 0000000..3e8f3f6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do_as.mcfunction @@ -0,0 +1,4 @@ +$data modify storage datalib:engine schedules.$(key).func set value "$(func)" +$data modify storage datalib:engine schedules.$(key).interval set value $(interval) +$data modify storage datalib:engine schedules.$(key).player set value "$(player)" +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(interval), player:"$(player)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do_cmd.mcfunction new file mode 100644 index 0000000..23db984 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do_cmd.mcfunction @@ -0,0 +1,3 @@ +$data modify storage datalib:engine schedules.$(key).cmd set value "$(cmd)" +$data modify storage datalib:engine schedules.$(key).interval set value $(interval) +$data modify storage datalib:engine queue append value {cmd:"$(cmd)", delay:$(interval)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do_cmd_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do_cmd_as.mcfunction new file mode 100644 index 0000000..f1b1edf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/schedule_reset_do_cmd_as.mcfunction @@ -0,0 +1,4 @@ +$data modify storage datalib:engine schedules.$(key).cmd set value "$(cmd)" +$data modify storage datalib:engine schedules.$(key).interval set value $(interval) +$data modify storage datalib:engine schedules.$(key).player set value "$(player)" +$data modify storage datalib:engine queue append value {cmd:"$(cmd)", delay:$(interval), player:"$(player)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/insert_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/insert_dispatch.mcfunction new file mode 100644 index 0000000..22eb422 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/insert_dispatch.mcfunction @@ -0,0 +1 @@ +$function stringlib:util/insert {Index:$(Index)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_lower_fast_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_lower_fast_dispatch.mcfunction new file mode 100644 index 0000000..4c5ce8a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_lower_fast_dispatch.mcfunction @@ -0,0 +1 @@ +$function stringlib:util/to_lowercase/fast {String:"$(String)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_lower_full_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_lower_full_dispatch.mcfunction new file mode 100644 index 0000000..9d8ef69 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_lower_full_dispatch.mcfunction @@ -0,0 +1 @@ +$function stringlib:util/to_lowercase/full {String:"$(String)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_number_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_number_dispatch.mcfunction new file mode 100644 index 0000000..0dd38c1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_number_dispatch.mcfunction @@ -0,0 +1 @@ +$function stringlib:util/to_number {Input:"$(Input)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_string_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_string_dispatch.mcfunction new file mode 100644 index 0000000..511071b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_string_dispatch.mcfunction @@ -0,0 +1 @@ +$function stringlib:util/to_string {Input:$(Input)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_upper_fast_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_upper_fast_dispatch.mcfunction new file mode 100644 index 0000000..89b3f1f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_upper_fast_dispatch.mcfunction @@ -0,0 +1 @@ +$function stringlib:util/to_uppercase/fast {String:"$(String)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_upper_full_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_upper_full_dispatch.mcfunction new file mode 100644 index 0000000..9f0d251 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/lib/string/to_upper_full_dispatch.mcfunction @@ -0,0 +1 @@ +$function stringlib:util/to_uppercase/full {String:"$(String)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/exec_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/exec_as.mcfunction new file mode 100644 index 0000000..68c34f0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/exec_as.mcfunction @@ -0,0 +1,10 @@ +# datalib:core/queue/internal/exec_as +# Runs a queued function as the named player (if online). +# If the player is offline the item is silently dropped — no retry. +# +# Macro input: +# fn — function path to call +# player — player name used in selector + +$data modify storage datalib:engine _dispatch.func set value "$(fn)" +$execute as $(player) run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/exec_fn.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/exec_fn.mcfunction new file mode 100644 index 0000000..efda4bd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/exec_fn.mcfunction @@ -0,0 +1,9 @@ +# datalib:core/queue/internal/exec_fn +# Runs a queued function in server (non-entity) context. +# Called with storage datalib:engine _wq_job as macro source. +# +# Macro input: +# fn — function path to call + +$data modify storage datalib:engine _dispatch.func set value "$(fn)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/exec_next.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/exec_next.mcfunction new file mode 100644 index 0000000..b6b97d6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/exec_next.mcfunction @@ -0,0 +1,13 @@ +# datalib:core/queue/internal/exec_next +# Pops work_queue[0] into _wq_job, removes it from the list, +# then dispatches to the appropriate runner. +# player field present → execute as that player (skipped if offline). +# player field absent → run in server context. + +data modify storage datalib:engine _wq_job set from storage datalib:engine work_queue[0] +data remove storage datalib:engine work_queue[0] + +execute if data storage datalib:engine _wq_job.player run function datalib:core/internal/core/queue/exec_as with storage datalib:engine _wq_job +execute unless data storage datalib:engine _wq_job.player run function datalib:core/internal/core/queue/exec_fn with storage datalib:engine _wq_job + +data remove storage datalib:engine _wq_job diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/flush_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/flush_loop.mcfunction new file mode 100644 index 0000000..0367e33 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/flush_loop.mcfunction @@ -0,0 +1,7 @@ +# datalib:core/queue/internal/flush_loop +# Drains the entire work_queue in one call stack (used by queue/flush). +# Recursion depth = queue size — do NOT call on large queues. + +execute unless data storage datalib:engine work_queue[0] run return 0 +function datalib:core/internal/core/queue/exec_next +function datalib:core/internal/core/queue/flush_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/tick.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/tick.mcfunction new file mode 100644 index 0000000..bc591f6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/tick.mcfunction @@ -0,0 +1,11 @@ +# datalib:core/queue/internal/tick +# Rate-limited work queue dispatcher — called every tick by tick.mcfunction. +# Reads work_queue_rate and processes up to that many items. +# Early-exit if queue is empty (zero overhead when idle). + +execute unless data storage datalib:engine work_queue[0] run return 0 + +execute store result score #wq_rate dl.tmp run data get storage datalib:engine work_queue_rate +execute if score #wq_rate dl.tmp matches ..0 run return 0 + +function datalib:core/internal/core/queue/tick_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/tick_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/tick_loop.mcfunction new file mode 100644 index 0000000..06f1233 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/core/queue/tick_loop.mcfunction @@ -0,0 +1,12 @@ +# datalib:core/queue/internal/tick_loop +# Recursive loop: processes one item then calls itself until +# #wq_rate reaches 0 or the queue is empty. +# Max recursion depth = work_queue_rate (keep ≤ 64 for safety). + +execute unless data storage datalib:engine work_queue[0] run return 0 +execute if score #wq_rate dl.tmp matches ..0 run return 0 + +scoreboard players remove #wq_rate dl.tmp 1 +function datalib:core/internal/core/queue/exec_next + +function datalib:core/internal/core/queue/tick_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/debug/tools/trigger/dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/debug/tools/trigger/dispatch.mcfunction new file mode 100644 index 0000000..9257a63 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/debug/tools/trigger/dispatch.mcfunction @@ -0,0 +1,91 @@ +# datalib:debug/tools/trigger/internal/dispatch +# Calls datalib:api/cmd/* based on tools_trigger.type. +# All calls use "with storage datalib:engine tools_trigger.data". + +# ── Message ────────────────────────────────────────────────────────────────── +# type:"msg" → data:{player:"Name", message:"..."} +execute if data storage datalib:engine tools_trigger{type:"msg"} run function datalib:api/cmd/msg with storage datalib:engine tools_trigger.data + +# type:"title" → data:{player:"Name", text:"...", color:"gold"} +execute if data storage datalib:engine tools_trigger{type:"title"} run function datalib:api/cmd/title with storage datalib:engine tools_trigger.data + +# type:"subtitle" → data:{player:"Name", text:"...", color:"white"} +execute if data storage datalib:engine tools_trigger{type:"subtitle"} run function datalib:api/cmd/subtitle with storage datalib:engine tools_trigger.data + +# type:"actionbar" → data:{player:"Name", text:"...", color:"aqua"} +execute if data storage datalib:engine tools_trigger{type:"actionbar"} run function datalib:api/cmd/actionbar with storage datalib:engine tools_trigger.data + +# type:"title_times"→ data:{player:"Name", in:10, stay:70, out:20} +execute if data storage datalib:engine tools_trigger{type:"title_times"} run function datalib:api/cmd/title_times with storage datalib:engine tools_trigger.data + +# type:"title_clear"→ data:{player:"Name"} +execute if data storage datalib:engine tools_trigger{type:"title_clear"} run function datalib:api/cmd/title_clear with storage datalib:engine tools_trigger.data + +# type:"title_reset"→ data:{player:"Name"} +execute if data storage datalib:engine tools_trigger{type:"title_reset"} run function datalib:api/cmd/title_reset with storage datalib:engine tools_trigger.data + +# ── Sound & Particles ────────────────────────────────────────────────────── +# type:"sound" → data:{player:"Name", sound:"minecraft:...", volume:1, pitch:1} +execute if data storage datalib:engine tools_trigger{type:"sound"} run function datalib:api/cmd/sound with storage datalib:engine tools_trigger.data + +# ── Efekt ───────────────────────────────────────────────────────────────── +# type:"effect_add" → data:{player:"Name", effect:"minecraft:speed", duration:100, amplifier:1} +execute if data storage datalib:engine tools_trigger{type:"effect_add"} run function datalib:api/cmd/effect_give with storage datalib:engine tools_trigger.data + +# type:"effect_clear"→ data:{player:"Name"} +execute if data storage datalib:engine tools_trigger{type:"effect_clear"} run function datalib:api/cmd/effect_clear with storage datalib:engine tools_trigger.data + +# ── Item ────────────────────────────────────────────────────────────────── +# type:"give" → data:{player:"Name", item:"minecraft:diamond", count:1} +execute if data storage datalib:engine tools_trigger{type:"give"} run function datalib:api/cmd/give with storage datalib:engine tools_trigger.data + +# ── XP ──────────────────────────────────────────────────────────────────── +# type:"xp" → data:{player:"Name", amount:100, type:"points"} (type: points|levels) +execute if data storage datalib:engine tools_trigger{type:"xp"} run function datalib:api/cmd/xp_add with storage datalib:engine tools_trigger.data + +# ── Oyuncu ──────────────────────────────────────────────────────────────── +# type:"gamemode" → data:{player:"Name", mode:"survival"} +execute if data storage datalib:engine tools_trigger{type:"gamemode"} run function datalib:api/cmd/gamemode with storage datalib:engine tools_trigger.data + +# type:"kick" → data:{player:"Name"} +execute if data storage datalib:engine tools_trigger{type:"kick"} run function datalib:api/cmd/kick with storage datalib:engine tools_trigger.data + +# type:"tp" → data:{player:"Name", x:0, y:64, z:0} +execute if data storage datalib:engine tools_trigger{type:"tp"} run function datalib:api/cmd/tp_to_coords with storage datalib:engine tools_trigger.data + +# ── Scoreboard ──────────────────────────────────────────────────────────── +# type:"score_set" → data:{player:"Name", objective:"obj", value:10} +execute if data storage datalib:engine tools_trigger{type:"score_set"} run function datalib:api/cmd/scoreboard_set with storage datalib:engine tools_trigger.data + +# type:"score_add" → data:{player:"Name", objective:"obj", amount:5} +execute if data storage datalib:engine tools_trigger{type:"score_add"} run function datalib:api/cmd/scoreboard_add with storage datalib:engine tools_trigger.data + +# ── Tag ─────────────────────────────────────────────────────────────────── +# type:"tag_add" → data:{player:"Name", tag:"myTag"} +execute if data storage datalib:engine tools_trigger{type:"tag_add"} run function datalib:api/cmd/tag_add with storage datalib:engine tools_trigger.data + +# type:"tag_remove" → data:{player:"Name", tag:"myTag"} +execute if data storage datalib:engine tools_trigger{type:"tag_remove"} run function datalib:api/cmd/tag_remove with storage datalib:engine tools_trigger.data + +# ── World ───────────────────────────────────────────────────────────────── +# type:"fill" → data:{x1:..,y1:..,z1:..,x2:..,y2:..,z2:..,block:"minecraft:stone"} +execute if data storage datalib:engine tools_trigger{type:"fill"} run function datalib:api/cmd/fill with storage datalib:engine tools_trigger.data + +# type:"setblock" → data:{x:..,y:..,z:..,block:"minecraft:stone"} +execute if data storage datalib:engine tools_trigger{type:"setblock"} run function datalib:api/cmd/setblock with storage datalib:engine tools_trigger.data + +# ── Fonksiyon & Komut ───────────────────────────────────────────────────── +# NOTE: delay / schedule_cancel intentionally excluded here. +# The schedule command runs at op-level; allowing arbitrary function scheduling. +# Use datalib:core/lib/schedule directly and explicitly if needed. +# type:"func" → data:{ns:"namespace", path:"func/path"} +execute if data storage datalib:engine tools_trigger{type:"func"} run function datalib:core/internal/debug/tools/trigger/exec_func with storage datalib:engine tools_trigger.data + +# type:"cmd" → data:{cmd:"say hello"} +execute if data storage datalib:engine tools_trigger{type:"cmd"} run function datalib:core/internal/debug/tools/trigger/exec_cmd with storage datalib:engine tools_trigger.data + +# type:"multi1" → data:{list:[],options:{}} +execute if data storage datalib:engine tools_trigger{type:"multi1"} run function datalib:api/cmd/other/multi_cmd_adv with storage datalib:engine tools_trigger.data + +# type:"multi2" → data:{commands:[]} +execute if data storage datalib:engine tools_trigger{type:"multi2"} run function datalib:api/cmd/other/multi_cmd with storage datalib:engine tools_trigger.data diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/debug/tools/trigger/exec_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/debug/tools/trigger/exec_cmd.mcfunction new file mode 100644 index 0000000..90171d6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/debug/tools/trigger/exec_cmd.mcfunction @@ -0,0 +1,4 @@ +# type:"cmd" → {cmd:"say hello"} +# Security: only executors with the datalib.admin tag may run this. +execute unless entity @s[tag=datalib.admin] run return 0 +$execute as @a[nbt=$(uuid)] at @s run $(cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/debug/tools/trigger/exec_func.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/debug/tools/trigger/exec_func.mcfunction new file mode 100644 index 0000000..dd2b9a0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/debug/tools/trigger/exec_func.mcfunction @@ -0,0 +1,4 @@ +# type:"func" → {ns:"namespace", path:"func/path"} +# NOTE: Two-part path construction — cannot route via #datalib:internal/dispatch +# without a pre-concat step. Intentional exception; this is admin-debug only. +$execute as @a[nbt=$(uuid)] at @s run function $(ns):$(path) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/fire_deferred.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/fire_deferred.mcfunction new file mode 100644 index 0000000..9a23fd8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/fire_deferred.mcfunction @@ -0,0 +1 @@ +function datalib:events/fire with storage datalib:engine queue[0] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/fire_next.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/fire_next.mcfunction new file mode 100644 index 0000000..aa59df6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/fire_next.mcfunction @@ -0,0 +1,4 @@ +data modify storage datalib:engine _dispatch.func set from storage datalib:engine _event_tmp[0].func +function #datalib:internal/dispatch +data remove storage datalib:engine _event_tmp[0] +execute if data storage datalib:engine _event_tmp[0] run function datalib:core/internal/events/fire_next diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/uro_append.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/uro_append.mcfunction new file mode 100644 index 0000000..c5caeaa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/uro_append.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:engine events.$(event) append from storage datalib:engine _uro.src[0] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/uro_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/uro_check.mcfunction new file mode 100644 index 0000000..3111219 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/uro_check.mcfunction @@ -0,0 +1 @@ +$execute unless data storage datalib:engine _uro{func:"$(func)"} run function datalib:core/internal/events/uro_append with storage datalib:engine _uro diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/uro_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/uro_loop.mcfunction new file mode 100644 index 0000000..d5c8c82 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/events/uro_loop.mcfunction @@ -0,0 +1,3 @@ +function datalib:core/internal/events/uro_check with storage datalib:engine _uro.src[0] +data remove storage datalib:engine _uro.src[0] +execute if data storage datalib:engine _uro.src[0] run function datalib:core/internal/events/uro_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/assign_pid.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/assign_pid.mcfunction new file mode 100644 index 0000000..1a3a183 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/assign_pid.mcfunction @@ -0,0 +1,10 @@ +execute store result score $next_pid dl.tmp run data get storage datalib:engine _pid_seq + +scoreboard players add $next_pid dl.tmp 1 + +$execute store result storage datalib:engine player_pids.$(player) int 1 run scoreboard players get $next_pid dl.tmp +$scoreboard players operation @a[name=$(player),limit=1] datalib.pid = $next_pid dl.tmp + +execute store result storage datalib:engine _pid_seq int 1 run scoreboard players get $next_pid dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/internal/assign_pid ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → pid=","color":"#555555"},{"score":{"name":"$next_pid","objective":"dl.tmp"},"color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/init_from_name.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/init_from_name.mcfunction new file mode 100644 index 0000000..0b6cedf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/init_from_name.mcfunction @@ -0,0 +1,8 @@ +# datalib:player/internal/init_from_name [MACRO] +# Relay: storage datalib:names temp {NAME:""} → datalib:player/init +# Called by on_player_join after datalib:player/get_name populates datalib:names temp. +# Bridges the NAME key to the player key expected by player/init. + +$data modify storage datalib:engine _pid_init_tmp set value {player:"$(NAME)"} +function datalib:player/init with storage datalib:engine _pid_init_tmp +data remove storage datalib:engine _pid_init_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/init_online.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/init_online.mcfunction new file mode 100644 index 0000000..281c9b6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/init_online.mcfunction @@ -0,0 +1,7 @@ +# datalib:player/internal/init_online +# @s = online player +# Called once per online player during load to ensure pid is assigned. +# Uses get_name to fetch the display name, then delegates to init_from_ndataLib. + +function datalib:player/get_name +function datalib:core/internal/player/init_from_name with storage datalib:names temp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/stamp_join.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/stamp_join.mcfunction new file mode 100644 index 0000000..90e69b8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/player/stamp_join.mcfunction @@ -0,0 +1 @@ +$execute store result storage datalib:engine players.$(player).joined_tick int 1 run scoreboard players get $epoch datalib.time diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/fire_entry.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/fire_entry.mcfunction new file mode 100644 index 0000000..9e80174 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/fire_entry.mcfunction @@ -0,0 +1,8 @@ +# datalib:systems/cb/internal/fire_entry +# Fires the command in _cb_entry via command block. +# Reuses api/cb/internal machinery. + +# Copy to input storage, reuse exec path +data modify storage datalib:input cb set from storage datalib:engine _cb_entry +function datalib:core/internal/api/cb/exec with storage datalib:input cb +data remove storage datalib:input cb diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/process_step.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/process_step.mcfunction new file mode 100644 index 0000000..3213800 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/process_step.mcfunction @@ -0,0 +1,22 @@ +# datalib:systems/cb/internal/process_step +# Pops first entry from _cb_work. +# ticks_left == 1 → fire now. +# ticks_left > 1 → decrement and return to cb_queue. + +# Pop first entry +data modify storage datalib:engine _cb_entry set from storage datalib:engine _cb_work[0] +data remove storage datalib:engine _cb_work[0] + +# Decrement ticks_left +execute store result score #cb_tl dl.tmp run data get storage datalib:engine _cb_entry.ticks_left +scoreboard players remove #cb_tl dl.tmp 1 + +execute if score #cb_tl dl.tmp matches ..0 run function datalib:core/internal/systems/cb/fire_entry + +execute unless score #cb_tl dl.tmp matches ..0 run execute store result storage datalib:engine _cb_entry.ticks_left int 1 run scoreboard players get #cb_tl dl.tmp +execute unless score #cb_tl dl.tmp matches ..0 run data modify storage datalib:engine cb_queue append from storage datalib:engine _cb_entry + +data remove storage datalib:engine _cb_entry + +# Recurse if more entries remain +execute if data storage datalib:engine _cb_work[0] run function datalib:core/internal/systems/cb/process_step diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/queue_push.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/queue_push.mcfunction new file mode 100644 index 0000000..4b05bc5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/queue_push.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/cb/internal/queue_push +# Macro: receives {cmd, delay, x, y, z} +# Appends an entry to datalib:engine cb_queue list. +# Each entry: {cmd, delay, x, y, z, ticks_left} +# ticks_left is decremented each tick; fires when it hits 0. + +$data modify storage datalib:engine cb_queue append value {cmd:"$(cmd)",x:$(x),y:$(y),z:$(z),ticks_left:$(delay)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/seq_expand.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/seq_expand.mcfunction new file mode 100644 index 0000000..546dd56 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/seq_expand.mcfunction @@ -0,0 +1,11 @@ +# datalib:systems/cb/internal/seq_expand +# Converts cb.cmds list + interval into individual cb_queue entries. +# Each entry gets ticks_left = (index + 1) * interval. + +# Init sequence state +data modify storage datalib:engine _cb_seq set from storage datalib:input cb +execute store result score #cb_seq_idx dl.tmp run data get storage datalib:engine _cb_seq.interval +scoreboard players set #cb_seq_step dl.tmp 0 + +execute if data storage datalib:engine _cb_seq.cmds[0] run function datalib:core/internal/systems/cb/seq_expand_loop +data remove storage datalib:engine _cb_seq diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/seq_expand_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/seq_expand_loop.mcfunction new file mode 100644 index 0000000..c37ee43 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/seq_expand_loop.mcfunction @@ -0,0 +1,17 @@ +# datalib:systems/cb/internal/seq_expand_loop +# Pops first cmd from _cb_seq.cmds, computes its delay, pushes to queue. + +# Increment step counter and compute cumulative delay +scoreboard players add #cb_seq_step dl.tmp 1 +execute store result score #cb_delay dl.tmp run scoreboard players get #cb_seq_step dl.tmp +scoreboard players operation #cb_delay dl.tmp *= #cb_seq_idx dl.tmp + +# Pop cmd from list into scratch +data modify storage datalib:engine _cb_seq_cmd set from storage datalib:engine _cb_seq.cmds[0] +data remove storage datalib:engine _cb_seq.cmds[0] + +# Write queue entry +function datalib:core/internal/systems/cb/seq_push_entry + +# Continue if more cmds remain +execute if data storage datalib:engine _cb_seq.cmds[0] run function datalib:core/internal/systems/cb/seq_expand_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/seq_push_entry.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/seq_push_entry.mcfunction new file mode 100644 index 0000000..a1141d0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/seq_push_entry.mcfunction @@ -0,0 +1,14 @@ +# datalib:systems/cb/internal/seq_push_entry +# Pushes current sequence step as a cb_queue entry. +# Reads: _cb_seq_cmd (string), _cb_delay (score), _cb_seq.{x,y,z} + +# Build entry storage +data modify storage datalib:engine _cb_seq_entry set from storage datalib:engine _cb_seq +data remove storage datalib:engine _cb_seq_entry.cmds +data remove storage datalib:engine _cb_seq_entry.interval +data modify storage datalib:engine _cb_seq_entry.cmd set from storage datalib:engine _cb_seq_cmd +execute store result storage datalib:engine _cb_seq_entry.ticks_left int 1 run scoreboard players get #cb_delay dl.tmp + +data modify storage datalib:engine cb_queue append from storage datalib:engine _cb_seq_entry +data remove storage datalib:engine _cb_seq_entry +data remove storage datalib:engine _cb_seq_cmd diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/tick.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/tick.mcfunction new file mode 100644 index 0000000..b422ac6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/cb/tick.mcfunction @@ -0,0 +1,11 @@ +# datalib:systems/cb/internal/tick +# Called each tick when cb_queue is non-empty. +# Processes all entries: decrements ticks_left, fires those that reach 0. + +# Copy queue to work buffer, clear queue, rebuild after processing +data modify storage datalib:engine _cb_work set from storage datalib:engine cb_queue +data remove storage datalib:engine cb_queue +data modify storage datalib:engine cb_queue set value [] + +execute if data storage datalib:engine _cb_work[0] run function datalib:core/internal/systems/cb/process_step +data remove storage datalib:engine _cb_work diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/color/lerp_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/color/lerp_exec.mcfunction new file mode 100644 index 0000000..25abf37 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/color/lerp_exec.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/color/internal/lerp_exec [MACRO] +# Internal — called by api/color/lerp. +# Reads datalib:engine color.gradients.$(gradient)[$(step)] into output. +$data modify storage datalib:output result set from storage datalib:engine color.gradients.$(gradient)[$(step)] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/color/resolve_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/color/resolve_exec.mcfunction new file mode 100644 index 0000000..31d0620 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/color/resolve_exec.mcfunction @@ -0,0 +1,8 @@ +# datalib:systems/color/internal/resolve_exec [MACRO] +# Called with storage datalib:engine color {} — reads palette.$(color). +# If the key exists in palette, copies it to datalib:output result. +# Uses the outer $(color) macro arg captured by api/color/resolve. +# NOTE: This file is called with `with storage datalib:engine color {}` +# so macro args come from the color compound (which contains "palette"). +# The $(color) arg is forwarded from the parent macro frame. +$execute if data storage datalib:engine color.palette.$(color) run data modify storage datalib:output result set from storage datalib:engine color.palette.$(color) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/color/validate_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/color/validate_exec.mcfunction new file mode 100644 index 0000000..59cafa9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/color/validate_exec.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/color/internal/validate_exec [MACRO] +# Internal — called by api/color/validate. +# Sets datalib:output result to 1b if $(color) is a known named color, +# or if it begins with "#" (hex shorthand detection). +$execute if data storage datalib:engine color._names.$(color) run data modify storage datalib:output result set value 1b diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/check_region.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/check_region.mcfunction new file mode 100644 index 0000000..2c1fa5d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/check_region.mcfunction @@ -0,0 +1,54 @@ +# datalib:systems/geo/region_watch/internal/check_region [MACRO] +# INPUT (from _rw_cur): $(id), $(x1), $(y1), $(z1), $(x2), $(y2), $(z2) +# @s = the player being checked +# Player coordinates: datalib:engine _rw_player.{x,y,z} + +# --- AABB test: return early if outside any axis --- +execute store result score $rwx dl.tmp run data get storage datalib:engine _rw_player.x +execute store result score $rwy dl.tmp run data get storage datalib:engine _rw_player.y +execute store result score $rwz dl.tmp run data get storage datalib:engine _rw_player.z + +$scoreboard players set $rwx1 dl.tmp $(x1) +$scoreboard players set $rwy1 dl.tmp $(y1) +$scoreboard players set $rwz1 dl.tmp $(z1) +$scoreboard players set $rwx2 dl.tmp $(x2) +$scoreboard players set $rwy2 dl.tmp $(y2) +$scoreboard players set $rwz2 dl.tmp $(z2) + +# min/max normalize +execute if score $rwx1 dl.tmp > $rwx2 dl.tmp run scoreboard players operation $rwt dl.tmp = $rwx1 dl.tmp +execute if score $rwx1 dl.tmp > $rwx2 dl.tmp run scoreboard players operation $rwx1 dl.tmp = $rwx2 dl.tmp +execute if score $rwt dl.tmp > $rwx2 dl.tmp run scoreboard players operation $rwx2 dl.tmp = $rwt dl.tmp +execute if score $rwy1 dl.tmp > $rwy2 dl.tmp run scoreboard players operation $rwt dl.tmp = $rwy1 dl.tmp +execute if score $rwy1 dl.tmp > $rwy2 dl.tmp run scoreboard players operation $rwy1 dl.tmp = $rwy2 dl.tmp +execute if score $rwt dl.tmp > $rwy2 dl.tmp run scoreboard players operation $rwy2 dl.tmp = $rwt dl.tmp +execute if score $rwz1 dl.tmp > $rwz2 dl.tmp run scoreboard players operation $rwt dl.tmp = $rwz1 dl.tmp +execute if score $rwz1 dl.tmp > $rwz2 dl.tmp run scoreboard players operation $rwz1 dl.tmp = $rwz2 dl.tmp +execute if score $rwt dl.tmp > $rwz2 dl.tmp run scoreboard players operation $rwz2 dl.tmp = $rwt dl.tmp + +# Inside AABB? 1=inside, 0=outside +scoreboard players set $rw_inside dl.tmp 1 +execute if score $rwx dl.tmp < $rwx1 dl.tmp run scoreboard players set $rw_inside dl.tmp 0 +execute if score $rwx dl.tmp > $rwx2 dl.tmp run scoreboard players set $rw_inside dl.tmp 0 +execute if score $rwy dl.tmp < $rwy1 dl.tmp run scoreboard players set $rw_inside dl.tmp 0 +execute if score $rwy dl.tmp > $rwy2 dl.tmp run scoreboard players set $rw_inside dl.tmp 0 +execute if score $rwz dl.tmp < $rwz1 dl.tmp run scoreboard players set $rw_inside dl.tmp 0 +execute if score $rwz dl.tmp > $rwz2 dl.tmp run scoreboard players set $rw_inside dl.tmp 0 + +# --- State transition --- +# Was inside and still inside → do nothing +$execute if score $rw_inside dl.tmp matches 1 run execute if entity @s[tag=rw.$(id)] run return 0 +# Was outside and still outside → do nothing +$execute if score $rw_inside dl.tmp matches 0 run execute unless entity @s[tag=rw.$(id)] run return 0 + +# --- on_enter: was outside, now inside --- +$execute if score $rw_inside dl.tmp matches 1 run tag @s add rw.$(id) +# DOT NOTATION: _rw_cur.on_enter (space-separated subpath is invalid) +execute if score $rw_inside dl.tmp matches 1 run execute if data storage datalib:engine _rw_cur.on_enter run function datalib:core/internal/systems/geo/region_watch/fire_enter with storage datalib:engine _rw_cur +execute if score $rw_inside dl.tmp matches 1 run execute if data storage datalib:engine _rw_cur.on_enter_cmd run function datalib:core/internal/systems/geo/region_watch/fire_enter_cmd with storage datalib:engine _rw_cur +execute if score $rw_inside dl.tmp matches 1 run return 0 + +# --- on_leave: was inside, now outside --- +$tag @s remove rw.$(id) +execute if data storage datalib:engine _rw_cur.on_leave run function datalib:core/internal/systems/geo/region_watch/fire_leave with storage datalib:engine _rw_cur +execute if data storage datalib:engine _rw_cur.on_leave_cmd run function datalib:core/internal/systems/geo/region_watch/fire_leave_cmd with storage datalib:engine _rw_cur diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_enter.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_enter.mcfunction new file mode 100644 index 0000000..84b87be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_enter.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/geo/region_watch/internal/fire_enter [MACRO] +# INPUT: $(on_enter) — from _rw_cur; called ONLY when on_enter field exists. +# @s = player entering the region + +$data modify storage datalib:engine _dispatch.func set value "$(on_enter)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_enter_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_enter_cmd.mcfunction new file mode 100644 index 0000000..b2ded35 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_enter_cmd.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/geo/region_watch/internal/fire_enter_cmd [MACRO] +# INPUT: $(on_enter_cmd) — from _rw_cur; called ONLY when on_enter_cmd field exists. +# @s = player entering the region + +$$(on_enter_cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_leave.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_leave.mcfunction new file mode 100644 index 0000000..c8c470c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_leave.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/geo/region_watch/internal/fire_leave [MACRO] +# INPUT: $(on_leave) — from _rw_cur; called ONLY when on_leave field exists. +# @s = player leaving the region + +$data modify storage datalib:engine _dispatch.func set value "$(on_leave)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_leave_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_leave_cmd.mcfunction new file mode 100644 index 0000000..6da7a02 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/fire_leave_cmd.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/geo/region_watch/internal/fire_leave_cmd [MACRO] +# INPUT: $(on_leave_cmd) — from _rw_cur; called ONLY when on_leave_cmd field exists. +# @s = player leaving the region + +$$(on_leave_cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/player_scan.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/player_scan.mcfunction new file mode 100644 index 0000000..540707d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/player_scan.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/geo/region_watch/internal/player_scan +# @s = the player to check +# Reads coordinates to storage, then iterates all regions. + +data modify storage datalib:engine _rw_iter set from storage datalib:engine region_watches + +# Write player coordinates to _rw_player (int truncation, consistent with geo module) +execute store result storage datalib:engine _rw_player.x int 1 run data get entity @s Pos[0] +execute store result storage datalib:engine _rw_player.y int 1 run data get entity @s Pos[1] +execute store result storage datalib:engine _rw_player.z int 1 run data get entity @s Pos[2] + +function datalib:core/internal/systems/geo/region_watch/region_loop + +data remove storage datalib:engine _rw_iter +data remove storage datalib:engine _rw_player diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/region_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/region_loop.mcfunction new file mode 100644 index 0000000..3ab4af0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/region_loop.mcfunction @@ -0,0 +1,12 @@ +# datalib:systems/geo/region_watch/internal/region_loop +# @s = the player being checked +# Consumes _rw_iter list, calls check_region for each region. + +execute unless data storage datalib:engine _rw_iter[0] run return 0 + +data modify storage datalib:engine _rw_cur set from storage datalib:engine _rw_iter[0] +data remove storage datalib:engine _rw_iter[0] + +function datalib:core/internal/systems/geo/region_watch/check_region with storage datalib:engine _rw_cur + +function datalib:core/internal/systems/geo/region_watch/region_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/register_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/register_exec.mcfunction new file mode 100644 index 0000000..6aeaa27 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/register_exec.mcfunction @@ -0,0 +1,30 @@ +# datalib:systems/geo/region_watch/internal/register_exec [MACRO] +# INPUT: $(id), $(x1), $(y1), $(z1), $(x2), $(y2), $(z2) +# $(on_enter), $(on_leave) — opsiyonel func +# $(on_enter_cmd), $(on_leave_cmd) — opsiyonel cmd +# +# region_watches stored as list: [{id,x1,...,on_enter,...}, ...] +# If same id exists, filter it out first, then append. + +# Varsa sil (unregister_filter pattern) +data modify storage datalib:engine _rw_unbind_id set from storage datalib:input id +data modify storage datalib:engine _rw_new set value [] +data modify storage datalib:engine _rw_src set from storage datalib:engine region_watches +function datalib:core/internal/systems/geo/region_watch/unregister_filter +data modify storage datalib:engine region_watches set from storage datalib:engine _rw_new +data remove storage datalib:engine _rw_new +data remove storage datalib:engine _rw_src +data remove storage datalib:engine _rw_unbind_id + +# Create new record and append +$data modify storage datalib:engine region_watches append value {id:"$(id)",x1:$(x1),y1:$(y1),z1:$(z1),x2:$(x2),y2:$(y2),z2:$(z2)} + +# on_enter / on_leave func — last appended element [-1] +execute if data storage datalib:input on_enter run data modify storage datalib:engine region_watches[-1].on_enter set from storage datalib:input on_enter +execute if data storage datalib:input on_leave run data modify storage datalib:engine region_watches[-1].on_leave set from storage datalib:input on_leave + +# on_enter_cmd / on_leave_cmd +execute if data storage datalib:input on_enter_cmd run data modify storage datalib:engine region_watches[-1].on_enter_cmd set from storage datalib:input on_enter_cmd +execute if data storage datalib:input on_leave_cmd run data modify storage datalib:engine region_watches[-1].on_leave_cmd set from storage datalib:input on_leave_cmd + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo/region_watch/register ","color":"aqua"},{"text":"$(id)","color":"white"},{"text":" ($(x1),$(y1),$(z1))→($(x2),$(y2),$(z2))","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/tick_scan.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/tick_scan.mcfunction new file mode 100644 index 0000000..25cdd0e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/tick_scan.mcfunction @@ -0,0 +1,12 @@ +# datalib:systems/geo/region_watch/internal/tick_scan +# Called directly from core/tick/queue_systems.mcfunction. +# If region_watches is non-empty, checks all regions for each player. + +# Module toggle guard — skips this module when disabled via datalib:api/toggle/geo/false +execute unless data storage datalib:engine {modules:{geo:1b}} run return 0 + +execute unless data storage datalib:engine region_watches run return 0 + +data modify storage datalib:engine _rw_watch_list set from storage datalib:engine region_watches +execute as @a run function datalib:core/internal/systems/geo/region_watch/player_scan +data remove storage datalib:engine _rw_watch_list diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/unregister_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/unregister_check.mcfunction new file mode 100644 index 0000000..d1d7b17 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/unregister_check.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/geo/region_watch/internal/unregister_check [MACRO] +# INPUT: $(id) — _rw_cur'dan beslenir +# If id does not match, add to _rw_new (keep). + +$execute unless data storage datalib:engine {_rw_unbind_id:"$(id)"} run data modify storage datalib:engine _rw_new append from storage datalib:engine _rw_cur diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/unregister_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/unregister_exec.mcfunction new file mode 100644 index 0000000..9a8810e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/unregister_exec.mcfunction @@ -0,0 +1,17 @@ +# datalib:systems/geo/region_watch/internal/unregister_exec [MACRO] +# INPUT: $(id) +# region_watches in list format — always run filter, +# if id not found, list remains unchanged. + +execute unless data storage datalib:engine region_watches run return 0 + +data modify storage datalib:engine _rw_unbind_id set from storage datalib:input id +data modify storage datalib:engine _rw_new set value [] +data modify storage datalib:engine _rw_src set from storage datalib:engine region_watches +function datalib:core/internal/systems/geo/region_watch/unregister_filter +data modify storage datalib:engine region_watches set from storage datalib:engine _rw_new +data remove storage datalib:engine _rw_new +data remove storage datalib:engine _rw_src +data remove storage datalib:engine _rw_unbind_id + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo/region_watch/unregister ","color":"aqua"},{"text":"$(id)","color":"white"},{"text":" removed","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/unregister_filter.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/unregister_filter.mcfunction new file mode 100644 index 0000000..c228a65 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/geo/region_watch/unregister_filter.mcfunction @@ -0,0 +1,12 @@ +# datalib:systems/geo/region_watch/internal/unregister_filter +# Iterates _rw_src list. +# Copies entries whose id does not match _rw_unbind_id to _rw_new. + +execute unless data storage datalib:engine _rw_src[0] run return 0 + +data modify storage datalib:engine _rw_cur set from storage datalib:engine _rw_src[0] +data remove storage datalib:engine _rw_src[0] + +function datalib:core/internal/systems/geo/region_watch/unregister_check with storage datalib:engine _rw_cur + +function datalib:core/internal/systems/geo/region_watch/unregister_filter \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/bind_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/bind_exec.mcfunction new file mode 100644 index 0000000..688a404 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/bind_exec.mcfunction @@ -0,0 +1,12 @@ +# datalib:systems/hook/internal/bind_exec [MACRO] +# INPUT: $(event) - required +# datalib:input.func OR datalib:input.cmd - one must exist +# +# Two-step: append a base compound with just event, then set func or cmd from storage. +# This avoids requiring both $(func) and $(cmd) to be present simultaneously. + +$data modify storage datalib:engine hook_binds append value {event:"$(event)"} +execute if data storage datalib:input func run data modify storage datalib:engine hook_binds[-1].func set from storage datalib:input func +execute unless data storage datalib:input func run data modify storage datalib:engine hook_binds[-1].cmd set from storage datalib:input cmd + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"hook/bind ","color":"aqua"},{"text":"$(event)","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/check_bind.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/check_bind.mcfunction new file mode 100644 index 0000000..907781d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/check_bind.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/hook/internal/check_bind [MACRO] +# INPUT: $(event) - event field of the bind in _hook_ctx +# If it matches _hook_fire_event, run func or cmd. +# @s = the triggering player + +$execute if data storage datalib:engine {_hook_fire_event:"$(event)"} if data storage datalib:engine _hook_ctx.func run function datalib:core/internal/systems/hook/exec with storage datalib:engine _hook_ctx +$execute if data storage datalib:engine {_hook_fire_event:"$(event)"} unless data storage datalib:engine _hook_ctx.func run function datalib:core/internal/systems/hook/run_cmd with storage datalib:engine _hook_ctx diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/check_block_break.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/check_block_break.mcfunction new file mode 100644 index 0000000..b9588cd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/check_block_break.mcfunction @@ -0,0 +1,14 @@ +# datalib:systems/hook/internal/check_block_break +# @s = player being checked +# +# METHOD: +# item_durability_changed advancement -> datalib.hook_tool_used score increments. +# tick_scan calls this per player; fires on_block_break if score >= 1. +# +# KNOWN LIMITATION: +# Hand-breaking (cobweb, snow, leaves) is not detectable in 1.20.3–26.1+ +# via advancement triggers. Tool-based breaking only. +# Mob hits also trigger item_durability_changed (sword, axe, etc.). +execute unless score @s datalib.hook_tool_used matches 1.. run return 0 +function datalib:core/internal/systems/hook/on_block_break +scoreboard players set @s datalib.hook_tool_used 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/check_level_up.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/check_level_up.mcfunction new file mode 100644 index 0000000..ab117b5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/check_level_up.mcfunction @@ -0,0 +1,4 @@ +execute store result score $hlvl_cur dl.tmp run data get entity @s XpLevel +execute if score @s datalib.hook_lvl < $hlvl_cur dl.tmp run scoreboard players operation @s datalib.hook_lvl_new = $hlvl_cur dl.tmp +execute if score @s datalib.hook_lvl < $hlvl_cur dl.tmp run function datalib:core/internal/systems/hook/on_level_up +execute store result score @s datalib.hook_lvl run scoreboard players get $hlvl_cur dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/dispatch.mcfunction new file mode 100644 index 0000000..1b0f3d4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/dispatch.mcfunction @@ -0,0 +1,11 @@ +# datalib:systems/hook/internal/dispatch +# Iterates _hook_iter list, runs matching events. + +execute unless data storage datalib:engine _hook_iter[0] run return 0 + +data modify storage datalib:engine _hook_ctx set from storage datalib:engine _hook_iter[0] +data remove storage datalib:engine _hook_iter[0] + +function datalib:core/internal/systems/hook/check_bind with storage datalib:engine _hook_ctx + +function datalib:core/internal/systems/hook/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/exec.mcfunction new file mode 100644 index 0000000..fcd0d7b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/exec.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/hook/internal/exec [MACRO] +# INPUT: $(func) — guaranteed present (check_bind ensures func exists) +# @s = the triggering player + +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/fire.mcfunction new file mode 100644 index 0000000..6c0e10b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/fire.mcfunction @@ -0,0 +1,12 @@ +# datalib:systems/hook/internal/fire [MACRO] +# INPUT: $(event) — event name to fire +# @s = the triggering player +# Copies hook_binds list and dispatches it. + +$data modify storage datalib:engine _hook_fire_event set value "$(event)" +data modify storage datalib:engine _hook_iter set from storage datalib:engine hook_binds + +execute if data storage datalib:engine _hook_iter run function datalib:core/internal/systems/hook/dispatch + +data remove storage datalib:engine _hook_iter +data remove storage datalib:engine _hook_fire_event diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_advancement_fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_advancement_fire.mcfunction new file mode 100644 index 0000000..cdf48cc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_advancement_fire.mcfunction @@ -0,0 +1,9 @@ +# datalib:systems/hook/internal/on_advancement_fire [MACRO] +# INPUT: $(advancement) +# @s = player who earned the advancement + +$data modify storage datalib:engine _hook_fire_tmp set value {event:"advancement:$(advancement)"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"hook/on_advancement_fire ","color":"aqua"},{"text":"advancement:$(advancement)","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_block_break.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_block_break.mcfunction new file mode 100644 index 0000000..082ffb3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_block_break.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_block_break +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"block_break"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_block_place.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_block_place.mcfunction new file mode 100644 index 0000000..32cab4d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_block_place.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_block_place +# @s = the triggering player +data modify storage datalib:engine _hook_fire_tmp set value {event:"block_place"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_dimension_change.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_dimension_change.mcfunction new file mode 100644 index 0000000..c84e88f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_dimension_change.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_dimension_change +# @s = the triggering player +data modify storage datalib:engine _hook_fire_tmp set value {event:"dimension_change"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_drop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_drop.mcfunction new file mode 100644 index 0000000..31e8679 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_drop.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/internal/on_drop +data modify storage datalib:engine _hook_fire_tmp set value {event:"drop_item"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_eat.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_eat.mcfunction new file mode 100644 index 0000000..28dcc30 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_eat.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/internal/on_eat +# @s = the eating player +scoreboard players add @s datalib.hook_eat 1 +advancement revoke @s only datalib:systems/hook/eat_food diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_eat_fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_eat_fire.mcfunction new file mode 100644 index 0000000..f698b22 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_eat_fire.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_eat_fire +# @s = the eating player +data modify storage datalib:engine _hook_fire_tmp set value {event:"eat"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_elytra_start.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_elytra_start.mcfunction new file mode 100644 index 0000000..ffdcc89 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_elytra_start.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_elytra_start +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"elytra_start"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_elytra_stop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_elytra_stop.mcfunction new file mode 100644 index 0000000..c5cce8e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_elytra_stop.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_elytra_stop +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"elytra_stop"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_enchant.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_enchant.mcfunction new file mode 100644 index 0000000..32c2e06 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_enchant.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/internal/on_enchant +# Bridge: #player_action:v1/enchanted → #datalib:events/on_enchant +# Executor: @s = player who enchanted +function #datalib:events/on_enchant diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_entity_kill.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_entity_kill.mcfunction new file mode 100644 index 0000000..00ea04e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_entity_kill.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_entity_kill +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"entity_kill"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_fish_caught.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_fish_caught.mcfunction new file mode 100644 index 0000000..ee0f6d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_fish_caught.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/internal/on_fish_caught +# @s = the fishing player +scoreboard players add @s datalib.hook_fish 1 +advancement revoke @s only datalib:systems/hook/fish_caught diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_fish_fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_fish_fire.mcfunction new file mode 100644 index 0000000..6569134 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_fish_fire.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_fish_fire +# @s = the fishing player +data modify storage datalib:engine _hook_fire_tmp set value {event:"fish_caught"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_hero_of_the_village.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_hero_of_the_village.mcfunction new file mode 100644 index 0000000..3baffb5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_hero_of_the_village.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_hero_of_the_village +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"hero_of_the_village"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_interact_anvil.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_interact_anvil.mcfunction new file mode 100644 index 0000000..9882689 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_interact_anvil.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_interact_anvil +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"interact_anvil"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_interact_shulker_box.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_interact_shulker_box.mcfunction new file mode 100644 index 0000000..11b4861 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_interact_shulker_box.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_interact_shulker_box +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"interact_shulker_box"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_item_use.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_item_use.mcfunction new file mode 100644 index 0000000..8c1a687 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_item_use.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_item_use +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"item_use"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_jump.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_jump.mcfunction new file mode 100644 index 0000000..48bf18a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_jump.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/internal/on_jump +# Bridge: #player_action:v1/jumped → #datalib:events/on_jump +# Executor: @s = jumping player +function #datalib:events/on_jump diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_killed_by_arrow.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_killed_by_arrow.mcfunction new file mode 100644 index 0000000..22f188a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_killed_by_arrow.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_killed_by_arrow +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"killed_by_arrow"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_lc.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_lc.mcfunction new file mode 100644 index 0000000..742b8c8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_lc.mcfunction @@ -0,0 +1 @@ +function #datalib:events/on_lc \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_level_up.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_level_up.mcfunction new file mode 100644 index 0000000..630ebb3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_level_up.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_level_up +# @s = the triggering player +data modify storage datalib:engine _hook_fire_tmp set value {event:"level_up"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_open_chest.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_open_chest.mcfunction new file mode 100644 index 0000000..a7f4f23 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_open_chest.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/internal/on_open_chest +data modify storage datalib:engine _hook_fire_tmp set value {event:"open_chest"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_open_gui.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_open_gui.mcfunction new file mode 100644 index 0000000..d8d6491 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_open_gui.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/internal/on_open_gui +# Bridge: #player_action:v1/open_gui → #datalib:events/on_open_gui +# Executor: @s = player who opened a GUI block +function #datalib:events/on_open_gui diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_player_death.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_player_death.mcfunction new file mode 100644 index 0000000..1d31423 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_player_death.mcfunction @@ -0,0 +1,8 @@ +# datalib:systems/hook/internal/on_player_death +# @s = the triggering player +data modify storage datalib:engine _hook_fire_tmp set value {event:"player_death"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp + +# Event bus +function #datalib:events/on_death diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_player_join.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_player_join.mcfunction new file mode 100644 index 0000000..67ad5b2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_player_join.mcfunction @@ -0,0 +1,13 @@ +# datalib:systems/hook/internal/on_player_join +# @s = the triggering player +data modify storage datalib:engine _hook_fire_tmp set value {event:"player_join"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp + +# Event bus +function #datalib:events/on_join + +# Initialize player data and assign datalib.pid +# get_name populates datalib:names temp.NAME; init_from_name relays it to player/init +function datalib:player/get_name +function datalib:core/internal/player/init_from_name with storage datalib:names temp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_player_respawn.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_player_respawn.mcfunction new file mode 100644 index 0000000..64e1d9d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_player_respawn.mcfunction @@ -0,0 +1,8 @@ +# datalib:systems/hook/internal/on_player_respawn +# @s = the triggering player +data modify storage datalib:engine _hook_fire_tmp set value {event:"player_respawn"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp + +# Event bus +function #datalib:events/on_respawn diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_rc.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_rc.mcfunction new file mode 100644 index 0000000..7912495 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_rc.mcfunction @@ -0,0 +1 @@ +function #datalib:events/on_rc \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sneak_start.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sneak_start.mcfunction new file mode 100644 index 0000000..4dbf732 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sneak_start.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_sneak_start +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"sneak_start"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sneak_stop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sneak_stop.mcfunction new file mode 100644 index 0000000..27ec007 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sneak_stop.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_sneak_stop +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"sneak_stop"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sprint_start.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sprint_start.mcfunction new file mode 100644 index 0000000..d655548 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sprint_start.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_sprint_start +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"sprint_start"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sprint_stop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sprint_stop.mcfunction new file mode 100644 index 0000000..a322b31 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_sprint_stop.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_sprint_stop +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"sprint_stop"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_target_hit.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_target_hit.mcfunction new file mode 100644 index 0000000..3748814 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_target_hit.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/internal/on_target_hit +data modify storage datalib:engine _hook_fire_tmp set value {event:"target_hit"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_trade.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_trade.mcfunction new file mode 100644 index 0000000..c47e94c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_trade.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_trade +# @s = the triggering player +data modify storage datalib:engine _hook_fire_tmp set value {event:"trade"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_using_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_using_item.mcfunction new file mode 100644 index 0000000..b287d22 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/on_using_item.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/on_using_item +# @s = player who triggered the event +data modify storage datalib:engine _hook_fire_tmp set value {event:"using_item"} +function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/run_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/run_cmd.mcfunction new file mode 100644 index 0000000..b51a90d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/run_cmd.mcfunction @@ -0,0 +1,9 @@ +# datalib:systems/hook/internal/run_cmd [MACRO] +# INPUT: $(cmd) +# @s = the triggering player + +# SECURITY: central gate +execute unless function datalib:core/security/cmd_gate run return 0 + +execute if score #dl.log_level dl.log_level matches 4.. run tellraw @a[tag=datalib.debug] ["",{"text":"[Hook] ","color":"aqua"},{"selector":"@s","color":"gold"},{"text":" cmd executed","color":"#555555"}] +$$(cmd) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/tick_scan.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/tick_scan.mcfunction new file mode 100644 index 0000000..5d6fd12 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/tick_scan.mcfunction @@ -0,0 +1,101 @@ +# datalib:systems/hook/internal/tick_scan +# Her tick'te hook event'lerini tespit eder. +# Runs only if hook_binds is non-empty. + +# Module toggle guard — skips this module when disabled via datalib:api/toggle/hook/false +execute unless data storage datalib:engine {modules:{hook:1b}} run return 0 + +execute unless data storage datalib:engine hook_binds[0] run return 0 + +# player_join — delegated to #player_action:v1/joined (fired by player_action when player_action.join >= 1) +# Only score management remains here to prevent double-fire +execute as @a run scoreboard players set @s datalib.hook_online 1 + +# player_death — delegated to #player_action:v1/died (fired by player_action when player_action.death >= 1) +# Only score reset remains here to prevent double-fire +execute as @a[scores={datalib.hook_deaths=1..}] run scoreboard players set @s datalib.hook_deaths 0 + +# player_respawn — was dead (dead flag set) but alive again +execute as @a[tag=datalib.hook_dead,nbt={DeathTime:0s}] run function datalib:core/internal/systems/hook/on_player_respawn +execute as @a[tag=datalib.hook_dead,nbt={DeathTime:0s}] run tag @s remove datalib.hook_dead +execute as @a[nbt={DeathTime:1s}] run tag @s add datalib.hook_dead + +# level_up — XP level increase +execute as @a run function datalib:core/internal/systems/hook/check_level_up + +# block_place — advancement-based, placed_blocks score increase +execute as @a[scores={datalib.hook_placed=1..}] run function datalib:core/internal/systems/hook/on_block_place +execute as @a[scores={datalib.hook_placed=1..}] run scoreboard players set @s datalib.hook_placed 0 + +# block_break — statistic-based (no advancement trigger in 1.20.3–26.1+) +execute as @a run function datalib:core/internal/systems/hook/check_block_break + +# item_use — advancement-based, score increase +execute as @a[scores={datalib.hook_item_used=1..}] run function datalib:core/internal/systems/hook/on_item_use +execute as @a[scores={datalib.hook_item_used=1..}] run scoreboard players set @s datalib.hook_item_used 0 + + +# entity_kill — advancement-based, score increase +execute as @a[scores={datalib.hook_entity_killed=1..}] run function datalib:core/internal/systems/hook/on_entity_kill +execute as @a[scores={datalib.hook_entity_killed=1..}] run scoreboard players set @s datalib.hook_entity_killed 0 + +# using_item — item_durability_changed advancement-based +execute as @a[scores={datalib.hook_using_item=1..}] run function datalib:core/internal/systems/hook/on_using_item +execute as @a[scores={datalib.hook_using_item=1..}] run scoreboard players set @s datalib.hook_using_item 0 + +# killed_by_arrow — entity_killed_player + killing_blow:arrow advancement-based +execute as @a[scores={datalib.hook_killed_by_arrow=1..}] run function datalib:core/internal/systems/hook/on_killed_by_arrow +execute as @a[scores={datalib.hook_killed_by_arrow=1..}] run scoreboard players set @s datalib.hook_killed_by_arrow 0 + +# hero_of_the_village — raid victory advancement-based +execute as @a[scores={datalib.hook_hero_of_the_village=1..}] run function datalib:core/internal/systems/hook/on_hero_of_the_village +execute as @a[scores={datalib.hook_hero_of_the_village=1..}] run scoreboard players set @s datalib.hook_hero_of_the_village 0 + +# sneak_start / sneak_stop — predicate-based +execute as @a[scores={datalib.hook_sneak=..0},predicate=datalib:is_sneaking] run function datalib:core/internal/systems/hook/on_sneak_start +execute as @a[scores={datalib.hook_sneak=1},predicate=!datalib:is_sneaking] run function datalib:core/internal/systems/hook/on_sneak_stop +execute as @a[predicate=datalib:is_sneaking] run scoreboard players set @s datalib.hook_sneak 1 +execute as @a[predicate=!datalib:is_sneaking] run scoreboard players set @s datalib.hook_sneak 0 + +# sprint_start / sprint_stop — predicate-based +execute as @a[scores={datalib.hook_sprint=..0},predicate=datalib:is_sprinting] run function datalib:core/internal/systems/hook/on_sprint_start +execute as @a[scores={datalib.hook_sprint=1},predicate=!datalib:is_sprinting] run function datalib:core/internal/systems/hook/on_sprint_stop +execute as @a[predicate=datalib:is_sprinting] run scoreboard players set @s datalib.hook_sprint 1 +execute as @a[predicate=!datalib:is_sprinting] run scoreboard players set @s datalib.hook_sprint 0 + +# elytra_start / elytra_stop — predicate-based +execute as @a[scores={datalib.hook_elytra=..0},predicate=datalib:is_gliding] run function datalib:core/internal/systems/hook/on_elytra_start +execute as @a[scores={datalib.hook_elytra=1},predicate=!datalib:is_gliding] run function datalib:core/internal/systems/hook/on_elytra_stop +execute as @a[predicate=datalib:is_gliding] run scoreboard players set @s datalib.hook_elytra 1 +execute as @a[predicate=!datalib:is_gliding] run scoreboard players set @s datalib.hook_elytra 0 + + +execute as @a[scores={datalib.hook_dim_changed=1..}] run function datalib:core/internal/systems/hook/on_dimension_change +execute as @a[scores={datalib.hook_dim_changed=1..}] run scoreboard players set @s datalib.hook_dim_changed 0 + +execute as @a[scores={datalib.hook_traded=1..}] run function datalib:core/internal/systems/hook/on_trade +execute as @a[scores={datalib.hook_traded=1..}] run scoreboard players set @s datalib.hook_traded 0 + +# jumped — delegated to #player_action:v1/jumped (fired by player_action when player_action.jump >= 1) +# Only score reset remains here to prevent double-fire +execute as @a[scores={datalib.hook_jump=1..}] run scoreboard players reset @s datalib.hook_jump + +# open_chest — minecraft.custom:minecraft.open_chest stat +execute as @a[scores={datalib.hook_open_chest=1..}] run function datalib:core/internal/systems/hook/on_open_chest +execute as @a[scores={datalib.hook_open_chest=1..}] run scoreboard players reset @s datalib.hook_open_chest + +# drop_item — minecraft.custom:minecraft.drop stat +execute as @a[scores={datalib.hook_drop=1..}] run function datalib:core/internal/systems/hook/on_drop +execute as @a[scores={datalib.hook_drop=1..}] run scoreboard players reset @s datalib.hook_drop + +# target_hit — minecraft.custom:minecraft.target_hit stat +execute as @a[scores={datalib.hook_target_hit=1..}] run function datalib:core/internal/systems/hook/on_target_hit +execute as @a[scores={datalib.hook_target_hit=1..}] run scoreboard players reset @s datalib.hook_target_hit + +# eat — consume_item advancement-based +execute as @a[scores={datalib.hook_eat=1..}] run function datalib:core/internal/systems/hook/on_eat_fire +execute as @a[scores={datalib.hook_eat=1..}] run scoreboard players set @s datalib.hook_eat 0 + +# fish_caught — fishing_rod_hooked advancement-based +execute as @a[scores={datalib.hook_fish=1..}] run function datalib:core/internal/systems/hook/on_fish_fire +execute as @a[scores={datalib.hook_fish=1..}] run scoreboard players set @s datalib.hook_fish 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/unbind_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/unbind_check.mcfunction new file mode 100644 index 0000000..dbcbf60 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/unbind_check.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/hook/internal/unbind_check [MACRO] +# INPUT: $(event) — event field of the current bind +# If it does not match _hook_filter_event, put back into hook_binds. + +$execute unless data storage datalib:engine {_hook_filter_event:"$(event)"} run data modify storage datalib:engine hook_binds append from storage datalib:engine _hook_unbinds[0] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/unbind_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/unbind_exec.mcfunction new file mode 100644 index 0000000..358de15 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/unbind_exec.mcfunction @@ -0,0 +1,13 @@ +# datalib:systems/hook/internal/unbind_exec [MACRO] +# INPUT: $(event) +# Filters all binds belonging to $(event) from hook_binds. + +data modify storage datalib:engine _hook_unbinds set from storage datalib:engine hook_binds +data modify storage datalib:engine hook_binds set value [] +$data modify storage datalib:engine _hook_filter_event set value "$(event)" +function datalib:core/internal/systems/hook/unbind_filter + +data remove storage datalib:engine _hook_unbinds +data remove storage datalib:engine _hook_filter_event + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"hook/unbind ","color":"aqua"},{"text":"$(event)","color":"yellow"},{"text":" removed","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/unbind_filter.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/unbind_filter.mcfunction new file mode 100644 index 0000000..3ca5697 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/hook/unbind_filter.mcfunction @@ -0,0 +1,13 @@ +# datalib:systems/hook/internal/unbind_filter +# _hook_unbinds listesini iterate eder. +# Copies back binds that do not match _hook_filter_event to hook_binds. + +execute unless data storage datalib:engine _hook_unbinds[0] run return 0 + +data modify storage datalib:engine _hook_unbinds[0] set from storage datalib:engine _hook_unbinds[0] + +function datalib:core/internal/systems/hook/unbind_check with storage datalib:engine _hook_unbinds[0] + +data remove storage datalib:engine _hook_unbinds[0] + +function datalib:core/internal/systems/hook/unbind_filter diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/log/print_entry.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/log/print_entry.mcfunction new file mode 100644 index 0000000..931d1e1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/log/print_entry.mcfunction @@ -0,0 +1 @@ +function datalib:core/internal/systems/log/print_macro with storage datalib:engine _felist_current diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/log/print_macro.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/log/print_macro.mcfunction new file mode 100644 index 0000000..72cda4a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/log/print_macro.mcfunction @@ -0,0 +1 @@ +$tellraw @s {"text":"$(text)","color":"$(color)","italic":false} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/gcd_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/gcd_loop.mcfunction new file mode 100644 index 0000000..f77caa6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/gcd_loop.mcfunction @@ -0,0 +1,9 @@ +# Euclidean step: a = b, b = a % b — repeat until b is zero +execute if score $gcd_b dl.tmp matches 0 run return 0 + +scoreboard players operation $gcd_t dl.tmp = $gcd_a dl.tmp +scoreboard players operation $gcd_a dl.tmp = $gcd_b dl.tmp +scoreboard players operation $gcd_t dl.tmp %= $gcd_b dl.tmp +scoreboard players operation $gcd_b dl.tmp = $gcd_t dl.tmp + +function datalib:core/internal/systems/math/gcd_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/log2_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/log2_loop.mcfunction new file mode 100644 index 0000000..8340b8a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/log2_loop.mcfunction @@ -0,0 +1,6 @@ +execute if score $lg2_v dl.tmp matches ..1 run return 0 + +scoreboard players add $lg2_r dl.tmp 1 +scoreboard players operation $lg2_v dl.tmp /= $lg2_2 dl.tmp + +function datalib:core/internal/systems/math/log2_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/pow_loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/pow_loop.mcfunction new file mode 100644 index 0000000..6313e46 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/pow_loop.mcfunction @@ -0,0 +1,4 @@ +execute if score $pow_n dl.tmp matches ..0 run return 0 +scoreboard players operation $pow_r dl.tmp *= $pow_a dl.tmp +scoreboard players remove $pow_n dl.tmp 1 +function datalib:core/internal/systems/math/pow_loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/sqrt_step.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/sqrt_step.mcfunction new file mode 100644 index 0000000..52fe065 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/sqrt_step.mcfunction @@ -0,0 +1,13 @@ +scoreboard players operation $sqrt_mid dl.tmp = $sqrt_lo dl.tmp +scoreboard players operation $sqrt_mid dl.tmp += $sqrt_hi dl.tmp +scoreboard players set $sqrt_2 dl.tmp 2 +scoreboard players operation $sqrt_mid dl.tmp /= $sqrt_2 dl.tmp + +scoreboard players operation $sqrt_sq dl.tmp = $sqrt_mid dl.tmp +scoreboard players operation $sqrt_sq dl.tmp *= $sqrt_mid dl.tmp + +execute if score $sqrt_sq dl.tmp <= $sqrt_n dl.tmp run scoreboard players operation $sqrt_lo dl.tmp = $sqrt_mid dl.tmp +execute unless score $sqrt_sq dl.tmp <= $sqrt_n dl.tmp run scoreboard players operation $sqrt_hi dl.tmp = $sqrt_mid dl.tmp + +scoreboard players remove $sqrt_itr dl.tmp 1 +execute if score $sqrt_itr dl.tmp matches 1.. run function datalib:core/internal/systems/math/sqrt_step diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/add_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/add_exec.mcfunction new file mode 100644 index 0000000..cf0bb65 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/add_exec.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/math/vec/internal/add_exec [MACRO] +# INPUT: $(ax), $(ay), $(az), $(bx), $(by), $(bz) + +$scoreboard players set $vx dl.tmp $(ax) +$scoreboard players set $vy dl.tmp $(ay) +$scoreboard players set $vz dl.tmp $(az) +$scoreboard players add $vx dl.tmp $(bx) +$scoreboard players add $vy dl.tmp $(by) +$scoreboard players add $vz dl.tmp $(bz) + +execute store result storage datalib:output x int 1 run scoreboard players get $vx dl.tmp +execute store result storage datalib:output y int 1 run scoreboard players get $vy dl.tmp +execute store result storage datalib:output z int 1 run scoreboard players get $vz dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/vec/add ","color":"aqua"},{"text":"($(ax),$(ay),$(az))+($(bx),$(by),$(bz)) → ","color":"gray"},{"storage":"datalib:output","nbt":"x","color":"yellow"},{"text":",","color":"gray"},{"storage":"datalib:output","nbt":"y","color":"yellow"},{"text":",","color":"gray"},{"storage":"datalib:output","nbt":"z","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/angle_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/angle_exec.mcfunction new file mode 100644 index 0000000..c24f2f9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/angle_exec.mcfunction @@ -0,0 +1,47 @@ +# datalib:systems/math/vec/internal/angle_exec [MACRO] +# INPUT: $(ax), $(ay), $(az), $(bx), $(by), $(bz) +# RULE: Lines without $(var) must NOT have a $ prefix. + +function datalib:core/lib/input_push + +$data modify storage datalib:engine _vec_dot_tmp ax set value $(ax) +$data modify storage datalib:engine _vec_dot_tmp ay set value $(ay) +$data modify storage datalib:engine _vec_dot_tmp az set value $(az) +$data modify storage datalib:engine _vec_dot_tmp bx set value $(bx) +$data modify storage datalib:engine _vec_dot_tmp by set value $(by) +$data modify storage datalib:engine _vec_dot_tmp bz set value $(bz) +function datalib:systems/math/vec/dot with storage datalib:engine _vec_dot_tmp +execute store result score $vang_dot dl.tmp run data get storage datalib:output result + +data modify storage datalib:engine _math_d3d_tmp.x1 set value 0 +data modify storage datalib:engine _math_d3d_tmp.y1 set value 0 +data modify storage datalib:engine _math_d3d_tmp.z1 set value 0 +$data modify storage datalib:engine _math_d3d_tmp x2 set value $(ax) +$data modify storage datalib:engine _math_d3d_tmp y2 set value $(ay) +$data modify storage datalib:engine _math_d3d_tmp z2 set value $(az) +function datalib:systems/math/distance3d with storage datalib:engine _math_d3d_tmp +execute store result score $vang_la dl.tmp run data get storage datalib:output result + +$data modify storage datalib:engine _math_d3d_tmp x2 set value $(bx) +$data modify storage datalib:engine _math_d3d_tmp y2 set value $(by) +$data modify storage datalib:engine _math_d3d_tmp z2 set value $(bz) +function datalib:systems/math/distance3d with storage datalib:engine _math_d3d_tmp +execute store result score $vang_lb dl.tmp run data get storage datalib:output result + +function datalib:core/lib/input_pop + +data modify storage datalib:output result set value 0 + +execute if score $vang_la dl.tmp matches 0 run return 0 +execute if score $vang_lb dl.tmp matches 0 run return 0 + +scoreboard players set $vang_1000 dl.tmp 1000 +scoreboard players operation $vang_dot dl.tmp *= $vang_1000 dl.tmp +scoreboard players operation $vang_la dl.tmp *= $vang_lb dl.tmp +scoreboard players operation $vang_dot dl.tmp /= $vang_la dl.tmp + +execute if score $vang_dot dl.tmp matches 1001.. run scoreboard players set $vang_dot dl.tmp 1000 +execute if score $vang_dot dl.tmp matches ..-1001 run scoreboard players set $vang_dot dl.tmp -1000 + +execute store result storage datalib:engine _vang_cos int 1 run scoreboard players get $vang_dot dl.tmp +function datalib:core/internal/systems/math/vec/arccos_lookup diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/arccos_lookup.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/arccos_lookup.mcfunction new file mode 100644 index 0000000..0881166 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/arccos_lookup.mcfunction @@ -0,0 +1,25 @@ +# datalib:systems/math/vec/internal/arccos_lookup +# $vang_dot dl.tmp = cos×1000 value ([-1000, 1000]) +# 10° resolution arccos lookup table. + +execute if score $vang_dot dl.tmp matches 993.. run data modify storage datalib:output result set value 0 +execute if score $vang_dot dl.tmp matches 963..992 run data modify storage datalib:output result set value 10 +execute if score $vang_dot dl.tmp matches 903..962 run data modify storage datalib:output result set value 20 +execute if score $vang_dot dl.tmp matches 816..902 run data modify storage datalib:output result set value 30 +execute if score $vang_dot dl.tmp matches 705..815 run data modify storage datalib:output result set value 40 +execute if score $vang_dot dl.tmp matches 571..704 run data modify storage datalib:output result set value 50 +execute if score $vang_dot dl.tmp matches 421..570 run data modify storage datalib:output result set value 60 +execute if score $vang_dot dl.tmp matches 258..420 run data modify storage datalib:output result set value 70 +execute if score $vang_dot dl.tmp matches 87..257 run data modify storage datalib:output result set value 80 +execute if score $vang_dot dl.tmp matches -87..86 run data modify storage datalib:output result set value 90 +execute if score $vang_dot dl.tmp matches -257..-88 run data modify storage datalib:output result set value 100 +execute if score $vang_dot dl.tmp matches -420..-258 run data modify storage datalib:output result set value 110 +execute if score $vang_dot dl.tmp matches -570..-421 run data modify storage datalib:output result set value 120 +execute if score $vang_dot dl.tmp matches -704..-571 run data modify storage datalib:output result set value 130 +execute if score $vang_dot dl.tmp matches -815..-705 run data modify storage datalib:output result set value 140 +execute if score $vang_dot dl.tmp matches -902..-816 run data modify storage datalib:output result set value 150 +execute if score $vang_dot dl.tmp matches -962..-903 run data modify storage datalib:output result set value 160 +execute if score $vang_dot dl.tmp matches -992..-963 run data modify storage datalib:output result set value 170 +execute if score $vang_dot dl.tmp matches ..-993 run data modify storage datalib:output result set value 180 + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/vec/angle_between ","color":"aqua"},{"text":"cos×1000=","color":"gray"},{"score":{"name":"$vang_dot","objective":"dl.tmp"},"color":"yellow"},{"text":" → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"yellow"},{"text":"°","color":"gray"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/cross_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/cross_exec.mcfunction new file mode 100644 index 0000000..19ba538 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/cross_exec.mcfunction @@ -0,0 +1,40 @@ +# datalib:systems/math/vec/internal/cross_exec [MACRO] +# INPUT: $(ax), $(ay), $(az), $(bx), $(by), $(bz) + +# cx = ay*bz - az*by +$scoreboard players set $vcay dl.tmp $(ay) +$scoreboard players set $vcbz dl.tmp $(bz) +scoreboard players operation $vcay dl.tmp *= $vcbz dl.tmp + +$scoreboard players set $vcaz dl.tmp $(az) +$scoreboard players set $vcby dl.tmp $(by) +scoreboard players operation $vcaz dl.tmp *= $vcby dl.tmp + +scoreboard players operation $vcay dl.tmp -= $vcaz dl.tmp +execute store result storage datalib:output x int 1 run scoreboard players get $vcay dl.tmp + +# cy = az*bx - ax*bz +$scoreboard players set $vcaz2 dl.tmp $(az) +$scoreboard players set $vcbx dl.tmp $(bx) +scoreboard players operation $vcaz2 dl.tmp *= $vcbx dl.tmp + +$scoreboard players set $vcax dl.tmp $(ax) +$scoreboard players set $vcbz2 dl.tmp $(bz) +scoreboard players operation $vcax dl.tmp *= $vcbz2 dl.tmp + +scoreboard players operation $vcaz2 dl.tmp -= $vcax dl.tmp +execute store result storage datalib:output y int 1 run scoreboard players get $vcaz2 dl.tmp + +# cz = ax*by - ay*bx +$scoreboard players set $vcax2 dl.tmp $(ax) +$scoreboard players set $vcby2 dl.tmp $(by) +scoreboard players operation $vcax2 dl.tmp *= $vcby2 dl.tmp + +$scoreboard players set $vcay2 dl.tmp $(ay) +$scoreboard players set $vcbx2 dl.tmp $(bx) +scoreboard players operation $vcay2 dl.tmp *= $vcbx2 dl.tmp + +scoreboard players operation $vcax2 dl.tmp -= $vcay2 dl.tmp +execute store result storage datalib:output z int 1 run scoreboard players get $vcax2 dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/vec/cross ","color":"aqua"},{"text":"($(ax),$(ay),$(az))×($(bx),$(by),$(bz)) → ","color":"gray"},{"storage":"datalib:output","nbt":"x","color":"yellow"},{"text":",","color":"gray"},{"storage":"datalib:output","nbt":"y","color":"yellow"},{"text":",","color":"gray"},{"storage":"datalib:output","nbt":"z","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/dot_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/dot_exec.mcfunction new file mode 100644 index 0000000..a553c0b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/dot_exec.mcfunction @@ -0,0 +1,21 @@ +# datalib:systems/math/vec/internal/dot_exec [MACRO] +# INPUT: $(ax), $(ay), $(az), $(bx), $(by), $(bz) + +$scoreboard players set $vdax dl.tmp $(ax) +$scoreboard players set $vdbx dl.tmp $(bx) +scoreboard players operation $vdax dl.tmp *= $vdbx dl.tmp + +$scoreboard players set $vday dl.tmp $(ay) +$scoreboard players set $vdby dl.tmp $(by) +scoreboard players operation $vday dl.tmp *= $vdby dl.tmp + +$scoreboard players set $vdaz dl.tmp $(az) +$scoreboard players set $vdbz dl.tmp $(bz) +scoreboard players operation $vdaz dl.tmp *= $vdbz dl.tmp + +scoreboard players operation $vdax dl.tmp += $vday dl.tmp +scoreboard players operation $vdax dl.tmp += $vdaz dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $vdax dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/vec/dot ","color":"aqua"},{"text":"($(ax),$(ay),$(az))·($(bx),$(by),$(bz)) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/normalize_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/normalize_exec.mcfunction new file mode 100644 index 0000000..e183220 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/normalize_exec.mcfunction @@ -0,0 +1,44 @@ +# datalib:systems/math/vec/internal/normalize_exec [MACRO] +# INPUT: $(x), $(y), $(z) +# Compute length via math/distance3d, then ×1000 / length +# RULE: Lines without $(var) must NOT have a $ prefix. + +function datalib:core/lib/input_push + +data modify storage datalib:engine _math_d3d_tmp.x1 set value 0 +data modify storage datalib:engine _math_d3d_tmp.y1 set value 0 +data modify storage datalib:engine _math_d3d_tmp.z1 set value 0 +$data modify storage datalib:engine _math_d3d_tmp x2 set value $(x) +$data modify storage datalib:engine _math_d3d_tmp y2 set value $(y) +$data modify storage datalib:engine _math_d3d_tmp z2 set value $(z) +function datalib:systems/math/distance3d with storage datalib:engine _math_d3d_tmp + +function datalib:core/lib/input_pop + +execute store result score $vnlen dl.tmp run data get storage datalib:output result + +execute if score $vnlen dl.tmp matches 0 run data modify storage datalib:output x set value 0 +execute if score $vnlen dl.tmp matches 0 run data modify storage datalib:output y set value 0 +execute if score $vnlen dl.tmp matches 0 run data modify storage datalib:output z set value 0 +execute if score $vnlen dl.tmp matches 0 run data modify storage datalib:output length set value 0 +execute if score $vnlen dl.tmp matches 0 run return 0 + +execute store result storage datalib:output length int 1 run scoreboard players get $vnlen dl.tmp + +$scoreboard players set $vnx dl.tmp $(x) +scoreboard players set $vn1000 dl.tmp 1000 +scoreboard players operation $vnx dl.tmp *= $vn1000 dl.tmp +scoreboard players operation $vnx dl.tmp /= $vnlen dl.tmp +execute store result storage datalib:output x int 1 run scoreboard players get $vnx dl.tmp + +$scoreboard players set $vny dl.tmp $(y) +scoreboard players operation $vny dl.tmp *= $vn1000 dl.tmp +scoreboard players operation $vny dl.tmp /= $vnlen dl.tmp +execute store result storage datalib:output y int 1 run scoreboard players get $vny dl.tmp + +$scoreboard players set $vnz dl.tmp $(z) +scoreboard players operation $vnz dl.tmp *= $vn1000 dl.tmp +scoreboard players operation $vnz dl.tmp /= $vnlen dl.tmp +execute store result storage datalib:output z int 1 run scoreboard players get $vnz dl.tmp + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/vec/normalize ","color":"aqua"},{"text":"len=","color":"gray"},{"storage":"datalib:output","nbt":"length","color":"yellow"},{"text":" → ","color":"gray"},{"storage":"datalib:output","nbt":"x","color":"yellow"},{"text":",","color":"gray"},{"storage":"datalib:output","nbt":"y","color":"yellow"},{"text":",","color":"gray"},{"storage":"datalib:output","nbt":"z","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/sub_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/sub_exec.mcfunction new file mode 100644 index 0000000..bbf59e3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/math/vec/sub_exec.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/math/vec/internal/sub_exec [MACRO] +# INPUT: $(ax), $(ay), $(az), $(bx), $(by), $(bz) + +$scoreboard players set $vx dl.tmp $(ax) +$scoreboard players set $vy dl.tmp $(ay) +$scoreboard players set $vz dl.tmp $(az) +$scoreboard players remove $vx dl.tmp $(bx) +$scoreboard players remove $vy dl.tmp $(by) +$scoreboard players remove $vz dl.tmp $(bz) + +execute store result storage datalib:output x int 1 run scoreboard players get $vx dl.tmp +execute store result storage datalib:output y int 1 run scoreboard players get $vy dl.tmp +execute store result storage datalib:output z int 1 run scoreboard players get $vz dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/vec/sub ","color":"aqua"},{"text":"($(ax),$(ay),$(az))-($(bx),$(by),$(bz)) → ","color":"gray"},{"storage":"datalib:output","nbt":"x","color":"yellow"},{"text":",","color":"gray"},{"storage":"datalib:output","nbt":"y","color":"yellow"},{"text":",","color":"gray"},{"storage":"datalib:output","nbt":"z","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/append_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/append_exec.mcfunction new file mode 100644 index 0000000..35e5703 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/append_exec.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/nbt/internal/append_exec [MACRO] +# INPUT: $(dst_storage), $(dst_path), $(src_storage), $(src_path) + +$data modify storage $(dst_storage) $(dst_path) append from storage $(src_storage) $(src_path) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/append ","color":"aqua"},{"text":"$(src_storage):$(src_path)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(dst_storage):$(dst_path)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/clear_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/clear_exec.mcfunction new file mode 100644 index 0000000..7824b78 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/clear_exec.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/nbt/internal/clear_exec [MACRO] +# INPUT: $(storage), $(path) + +$data remove storage $(storage) $(path) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/clear ","color":"aqua"},{"text":"$(storage):$(path)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/copy_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/copy_exec.mcfunction new file mode 100644 index 0000000..23b8adc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/copy_exec.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/nbt/internal/copy_exec [MACRO] +# INPUT: $(src_storage), $(src_path), $(dst_storage), $(dst_path) + +$data modify storage $(dst_storage) $(dst_path) set from storage $(src_storage) $(src_path) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/copy ","color":"aqua"},{"text":"$(src_storage):$(src_path)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(dst_storage):$(dst_path)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/count_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/count_exec.mcfunction new file mode 100644 index 0000000..a3f97c4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/count_exec.mcfunction @@ -0,0 +1,9 @@ +# datalib:systems/nbt/internal/count_exec [MACRO] +# INPUT: $(storage), $(path) + +scoreboard players set $nbt_count dl.tmp 0 +$execute store result score $nbt_count dl.tmp run data get storage $(storage) $(path) + +execute store result storage datalib:output result int 1 run scoreboard players get $nbt_count dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/count ","color":"aqua"},{"text":"$(storage):$(path)","color":"white"},{"text":" → ","color":"#555555"},{"score":{"name":"$nbt_count","objective":"dl.tmp"},"color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/exists_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/exists_exec.mcfunction new file mode 100644 index 0000000..789a1ba --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/exists_exec.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/nbt/internal/exists_exec [MACRO] +# INPUT: $(storage), $(path) + +data modify storage datalib:output result set value 0b +$execute if data storage $(storage) $(path) run data modify storage datalib:output result set value 1b + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/exists ","color":"aqua"},{"text":"$(storage):$(path)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/first_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/first_exec.mcfunction new file mode 100644 index 0000000..c9436e6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/first_exec.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/nbt/internal/first_exec [MACRO] +# INPUT: $(src_storage), $(src_path), $(dst_storage), $(dst_path) + +$data modify storage $(dst_storage) $(dst_path) set from storage $(src_storage) $(src_path)[0] + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/first ","color":"aqua"},{"text":"$(src_storage):$(src_path)[0]","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(dst_storage):$(dst_path)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/merge_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/merge_exec.mcfunction new file mode 100644 index 0000000..bf429db --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/merge_exec.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/nbt/internal/merge_exec [MACRO] +# INPUT: $(src_storage), $(src_path), $(dst_storage), $(dst_path) + +$data modify storage $(dst_storage) $(dst_path) merge from storage $(src_storage) $(src_path) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/merge ","color":"aqua"},{"text":"$(src_storage):$(src_path)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(dst_storage):$(dst_path)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/move_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/move_exec.mcfunction new file mode 100644 index 0000000..31a8fe4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/move_exec.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/nbt/internal/move_exec [MACRO] +# INPUT: $(storage), $(from_path), $(to_path) + +$data modify storage $(storage) $(to_path) set from storage $(storage) $(from_path) +$data remove storage $(storage) $(from_path) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/move ","color":"aqua"},{"text":"$(from_path)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(to_path)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/pop_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/pop_exec.mcfunction new file mode 100644 index 0000000..b96217d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/pop_exec.mcfunction @@ -0,0 +1,8 @@ +# datalib:systems/nbt/internal/pop_exec [MACRO] +# INPUT: $(storage), $(path) + +$execute if data storage $(storage) $(path)[0] run data modify storage datalib:output result set from storage $(storage) $(path)[0] +$execute if data storage $(storage) $(path)[0] run data remove storage $(storage) $(path)[0] +$execute unless data storage $(storage) $(path)[0] run data modify storage datalib:output result set value 0b + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/pop ","color":"aqua"},{"text":"$(storage):$(path)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/swap_exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/swap_exec.mcfunction new file mode 100644 index 0000000..2694fc2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/nbt/swap_exec.mcfunction @@ -0,0 +1,9 @@ +# datalib:systems/nbt/internal/swap_exec [MACRO] +# INPUT: $(storage), $(path_a), $(path_b) + +$data modify storage datalib:engine _nbt_swap set from storage $(storage) $(path_a) +$data modify storage $(storage) $(path_a) set from storage $(storage) $(path_b) +$data modify storage $(storage) $(path_b) set from storage datalib:engine _nbt_swap +data remove storage datalib:engine _nbt_swap + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"nbt/swap ","color":"aqua"},{"text":"$(path_a)","color":"white"},{"text":" ↔ ","color":"#555555"},{"text":"$(path_b)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/evaluate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/evaluate.mcfunction new file mode 100644 index 0000000..c8af6d5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/evaluate.mcfunction @@ -0,0 +1,41 @@ +# datalib:systems/rate_limit/internal/evaluate — Sliding window core [MACRO] +# Input: $(key), $(limit), $(window), $(hits) (array, not used directly here) +# +# Algorithm: +# 1. Get current epoch tick +# 2. Compute window start = epoch - window + 1 +# 3. Prune hits older than window start → stored as datalib:engine rate_limit.rules..hits +# 4. Count remaining hits +# 5. If count < limit → record new hit, return ALLOWED +# 6. Else → return DENIED (do NOT record hit) + +# Step 1: capture current epoch + compute window boundary +execute store result score $rl_now dl.tmp run scoreboard players get $epoch datalib.time +$scoreboard players set $rl_win dl.tmp $(window) +scoreboard players operation $rl_start dl.tmp = $rl_now dl.tmp +scoreboard players operation $rl_start dl.tmp -= $rl_win dl.tmp +scoreboard players add $rl_start dl.tmp 1 + +# Step 2: write boundary into work storage for the pruner macro +execute store result storage datalib:rl_work prune_before int 1 run scoreboard players get $rl_start dl.tmp + +# Step 3: prune expired hits (hits[i].t < prune_before) +# We do this by rebuilding the hits list via internal/prune +$data modify storage datalib:rl_work rule_key set value "$(key)" +function datalib:core/internal/systems/rate_limit/prune with storage datalib:rl_work + +# Step 4: count surviving hits +$execute store result score $rl_count dl.tmp run data get storage datalib:engine rate_limit.rules.$(key).hits + +# Step 5: compare against limit +$scoreboard players set $rl_limit dl.tmp $(limit) + +# DENIED path — limit reached +execute if score $rl_count dl.tmp >= $rl_limit dl.tmp run data modify storage datalib:output result set value 0b +execute if score $rl_count dl.tmp >= $rl_limit dl.tmp run return 0 + +# ALLOWED path — append new hit timestamp +execute store result storage datalib:rl_work new_hit.t int 1 run scoreboard players get $rl_now dl.tmp +$data modify storage datalib:engine rate_limit.rules.$(key).hits append from storage datalib:rl_work new_hit + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"rate_limit ","color":"aqua"},{"text":"ALLOW ","color":"#55FF55"},{"text":"$(key)","color":"white"},{"text":" (","color":"#555555"},{"score":{"name":"$rl_count","objective":"dl.tmp"},"color":"green"},{"text":"+1/","color":"#555555"},{"text":"$(limit)","color":"green"},{"text":")","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/no_rule.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/no_rule.mcfunction new file mode 100644 index 0000000..6f4e948 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/no_rule.mcfunction @@ -0,0 +1,5 @@ +# datalib:systems/rate_limit/internal/no_rule — Warn when check called on unregistered key [MACRO] +# Input: $(key) +# Fail-open: result stays 1b (ALLOWED) so callers aren't broken by missing config. + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"rate_limit/check ","color":"aqua"},{"text":"WARN ","color":"#FFAA00"},{"text":"no rule for key: ","color":"#555555"},{"text":"$(key)","color":"#FF5555"},{"text":" — fail-open","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/player/ensure.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/player/ensure.mcfunction new file mode 100644 index 0000000..e920c9d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/player/ensure.mcfunction @@ -0,0 +1,8 @@ +# datalib:systems/rate_limit/player/internal/ensure — Seed player bucket from template [MACRO] +# Input: $(tpl), $(full) +# Called only when bucket doesn't exist yet for this player. + +$execute unless data storage datalib:engine rate_limit.player_templates.$(tpl) run return 0 +$data modify storage datalib:engine "rate_limit.rules.$(full)" set from storage datalib:engine rate_limit.player_templates.$(tpl) +$data modify storage datalib:engine "rate_limit.rules.$(full).hits" set value [] +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"rate_limit ","color":"aqua"},{"text":"INIT ","color":"#55FFFF"},{"text":"player bucket: ","color":"#555555"},{"text":"$(full)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/player_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/player_check.mcfunction new file mode 100644 index 0000000..53d0d6a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/player_check.mcfunction @@ -0,0 +1,17 @@ +# datalib:systems/rate_limit/internal/player_check — Auto-ensure player bucket if needed [MACRO] +# Input: $(ensure_key) — the full compound key from check +# +# Only acts when: +# 1. Key starts with "player:" (checked via NBT string prefix match workaround) +# 2. No rule exists yet for that key +# 3. A player_template exists for the base key portion +# +# Since we can't do string operations in mcfunction, we use a two-pass approach: +# player/check wrapper sets both $(key) and $(tpl) explicitly, so +# this file is only reached from the generic check path. +# In that case, just check if rule exists and exit if it does. + +$execute if data storage datalib:engine rate_limit.rules.$(ensure_key) run return 0 + +# Rule absent. If this looks like a player key the wrapper already pre-seeded it. +# Nothing more to do here — no_rule path handles the rest. diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/player_ensure.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/player_ensure.mcfunction new file mode 100644 index 0000000..144fcd4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/player_ensure.mcfunction @@ -0,0 +1,10 @@ +# datalib:systems/rate_limit/internal/player_ensure — Auto-create player bucket from template [MACRO] +# Called by check when rule key "player::" doesn't exist yet. +# Reads the template registered via rate_limit/player/config and creates the bucket. +# Input: $(key) = full compound key e.g. "player:shop:Steve" +# $(tpl) = template key e.g. "shop" + +$execute unless data storage datalib:engine rate_limit.player_templates.$(tpl) run return 0 +$data modify storage datalib:engine rate_limit.rules.$(key) set from storage datalib:engine rate_limit.player_templates.$(tpl) +$data modify storage datalib:engine rate_limit.rules.$(key).hits set value [] +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"rate_limit ","color":"aqua"},{"text":"INIT ","color":"#55FFFF"},{"text":"bucket for ","color":"#555555"},{"text":"$(key)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/prune.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/prune.mcfunction new file mode 100644 index 0000000..46d9cff --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/rate_limit/prune.mcfunction @@ -0,0 +1,19 @@ +# datalib:systems/rate_limit/internal/prune — Remove hits outside the sliding window [MACRO] +# Input: $(rule_key), datalib:rl_work.prune_before (int, from evaluate) +# +# Strategy: iterate hits array from index 0 upward. +# Hits are appended in chronological order, so hits[0] is always the oldest. +# We remove from the front until hits[0].t >= prune_before (or array empty). +# This is O(expired_count) — optimal for a FIFO sliding window. + +$execute unless data storage datalib:engine rate_limit.rules.$(rule_key).hits[0] run return 0 + +# Read oldest hit timestamp +$execute store result score $rl_oldest dl.tmp run data get storage datalib:engine rate_limit.rules.$(rule_key).hits[0].t + +# If oldest hit is still inside window → nothing left to prune +execute if score $rl_oldest dl.tmp >= $rl_start dl.tmp run return 0 + +# Oldest hit is expired → remove it and recurse +$data remove storage datalib:engine rate_limit.rules.$(rule_key).hits[0] +function datalib:core/internal/systems/rate_limit/prune with storage datalib:rl_work diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_1.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_1.mcfunction new file mode 100644 index 0000000..7b35c9b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_1.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_10.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_10.mcfunction new file mode 100644 index 0000000..b6c8710 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_10.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_11.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_11.mcfunction new file mode 100644 index 0000000..e87e146 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_11.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_12.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_12.mcfunction new file mode 100644 index 0000000..3a3fb48 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_12.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_13.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_13.mcfunction new file mode 100644 index 0000000..f678fa9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_13.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_14.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_14.mcfunction new file mode 100644 index 0000000..a269c97 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_14.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_15.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_15.mcfunction new file mode 100644 index 0000000..cc56a19 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_15.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_16.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_16.mcfunction new file mode 100644 index 0000000..a4ce4d2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_16.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_2.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_2.mcfunction new file mode 100644 index 0000000..59eb502 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_2.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_3.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_3.mcfunction new file mode 100644 index 0000000..9dbc307 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_3.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_4.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_4.mcfunction new file mode 100644 index 0000000..26af85c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_4.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_5.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_5.mcfunction new file mode 100644 index 0000000..673aa2f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_5.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_6.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_6.mcfunction new file mode 100644 index 0000000..ba2c657 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_6.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_7.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_7.mcfunction new file mode 100644 index 0000000..c463f85 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_7.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_8.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_8.mcfunction new file mode 100644 index 0000000..d819f91 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_8.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_9.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_9.mcfunction new file mode 100644 index 0000000..839b380 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/string/repeat_9.mcfunction @@ -0,0 +1 @@ +$data modify storage datalib:output result set value "$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)$(char)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/concat.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/concat.mcfunction new file mode 100644 index 0000000..a0e9e55 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/concat.mcfunction @@ -0,0 +1,15 @@ +# ============================================================ +# datalib:systems/uuid/internal/concat [MACRO FUNCTION] +# Builds a standard UUID string from 16 hex field values +# +# Call: function datalib:core/internal/systems/uuid/concat with storage datalib:uuid _tmp +# Output: datalib:input value → "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +# +# UUID byte order (big-endian): +# Segment 1 (8 hex): int0 MSB→LSB = [3][2][1][0] +# Segment 2 (4 hex): int1 MSB→LSB = [7][6] +# Segment 3 (4 hex): int1 continued = [5][4] +# Segment 4 (4 hex): int2 MSB→LSB = [b][a] +# Segment 5 (12 hex): int2 continued + int3 = [9][8][f][e][d][c] +# ============================================================ +$data modify storage datalib:input value set value "$(3)$(2)$(1)$(0)-$(7)$(6)-$(5)$(4)-$(b)$(a)-$(9)$(8)$(f)$(e)$(d)$(c)" diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/extract_bytes.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/extract_bytes.mcfunction new file mode 100644 index 0000000..87b99b6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/extract_bytes.mcfunction @@ -0,0 +1,157 @@ +# ============================================================ +# datalib:systems/uuid/internal/extract_bytes +# Splits 4 UUID ints into 16 bytes (correct signed integer arithmetic) +# +# REQUIREMENT: The following fake-player scores must be set: +# $uuid.0 $uuid.1 $uuid.2 $uuid.3 dl.tmp +# $uuid.256 dl.tmp = 256 (set by init) +# +# OUTPUT: storage datalib:uuid _tmp +# Fields 0..3 → bytes of int 0 (0=LSB, 3=MSB) +# Fields 4..7 → bytes of int 1 +# Fields 8..b → bytes of int 2 +# Fields c..f → bytes of int 3 +# Each field is guaranteed to be in range 0–255. +# +# NEDEN GU'DAN FARKLI? +# Java's `/` operator truncates toward zero for negative dividends. +# Example: -1 / 256 = 0 (floor should be -1). +# GU does not handle this; high bytes of negative ints are computed incorrectly. +# This function correctly extracts each byte using floor-division: +# +# b_raw = v % 256 (Java mod, range -255..255) +# if b_raw < 0: +# v = (v / 256) - 1 (correction for floor division) +# b = b_raw + 256 (normalize to 0..255) +# else: +# v = v / 256 +# b = b_raw +# ============================================================ + +# --- INT 0 (first 4 bytes of UUID, fields 0..3) --- + +# byte 0 — LSB +scoreboard players operation $uuid.a dl.tmp = $uuid.0 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.0 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.0 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.0 int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 1 +scoreboard players operation $uuid.a dl.tmp = $uuid.0 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.0 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.0 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.1 int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 2 +scoreboard players operation $uuid.a dl.tmp = $uuid.0 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.0 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.0 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.2 int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 3 — MSB (last byte, no division) +scoreboard players operation $uuid.a dl.tmp = $uuid.0 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.3 int 1 run scoreboard players get $uuid.a dl.tmp + +# --- INT 1 (alanlar 4..7) --- + +# byte 0 — LSB +scoreboard players operation $uuid.a dl.tmp = $uuid.1 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.1 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.1 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.4 int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 1 +scoreboard players operation $uuid.a dl.tmp = $uuid.1 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.1 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.1 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.5 int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 2 +scoreboard players operation $uuid.a dl.tmp = $uuid.1 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.1 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.1 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.6 int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 3 — MSB +scoreboard players operation $uuid.a dl.tmp = $uuid.1 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.7 int 1 run scoreboard players get $uuid.a dl.tmp + +# --- INT 2 (alanlar 8..b) --- + +# byte 0 — LSB +scoreboard players operation $uuid.a dl.tmp = $uuid.2 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.2 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.2 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.8 int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 1 +scoreboard players operation $uuid.a dl.tmp = $uuid.2 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.2 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.2 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.9 int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 2 +scoreboard players operation $uuid.a dl.tmp = $uuid.2 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.2 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.2 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.a int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 3 — MSB +scoreboard players operation $uuid.a dl.tmp = $uuid.2 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.b int 1 run scoreboard players get $uuid.a dl.tmp + +# --- INT 3 (alanlar c..f) --- + +# byte 0 — LSB +scoreboard players operation $uuid.a dl.tmp = $uuid.3 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.3 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.3 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.c int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 1 +scoreboard players operation $uuid.a dl.tmp = $uuid.3 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.3 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.3 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.d int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 2 +scoreboard players operation $uuid.a dl.tmp = $uuid.3 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +scoreboard players operation $uuid.3 dl.tmp /= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players remove $uuid.3 dl.tmp 1 +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.e int 1 run scoreboard players get $uuid.a dl.tmp + +# byte 3 — MSB +scoreboard players operation $uuid.a dl.tmp = $uuid.3 dl.tmp +scoreboard players operation $uuid.a dl.tmp %= $uuid.256 dl.tmp +execute if score $uuid.a dl.tmp matches ..-1 run scoreboard players add $uuid.a dl.tmp 256 +execute store result storage datalib:uuid _tmp.f int 1 run scoreboard players get $uuid.a dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/forget_key.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/forget_key.mcfunction new file mode 100644 index 0000000..3aff994 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/forget_key.mcfunction @@ -0,0 +1,8 @@ +# ============================================================ +# datalib:systems/uuid/internal/forget_key [MACRO FUNCTION] +# Deletes the specified key from uuid_cache +# +# Call: function datalib:core/internal/systems/uuid/forget_key with storage datalib:input +# $(key) = name of the key to delete +# ============================================================ +$data remove storage datalib:engine uuid_cache.$(key) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/get_hexes.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/get_hexes.mcfunction new file mode 100644 index 0000000..2c50c02 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/get_hexes.mcfunction @@ -0,0 +1,24 @@ +# ============================================================ +# datalib:systems/uuid/internal/get_hexes [MACRO FUNCTION] +# Converts 16 byte ints in datalib:uuid _tmp to 2-character hex strings +# +# Call: function datalib:core/internal/systems/uuid/get_hexes with storage datalib:uuid _tmp +# Fields 0..f are used as indices into the hex lookup table. +# The same fields are overwritten with hex string results. +# ============================================================ +$data modify storage datalib:uuid _tmp.0 set from storage datalib:uuid hex_chars[$(0)] +$data modify storage datalib:uuid _tmp.1 set from storage datalib:uuid hex_chars[$(1)] +$data modify storage datalib:uuid _tmp.2 set from storage datalib:uuid hex_chars[$(2)] +$data modify storage datalib:uuid _tmp.3 set from storage datalib:uuid hex_chars[$(3)] +$data modify storage datalib:uuid _tmp.4 set from storage datalib:uuid hex_chars[$(4)] +$data modify storage datalib:uuid _tmp.5 set from storage datalib:uuid hex_chars[$(5)] +$data modify storage datalib:uuid _tmp.6 set from storage datalib:uuid hex_chars[$(6)] +$data modify storage datalib:uuid _tmp.7 set from storage datalib:uuid hex_chars[$(7)] +$data modify storage datalib:uuid _tmp.8 set from storage datalib:uuid hex_chars[$(8)] +$data modify storage datalib:uuid _tmp.9 set from storage datalib:uuid hex_chars[$(9)] +$data modify storage datalib:uuid _tmp.a set from storage datalib:uuid hex_chars[$(a)] +$data modify storage datalib:uuid _tmp.b set from storage datalib:uuid hex_chars[$(b)] +$data modify storage datalib:uuid _tmp.c set from storage datalib:uuid hex_chars[$(c)] +$data modify storage datalib:uuid _tmp.d set from storage datalib:uuid hex_chars[$(d)] +$data modify storage datalib:uuid _tmp.e set from storage datalib:uuid hex_chars[$(e)] +$data modify storage datalib:uuid _tmp.f set from storage datalib:uuid hex_chars[$(f)] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/has_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/has_check.mcfunction new file mode 100644 index 0000000..ed6b1e7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/has_check.mcfunction @@ -0,0 +1,8 @@ +# ============================================================ +# datalib:systems/uuid/internal/has_check [MACRO FUNCTION] +# Checks key existence in the cache +# +# Call: function datalib:core/internal/systems/uuid/has_check with storage datalib:input +# $(key) = name of the key to check +# ============================================================ +$execute if data storage datalib:engine uuid_cache.$(key) run scoreboard players set $uuid.has dl.tmp 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/init.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/init.mcfunction new file mode 100644 index 0000000..04fc615 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/init.mcfunction @@ -0,0 +1,31 @@ +# ============================================================ +# datalib:systems/uuid/internal/init +# UUID module init — hex table and constant setup +# Called by load/storages.mcfunction +# ============================================================ + +# Division constant (lives in dl.tmp scoreboard, uuid module specific) +scoreboard players set $uuid.256 dl.tmp 256 + +# Byte → 2-character hex string lookup table (00-ff, 256 entries) +# Initialized only if not yet loaded +execute unless data storage datalib:uuid hex_chars run data modify storage datalib:uuid hex_chars set value [\ +"00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f",\ +"10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f",\ +"20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f",\ +"30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f",\ +"40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f",\ +"50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f",\ +"60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f",\ +"70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f",\ +"80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f",\ +"90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f",\ +"a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af",\ +"b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf",\ +"c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf",\ +"d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df",\ +"e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef",\ +"f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"] + +# UUID cache section +execute unless data storage datalib:engine uuid_cache run data modify storage datalib:engine uuid_cache set value {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/match_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/match_check.mcfunction new file mode 100644 index 0000000..af48a6a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/match_check.mcfunction @@ -0,0 +1,8 @@ +# ============================================================ +# datalib:systems/uuid/internal/match_check [MACRO FUNCTION] +# Dynamically compares the current UUID string with _match_target +# +# Call: function datalib:core/internal/systems/uuid/match_check with storage datalib:input +# $(value) = current UUID string written by from_entity +# ============================================================ +$execute if data storage datalib:uuid {_match_target:"$(value)"} run function datalib:core/internal/systems/uuid/match_fire with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/match_fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/match_fire.mcfunction new file mode 100644 index 0000000..ae92866 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/match_fire.mcfunction @@ -0,0 +1,9 @@ +# ============================================================ +# datalib:systems/uuid/internal/match_fire [MACRO] +# Runs the uuid/match callback. +# +# Call: function datalib:core/internal/systems/uuid/match_fire with storage datalib:input {} +# $(func) = datalib:input func field +# ============================================================ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/recall_arr_read.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/recall_arr_read.mcfunction new file mode 100644 index 0000000..f41859b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/recall_arr_read.mcfunction @@ -0,0 +1,8 @@ +# ============================================================ +# datalib:systems/uuid/internal/recall_arr_read [MACRO FUNCTION] +# Reads UUID int array from the cache +# +# Call: function datalib:core/internal/systems/uuid/recall_arr_read with storage datalib:input +# $(key) = key name +# ============================================================ +$data modify storage datalib:input value set from storage datalib:engine uuid_cache.$(key).arr diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/recall_read.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/recall_read.mcfunction new file mode 100644 index 0000000..9470e79 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/recall_read.mcfunction @@ -0,0 +1,8 @@ +# ============================================================ +# datalib:systems/uuid/internal/recall_read [MACRO FUNCTION] +# Reads UUID string from the cache +# +# Call: function datalib:core/internal/systems/uuid/recall_read with storage datalib:input +# $(key) = key name +# ============================================================ +$data modify storage datalib:input value set from storage datalib:engine uuid_cache.$(key).str diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/store_write.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/store_write.mcfunction new file mode 100644 index 0000000..6eb7759 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/systems/uuid/store_write.mcfunction @@ -0,0 +1,10 @@ +# ============================================================ +# datalib:systems/uuid/internal/store_write [MACRO FUNCTION] +# UUID'yi datalib:engine uuid_cache'e yazar (hem string hem array) +# +# Call: function datalib:core/internal/systems/uuid/store_write with storage datalib:input +# $(key) = key name +# $(value) = UUID hex string (written by from_entity) +# ============================================================ +$data modify storage datalib:engine uuid_cache.$(key).str set value "$(value)" +$data modify storage datalib:engine uuid_cache.$(key).arr set from storage datalib:uuid _store_arr diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/world/entity/random_assign.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/world/entity/random_assign.mcfunction new file mode 100644 index 0000000..824f0c6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/world/entity/random_assign.mcfunction @@ -0,0 +1,15 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/entity/internal/random_assign [INTERNAL] +# Called via "execute as @e[...] run function ..." — runs as each +# matching entity in sequence. +# +# Copies the current counter ($rnd_i dl.tmp) into this entity's +# dl.rnd_idx score, then increments the counter. +# Because each function call runs to completion before the next +# entity is processed, $rnd_i increments correctly. +# +# Result: entity 1 → dl.rnd_idx=0, entity 2 → 1, entity 3 → 2 … +# ───────────────────────────────────────────────────────────────── + +scoreboard players operation @s dl.rnd_idx = $rnd_i dl.tmp +scoreboard players add $rnd_i dl.tmp 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/world/entity/random_dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/world/entity/random_dispatch.mcfunction new file mode 100644 index 0000000..fcb9712 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/internal/world/entity/random_dispatch.mcfunction @@ -0,0 +1,21 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/entity/internal/random_dispatch [INTERNAL — MACRO] +# Called with "with storage datalib:engine _rnd". +# +# Rolls /random value 0..$(max) to pick a uniform random index, +# then runs the target function as the entity whose dl.rnd_idx +# matches the rolled value. +# +# MACRO ARGS (from datalib:engine _rnd compound): +# $(max) → count - 1 (upper bound for random value, inclusive) +# $(func) → function to dispatch +# $(type) → entity type filter (same as outer call) +# $(tag) → entity tag filter (same as outer call) +# ───────────────────────────────────────────────────────────────── + +# Roll a random integer in [0, max] using the 1.20.2+ /random command +$execute store result score $rnd_pick dl.tmp run random value 0..$(max) + +# Dispatch: run func as the entity whose index was rolled +$data modify storage datalib:engine _dispatch.func set value "$(func)" +$execute as @e[type=$(type),tag=$(tag)] if score @s dl.rnd_idx = $rnd_pick dl.tmp at @s run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/add.mcfunction new file mode 100644 index 0000000..1a72781 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/add.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/batch/add +# Adds a job to the batch queue. +# +# INPUT (storage datalib:input): +# id → batch id +# func → function to run (opsiyonel) +# cmd → command to run (optional, used if no func) +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/core/lib/batch/add_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/begin.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/begin.mcfunction new file mode 100644 index 0000000..c4235be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/begin.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/batch/begin +# Starts a new batch or clears an existing one. +# +# INPUT (storage datalib:input): +# id → batch id +# spread_over → how many ticks to spread over (default: 1) +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/core/lib/batch/begin_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/cancel.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/cancel.mcfunction new file mode 100644 index 0000000..619861e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/cancel.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/batch/cancel +# Cancels a batch that has not been flushed. +# Items already flushed and queued cannot be cancelled +# (pulling from process_queue is not supported — dataLib design constraint). +# +# INPUT (storage datalib:input): +# id → batch id +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/core/lib/batch/cancel_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/flush.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/flush.mcfunction new file mode 100644 index 0000000..7a8df0e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/batch/flush.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/batch/flush +# Splits batch jobs across spread_over ticks and adds them to process_queue. +# Jobs per tick: ceil(items / spread_over). +# Batch record is deleted after flush. +# +# INPUT (storage datalib:input): +# id → batch id +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/core/lib/batch/flush_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/debounce.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/debounce.mcfunction new file mode 100644 index 0000000..d1f1182 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/debounce.mcfunction @@ -0,0 +1,4 @@ +$execute if data storage datalib:engine schedules.$(key) run return 0 + +function datalib:core/lib/schedule with storage datalib:input {} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/debounce ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/debounce_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/debounce_cmd.mcfunction new file mode 100644 index 0000000..1d6bafe --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/debounce_cmd.mcfunction @@ -0,0 +1,4 @@ +$execute if data storage datalib:engine schedules.$(key) run return 0 + +function datalib:core/lib/schedule_cmd with storage datalib:input {} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/debounce_cmd ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/is_alive.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/is_alive.mcfunction new file mode 100644 index 0000000..aa5a9ba --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/is_alive.mcfunction @@ -0,0 +1,12 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/fiber/is_alive +# Checks whether a fiber is active. +# +# INPUT (storage datalib:input): +# id → fiber id +# +# OUTPUT (storage datalib:output): +# result → 1b (active) | 0b (dead or never started) +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/core/lib/fiber/is_alive_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/kill.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/kill.mcfunction new file mode 100644 index 0000000..9b6f9b4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/kill.mcfunction @@ -0,0 +1,9 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/fiber/kill +# Stops a fiber. Pending resumes in the queue will not run. +# +# INPUT (storage datalib:input): +# id → fiber id +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/core/lib/fiber/kill_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/resume.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/resume.mcfunction new file mode 100644 index 0000000..c0f4294 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/resume.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/fiber/resume +# Resumes a fiber immediately (no delay). +# Used to trigger a fiber step externally without yield. +# +# INPUT (storage datalib:input): +# id → fiber id +# func → function to run +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/core/lib/fiber/resume_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/spawn.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/spawn.mcfunction new file mode 100644 index 0000000..2ed7522 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/spawn.mcfunction @@ -0,0 +1,16 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/fiber/spawn +# Starts a new fiber and immediately runs its first step. +# If spawned with the same id, the existing fiber is replaced. +# +# INPUT (storage datalib:input): +# id → fiber id (unique string) +# func → function name to start +# +# EXAMPLE: +# data modify storage datalib:input id set value "boss_intro" +# data modify storage datalib:input func set value "mypack:boss/step_0" +# function datalib:core/lib/fiber/spawn +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/core/lib/fiber/spawn_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/yield.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/yield.mcfunction new file mode 100644 index 0000000..d041f50 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/fiber/yield.mcfunction @@ -0,0 +1,14 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/fiber/yield +# Exits a fiber step and queues the next step. +# Checks if the fiber is dead — no resume after kill. +# +# INPUT (storage datalib:input): +# id → fiber id +# resume → function name of the next step +# delay → how many ticks to wait before resuming (default: 1) +# +# CALL SITE: called at the end of a fiber step function. +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/core/lib/fiber/yield_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_entity.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_entity.mcfunction new file mode 100644 index 0000000..1ce7618 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_entity.mcfunction @@ -0,0 +1,3 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +$execute as @e[type=$(type),tag=$(tag)] run function #datalib:internal/dispatch +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/for_each_entity ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_list.mcfunction new file mode 100644 index 0000000..d566b6a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_list.mcfunction @@ -0,0 +1,9 @@ +$data modify storage datalib:engine _felist_state set value {func:"$(func)"} +scoreboard players set $felist_i dl.tmp 0 +function datalib:core/internal/core/lib/for_each_list_step + +data remove storage datalib:engine _felist_input +data remove storage datalib:engine _felist_state +data remove storage datalib:engine _felist_current +data remove storage datalib:engine _felist_i +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/for_each_list ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_player.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_player.mcfunction new file mode 100644 index 0000000..a330a40 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_player.mcfunction @@ -0,0 +1,3 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +execute as @a run function #datalib:internal/dispatch +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/for_each_player ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_player_at.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_player_at.mcfunction new file mode 100644 index 0000000..be92210 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/for_each_player_at.mcfunction @@ -0,0 +1,3 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +execute as @a at @s run function #datalib:internal/dispatch +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/for_each_player_at ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/input_pop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/input_pop.mcfunction new file mode 100644 index 0000000..59e4a6e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/input_pop.mcfunction @@ -0,0 +1,189 @@ +data remove storage datalib:input player +data remove storage datalib:input key +data remove storage datalib:input value +data remove storage datalib:input func +data remove storage datalib:input count +data remove storage datalib:input delay +data remove storage datalib:input event +data remove storage datalib:input duration +data remove storage datalib:input team +data remove storage datalib:input target +data remove storage datalib:input message +data remove storage datalib:input color +data remove storage datalib:input label +data remove storage datalib:input interval +data remove storage datalib:input amount +data remove storage datalib:input objective +data remove storage datalib:input item +data remove storage datalib:input tag +data remove storage datalib:input a +data remove storage datalib:input b +data remove storage datalib:input t +data remove storage datalib:input min +data remove storage datalib:input max +data remove storage datalib:input n +data remove storage datalib:input x +data remove storage datalib:input y +data remove storage datalib:input z +data remove storage datalib:input x1 +data remove storage datalib:input y1 +data remove storage datalib:input z1 +data remove storage datalib:input x2 +data remove storage datalib:input y2 +data remove storage datalib:input z2 +data remove storage datalib:input name +data remove storage datalib:input dx +data remove storage datalib:input dy +data remove storage datalib:input dz +data remove storage datalib:input speed +data remove storage datalib:input sound +data remove storage datalib:input volume +data remove storage datalib:input pitch +data remove storage datalib:input source +data remove storage datalib:input category +data remove storage datalib:input entity +data remove storage datalib:input nbt +data remove storage datalib:input block +data remove storage datalib:input mode +data remove storage datalib:input text +data remove storage datalib:input title +data remove storage datalib:input subtitle +data remove storage datalib:input fade_in +data remove storage datalib:input stay +data remove storage datalib:input fade_out +data remove storage datalib:input effect +data remove storage datalib:input enchantment +data remove storage datalib:input level +data remove storage datalib:input attribute +data remove storage datalib:input amplifier +data remove storage datalib:input id +data remove storage datalib:input rule +data remove storage datalib:input type +data remove storage datalib:input structure +data remove storage datalib:input loot_table +data remove storage datalib:input reason +data remove storage datalib:input cmd +data remove storage datalib:input cx +data remove storage datalib:input cz +data remove storage datalib:input spread +data remove storage datalib:input max_range + +data remove storage datalib:input uuid +data remove storage datalib:input customData +data remove storage datalib:input invoke +data remove storage datalib:input slot +data remove storage datalib:input modifier +data remove storage datalib:input operation +data remove storage datalib:input advancement +data remove storage datalib:input json +data remove storage datalib:input vehicle +data remove storage datalib:input feature +data remove storage datalib:input hide +data remove storage datalib:input damage_type +data remove storage datalib:input fx +data remove storage datalib:input fy +data remove storage datalib:input fz +data remove storage datalib:input sub_color +data remove storage datalib:input distance +data remove storage datalib:input filter +data remove storage datalib:input new_tag +data remove storage datalib:input remove_tag +data remove storage datalib:input expected +data remove storage datalib:input new_block +data remove storage datalib:input replace_with + +data modify storage datalib:input player set from storage datalib:engine _input_stack[-1].player +data modify storage datalib:input key set from storage datalib:engine _input_stack[-1].key +data modify storage datalib:input value set from storage datalib:engine _input_stack[-1].value +data modify storage datalib:input func set from storage datalib:engine _input_stack[-1].func +data modify storage datalib:input count set from storage datalib:engine _input_stack[-1].count +data modify storage datalib:input delay set from storage datalib:engine _input_stack[-1].delay +data modify storage datalib:input event set from storage datalib:engine _input_stack[-1].event +data modify storage datalib:input duration set from storage datalib:engine _input_stack[-1].duration +data modify storage datalib:input team set from storage datalib:engine _input_stack[-1].team +data modify storage datalib:input target set from storage datalib:engine _input_stack[-1].target +data modify storage datalib:input message set from storage datalib:engine _input_stack[-1].message +data modify storage datalib:input color set from storage datalib:engine _input_stack[-1].color +data modify storage datalib:input label set from storage datalib:engine _input_stack[-1].label +data modify storage datalib:input interval set from storage datalib:engine _input_stack[-1].interval +data modify storage datalib:input amount set from storage datalib:engine _input_stack[-1].amount +data modify storage datalib:input objective set from storage datalib:engine _input_stack[-1].objective +data modify storage datalib:input item set from storage datalib:engine _input_stack[-1].item +data modify storage datalib:input tag set from storage datalib:engine _input_stack[-1].tag +data modify storage datalib:input a set from storage datalib:engine _input_stack[-1].a +data modify storage datalib:input b set from storage datalib:engine _input_stack[-1].b +data modify storage datalib:input t set from storage datalib:engine _input_stack[-1].t +data modify storage datalib:input min set from storage datalib:engine _input_stack[-1].min +data modify storage datalib:input max set from storage datalib:engine _input_stack[-1].max +data modify storage datalib:input n set from storage datalib:engine _input_stack[-1].n +data modify storage datalib:input x set from storage datalib:engine _input_stack[-1].x +data modify storage datalib:input y set from storage datalib:engine _input_stack[-1].y +data modify storage datalib:input z set from storage datalib:engine _input_stack[-1].z +data modify storage datalib:input x1 set from storage datalib:engine _input_stack[-1].x1 +data modify storage datalib:input y1 set from storage datalib:engine _input_stack[-1].y1 +data modify storage datalib:input z1 set from storage datalib:engine _input_stack[-1].z1 +data modify storage datalib:input x2 set from storage datalib:engine _input_stack[-1].x2 +data modify storage datalib:input y2 set from storage datalib:engine _input_stack[-1].y2 +data modify storage datalib:input z2 set from storage datalib:engine _input_stack[-1].z2 +data modify storage datalib:input name set from storage datalib:engine _input_stack[-1].name +data modify storage datalib:input dx set from storage datalib:engine _input_stack[-1].dx +data modify storage datalib:input dy set from storage datalib:engine _input_stack[-1].dy +data modify storage datalib:input dz set from storage datalib:engine _input_stack[-1].dz +data modify storage datalib:input speed set from storage datalib:engine _input_stack[-1].speed +data modify storage datalib:input sound set from storage datalib:engine _input_stack[-1].sound +data modify storage datalib:input volume set from storage datalib:engine _input_stack[-1].volume +data modify storage datalib:input pitch set from storage datalib:engine _input_stack[-1].pitch +data modify storage datalib:input source set from storage datalib:engine _input_stack[-1].source +data modify storage datalib:input category set from storage datalib:engine _input_stack[-1].category +data modify storage datalib:input entity set from storage datalib:engine _input_stack[-1].entity +data modify storage datalib:input nbt set from storage datalib:engine _input_stack[-1].nbt +data modify storage datalib:input block set from storage datalib:engine _input_stack[-1].block +data modify storage datalib:input mode set from storage datalib:engine _input_stack[-1].mode +data modify storage datalib:input text set from storage datalib:engine _input_stack[-1].text +data modify storage datalib:input title set from storage datalib:engine _input_stack[-1].title +data modify storage datalib:input subtitle set from storage datalib:engine _input_stack[-1].subtitle +data modify storage datalib:input fade_in set from storage datalib:engine _input_stack[-1].fade_in +data modify storage datalib:input stay set from storage datalib:engine _input_stack[-1].stay +data modify storage datalib:input fade_out set from storage datalib:engine _input_stack[-1].fade_out +data modify storage datalib:input effect set from storage datalib:engine _input_stack[-1].effect +data modify storage datalib:input enchantment set from storage datalib:engine _input_stack[-1].enchantment +data modify storage datalib:input level set from storage datalib:engine _input_stack[-1].level +data modify storage datalib:input attribute set from storage datalib:engine _input_stack[-1].attribute +data modify storage datalib:input amplifier set from storage datalib:engine _input_stack[-1].amplifier +data modify storage datalib:input id set from storage datalib:engine _input_stack[-1].id +data modify storage datalib:input rule set from storage datalib:engine _input_stack[-1].rule +data modify storage datalib:input type set from storage datalib:engine _input_stack[-1].type +data modify storage datalib:input structure set from storage datalib:engine _input_stack[-1].structure +data modify storage datalib:input loot_table set from storage datalib:engine _input_stack[-1].loot_table +data modify storage datalib:input reason set from storage datalib:engine _input_stack[-1].reason +data modify storage datalib:input cmd set from storage datalib:engine _input_stack[-1].cmd +data modify storage datalib:input cx set from storage datalib:engine _input_stack[-1].cx +data modify storage datalib:input cz set from storage datalib:engine _input_stack[-1].cz +data modify storage datalib:input spread set from storage datalib:engine _input_stack[-1].spread +data modify storage datalib:input max_range set from storage datalib:engine _input_stack[-1].max_range + +data modify storage datalib:input uuid set from storage datalib:engine _input_stack[-1].uuid +data modify storage datalib:input customData set from storage datalib:engine _input_stack[-1].customData +data modify storage datalib:input invoke set from storage datalib:engine _input_stack[-1].invoke +data modify storage datalib:input slot set from storage datalib:engine _input_stack[-1].slot +data modify storage datalib:input modifier set from storage datalib:engine _input_stack[-1].modifier +data modify storage datalib:input operation set from storage datalib:engine _input_stack[-1].operation +data modify storage datalib:input advancement set from storage datalib:engine _input_stack[-1].advancement +data modify storage datalib:input json set from storage datalib:engine _input_stack[-1].json +data modify storage datalib:input vehicle set from storage datalib:engine _input_stack[-1].vehicle +data modify storage datalib:input feature set from storage datalib:engine _input_stack[-1].feature +data modify storage datalib:input hide set from storage datalib:engine _input_stack[-1].hide +data modify storage datalib:input damage_type set from storage datalib:engine _input_stack[-1].damage_type +data modify storage datalib:input fx set from storage datalib:engine _input_stack[-1].fx +data modify storage datalib:input fy set from storage datalib:engine _input_stack[-1].fy +data modify storage datalib:input fz set from storage datalib:engine _input_stack[-1].fz +data modify storage datalib:input sub_color set from storage datalib:engine _input_stack[-1].sub_color +data modify storage datalib:input distance set from storage datalib:engine _input_stack[-1].distance +data modify storage datalib:input filter set from storage datalib:engine _input_stack[-1].filter +data modify storage datalib:input new_tag set from storage datalib:engine _input_stack[-1].new_tag +data modify storage datalib:input remove_tag set from storage datalib:engine _input_stack[-1].remove_tag +data modify storage datalib:input expected set from storage datalib:engine _input_stack[-1].expected +data modify storage datalib:input new_block set from storage datalib:engine _input_stack[-1].new_block +data modify storage datalib:input replace_with set from storage datalib:engine _input_stack[-1].replace_with + +data remove storage datalib:engine _input_stack[-1] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/input_push.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/input_push.mcfunction new file mode 100644 index 0000000..ed42c20 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/input_push.mcfunction @@ -0,0 +1,96 @@ +data modify storage datalib:engine _input_stack append value {} + +data modify storage datalib:engine _input_stack[-1].player set from storage datalib:input player +data modify storage datalib:engine _input_stack[-1].key set from storage datalib:input key +data modify storage datalib:engine _input_stack[-1].value set from storage datalib:input value +data modify storage datalib:engine _input_stack[-1].func set from storage datalib:input func +data modify storage datalib:engine _input_stack[-1].count set from storage datalib:input count +data modify storage datalib:engine _input_stack[-1].delay set from storage datalib:input delay +data modify storage datalib:engine _input_stack[-1].event set from storage datalib:input event +data modify storage datalib:engine _input_stack[-1].duration set from storage datalib:input duration +data modify storage datalib:engine _input_stack[-1].team set from storage datalib:input team +data modify storage datalib:engine _input_stack[-1].target set from storage datalib:input target +data modify storage datalib:engine _input_stack[-1].message set from storage datalib:input message +data modify storage datalib:engine _input_stack[-1].color set from storage datalib:input color +data modify storage datalib:engine _input_stack[-1].label set from storage datalib:input label +data modify storage datalib:engine _input_stack[-1].interval set from storage datalib:input interval +data modify storage datalib:engine _input_stack[-1].amount set from storage datalib:input amount +data modify storage datalib:engine _input_stack[-1].objective set from storage datalib:input objective +data modify storage datalib:engine _input_stack[-1].item set from storage datalib:input item +data modify storage datalib:engine _input_stack[-1].tag set from storage datalib:input tag +data modify storage datalib:engine _input_stack[-1].a set from storage datalib:input a +data modify storage datalib:engine _input_stack[-1].b set from storage datalib:input b +data modify storage datalib:engine _input_stack[-1].t set from storage datalib:input t +data modify storage datalib:engine _input_stack[-1].min set from storage datalib:input min +data modify storage datalib:engine _input_stack[-1].max set from storage datalib:input max +data modify storage datalib:engine _input_stack[-1].n set from storage datalib:input n +data modify storage datalib:engine _input_stack[-1].x set from storage datalib:input x +data modify storage datalib:engine _input_stack[-1].y set from storage datalib:input y +data modify storage datalib:engine _input_stack[-1].z set from storage datalib:input z +data modify storage datalib:engine _input_stack[-1].x1 set from storage datalib:input x1 +data modify storage datalib:engine _input_stack[-1].y1 set from storage datalib:input y1 +data modify storage datalib:engine _input_stack[-1].z1 set from storage datalib:input z1 +data modify storage datalib:engine _input_stack[-1].x2 set from storage datalib:input x2 +data modify storage datalib:engine _input_stack[-1].y2 set from storage datalib:input y2 +data modify storage datalib:engine _input_stack[-1].z2 set from storage datalib:input z2 +data modify storage datalib:engine _input_stack[-1].name set from storage datalib:input name +data modify storage datalib:engine _input_stack[-1].dx set from storage datalib:input dx +data modify storage datalib:engine _input_stack[-1].dy set from storage datalib:input dy +data modify storage datalib:engine _input_stack[-1].dz set from storage datalib:input dz +data modify storage datalib:engine _input_stack[-1].speed set from storage datalib:input speed +data modify storage datalib:engine _input_stack[-1].sound set from storage datalib:input sound +data modify storage datalib:engine _input_stack[-1].volume set from storage datalib:input volume +data modify storage datalib:engine _input_stack[-1].pitch set from storage datalib:input pitch +data modify storage datalib:engine _input_stack[-1].source set from storage datalib:input source +data modify storage datalib:engine _input_stack[-1].category set from storage datalib:input category +data modify storage datalib:engine _input_stack[-1].entity set from storage datalib:input entity +data modify storage datalib:engine _input_stack[-1].nbt set from storage datalib:input nbt +data modify storage datalib:engine _input_stack[-1].block set from storage datalib:input block +data modify storage datalib:engine _input_stack[-1].mode set from storage datalib:input mode +data modify storage datalib:engine _input_stack[-1].text set from storage datalib:input text +data modify storage datalib:engine _input_stack[-1].title set from storage datalib:input title +data modify storage datalib:engine _input_stack[-1].subtitle set from storage datalib:input subtitle +data modify storage datalib:engine _input_stack[-1].fade_in set from storage datalib:input fade_in +data modify storage datalib:engine _input_stack[-1].stay set from storage datalib:input stay +data modify storage datalib:engine _input_stack[-1].fade_out set from storage datalib:input fade_out +data modify storage datalib:engine _input_stack[-1].effect set from storage datalib:input effect +data modify storage datalib:engine _input_stack[-1].enchantment set from storage datalib:input enchantment +data modify storage datalib:engine _input_stack[-1].level set from storage datalib:input level +data modify storage datalib:engine _input_stack[-1].attribute set from storage datalib:input attribute +data modify storage datalib:engine _input_stack[-1].amplifier set from storage datalib:input amplifier +data modify storage datalib:engine _input_stack[-1].id set from storage datalib:input id +data modify storage datalib:engine _input_stack[-1].rule set from storage datalib:input rule +data modify storage datalib:engine _input_stack[-1].type set from storage datalib:input type +data modify storage datalib:engine _input_stack[-1].structure set from storage datalib:input structure +data modify storage datalib:engine _input_stack[-1].loot_table set from storage datalib:input loot_table +data modify storage datalib:engine _input_stack[-1].reason set from storage datalib:input reason +data modify storage datalib:engine _input_stack[-1].cmd set from storage datalib:input cmd +data modify storage datalib:engine _input_stack[-1].cx set from storage datalib:input cx +data modify storage datalib:engine _input_stack[-1].cz set from storage datalib:input cz +data modify storage datalib:engine _input_stack[-1].spread set from storage datalib:input spread +data modify storage datalib:engine _input_stack[-1].max_range set from storage datalib:input max_range + +data modify storage datalib:engine _input_stack[-1].uuid set from storage datalib:input uuid +data modify storage datalib:engine _input_stack[-1].customData set from storage datalib:input customData +data modify storage datalib:engine _input_stack[-1].invoke set from storage datalib:input invoke +data modify storage datalib:engine _input_stack[-1].slot set from storage datalib:input slot +data modify storage datalib:engine _input_stack[-1].modifier set from storage datalib:input modifier +data modify storage datalib:engine _input_stack[-1].operation set from storage datalib:input operation +data modify storage datalib:engine _input_stack[-1].advancement set from storage datalib:input advancement +data modify storage datalib:engine _input_stack[-1].json set from storage datalib:input json +data modify storage datalib:engine _input_stack[-1].vehicle set from storage datalib:input vehicle +data modify storage datalib:engine _input_stack[-1].feature set from storage datalib:input feature +data modify storage datalib:engine _input_stack[-1].hide set from storage datalib:input hide +data modify storage datalib:engine _input_stack[-1].damage_type set from storage datalib:input damage_type +data modify storage datalib:engine _input_stack[-1].fx set from storage datalib:input fx +data modify storage datalib:engine _input_stack[-1].fy set from storage datalib:input fy +data modify storage datalib:engine _input_stack[-1].fz set from storage datalib:input fz +data modify storage datalib:engine _input_stack[-1].sub_color set from storage datalib:input sub_color +data modify storage datalib:engine _input_stack[-1].distance set from storage datalib:input distance +data modify storage datalib:engine _input_stack[-1].filter set from storage datalib:input filter +data modify storage datalib:engine _input_stack[-1].new_tag set from storage datalib:input new_tag +data modify storage datalib:engine _input_stack[-1].remove_tag set from storage datalib:input remove_tag +data modify storage datalib:engine _input_stack[-1].expected set from storage datalib:input expected +data modify storage datalib:engine _input_stack[-1].new_block set from storage datalib:input new_block +data modify storage datalib:engine _input_stack[-1].replace_with set from storage datalib:input replace_with + diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once.mcfunction new file mode 100644 index 0000000..45965e3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once.mcfunction @@ -0,0 +1,8 @@ +$execute if data storage datalib:engine once_keys.$(key) run return 0 + +$data modify storage datalib:engine once_keys.$(key) set value 1b + +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/once ","color":"aqua"},{"text":"[fired] ","color":"green"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once_cmd.mcfunction new file mode 100644 index 0000000..39ab92e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once_cmd.mcfunction @@ -0,0 +1,12 @@ +$execute if data storage datalib:engine once_keys.$(key) run return 0 + +$data modify storage datalib:engine once_keys.$(key) set value 1b + +# SECURITY: central gate +execute unless function datalib:core/security/cmd_gate run return 0 + +tellraw @a[tag=datalib.admin] [{"selector":"@s","color":"gold"},{"text":" - command executed","color":"yellow"}] + +$$(cmd) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/once_cmd ","color":"aqua"},{"text":"[fired] ","color":"green"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(cmd)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once_per_player.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once_per_player.mcfunction new file mode 100644 index 0000000..d723b35 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once_per_player.mcfunction @@ -0,0 +1,21 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/once_per_player +# Runs the function once per player for the given key. +# Will not run again until the session is reset. +# Input : $(func) → function to run +# $(key) → unique key (e.g. "tutorial_intro") +# $(player) → player name +# Output: datalib:output ran → 1b (ran) / 0b (already done) +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output ran set value 0b + +$execute if data storage datalib:engine once_per_player.$(player).$(key) run return 0 + +data modify storage datalib:output ran set value 1b +$data modify storage datalib:engine once_per_player.$(player).$(key) set value 1b + +$data modify storage datalib:engine _dispatch.func set value "$(func)" +function #datalib:internal/dispatch + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/once_per_player ","color":"aqua"},{"text":"$(player):$(key) ","color":"white"},{"text":"✔ ran for the first time","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once_per_player_reset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once_per_player_reset.mcfunction new file mode 100644 index 0000000..4d9958d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/once_per_player_reset.mcfunction @@ -0,0 +1,8 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/lib/once_per_player_reset +# Deletes the once_per_player record — function can run again. +# Girdi : $(player), $(key) +# ───────────────────────────────────────────────────────────────── + +$data remove storage datalib:engine once_per_player.$(player).$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/once_per_player_reset ","color":"aqua"},{"text":"$(player):$(key) reset","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/process_queue.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/process_queue.mcfunction new file mode 100644 index 0000000..0008f6a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/process_queue.mcfunction @@ -0,0 +1,12 @@ +scoreboard players add $pq_depth dl.tmp 1 +execute if score $pq_depth dl.tmp matches 257.. run return 0 + +execute unless data storage datalib:engine queue[0] run return 0 + +execute store result score $qdel dl.tmp run data get storage datalib:engine queue[0].delay + +scoreboard players remove $qdel dl.tmp 1 +execute store result storage datalib:engine queue[0].delay int 1 run scoreboard players get $qdel dl.tmp + +execute if score $qdel dl.tmp matches ..0 run function datalib:core/internal/core/lib/queue_fire +execute if score $qdel dl.tmp matches ..0 run function datalib:core/lib/process_queue diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_add.mcfunction new file mode 100644 index 0000000..47ec31d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_add.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(delay)} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/queue_add ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_add_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_add_as.mcfunction new file mode 100644 index 0000000..15fc68e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_add_as.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(delay), player:"$(player)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/queue_add_as ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"},{"text":" as $(player)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_add_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_add_cmd.mcfunction new file mode 100644 index 0000000..72d9b13 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_add_cmd.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine queue append value {cmd:"$(cmd)", delay:$(delay)} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/queue_add_cmd ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(cmd)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_clear.mcfunction new file mode 100644 index 0000000..2c0fb93 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/queue_clear.mcfunction @@ -0,0 +1,2 @@ +data remove storage datalib:engine queue +data modify storage datalib:engine queue set value [] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/repeat.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/repeat.mcfunction new file mode 100644 index 0000000..8a915de --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/repeat.mcfunction @@ -0,0 +1,8 @@ +$data modify storage datalib:engine _repeat.func set value "$(func)" +$scoreboard players set $rep_n dl.tmp $(count) +scoreboard players set $rep_i dl.tmp 0 +execute store result storage datalib:engine _repeat.i int 1 run scoreboard players get $rep_i dl.tmp +execute store result storage datalib:engine _repeat.remaining int 1 run scoreboard players get $rep_n dl.tmp +function datalib:core/internal/core/lib/repeat_run +data remove storage datalib:engine _repeat +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/repeat ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/repeat_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/repeat_as.mcfunction new file mode 100644 index 0000000..44acfaf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/repeat_as.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(interval), player:"$(player)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/repeat_as ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"},{"text":" as $(player)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/repeat_n.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/repeat_n.mcfunction new file mode 100644 index 0000000..2e465ab --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/repeat_n.mcfunction @@ -0,0 +1,9 @@ +$scoreboard players set $rn_n dl.tmp $(n) +scoreboard players set $rn_i dl.tmp 0 + +execute if score $rn_n dl.tmp matches ..0 run return 0 + +$data modify storage datalib:engine _rn_func set value "$(func)" +function datalib:core/internal/core/lib/repeat_n_loop +data remove storage datalib:engine _rn_func +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/repeat_n ","color":"aqua"},{"text":"$(func) × $(n)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule.mcfunction new file mode 100644 index 0000000..f0e3c0f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule.mcfunction @@ -0,0 +1,6 @@ +$execute if data storage datalib:engine schedules.$(key) run data remove storage datalib:engine schedules.$(key) + +$data modify storage datalib:engine schedules.$(key).func set value "$(func)" +$data modify storage datalib:engine schedules.$(key).interval set value $(interval) +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(interval)} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/schedule ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_as.mcfunction new file mode 100644 index 0000000..6fd68ae --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_as.mcfunction @@ -0,0 +1,7 @@ +$execute if data storage datalib:engine schedules.$(key) run data remove storage datalib:engine schedules.$(key) + +$data modify storage datalib:engine schedules.$(key).func set value "$(func)" +$data modify storage datalib:engine schedules.$(key).interval set value $(interval) +$data modify storage datalib:engine schedules.$(key).player set value "$(player)" +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(interval), player:"$(player)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/schedule_as ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" as $(player)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_cancel.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_cancel.mcfunction new file mode 100644 index 0000000..04ec2e8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_cancel.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine schedules.$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/schedule_cancel ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_cmd.mcfunction new file mode 100644 index 0000000..ebc6816 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_cmd.mcfunction @@ -0,0 +1,16 @@ +# ───────────────────────────────────────────── +# datalib:core/lib/schedule_cmd +# Repeating command scheduler at a fixed interval. +# +# Girdi (datalib:input): +# key — scheduler name (unique identifier) +# cmd — raw command to run on each trigger +# interval — repeat interval in ticks +# ───────────────────────────────────────────── + +$execute if data storage datalib:engine schedules.$(key) run data remove storage datalib:engine schedules.$(key) + +$data modify storage datalib:engine schedules.$(key).cmd set value "$(cmd)" +$data modify storage datalib:engine schedules.$(key).interval set value $(interval) +$data modify storage datalib:engine queue append value {cmd:"$(cmd)", delay:$(interval)} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/schedule_cmd ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" ($(interval)t)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_cmd_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_cmd_as.mcfunction new file mode 100644 index 0000000..ff96a65 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_cmd_as.mcfunction @@ -0,0 +1,7 @@ +$execute if data storage datalib:engine schedules.$(key) run data remove storage datalib:engine schedules.$(key) + +$data modify storage datalib:engine schedules.$(key).cmd set value "$(cmd)" +$data modify storage datalib:engine schedules.$(key).interval set value $(interval) +$data modify storage datalib:engine schedules.$(key).player set value "$(player)" +$data modify storage datalib:engine queue append value {cmd:"$(cmd)", delay:$(interval), player:"$(player)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/schedule_cmd_as ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" as $(player)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_if.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_if.mcfunction new file mode 100644 index 0000000..820bab1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_if.mcfunction @@ -0,0 +1 @@ +function datalib:core/lib/queue_add with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_if_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_if_cmd.mcfunction new file mode 100644 index 0000000..e096e9a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_if_cmd.mcfunction @@ -0,0 +1 @@ +function datalib:core/lib/queue_add_cmd with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_list.mcfunction new file mode 100644 index 0000000..ed3131c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_list.mcfunction @@ -0,0 +1,4 @@ +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Active Schedules ","color":"aqua"},{"text":"━━━━━━━━━","color":"#555555"}] +execute if data storage datalib:engine schedules run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"schedules","interpret":false,"color":"gold"}] +execute unless data storage datalib:engine schedules run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"text":"(no active schedules)","color":"gray","italic":true}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_renew.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_renew.mcfunction new file mode 100644 index 0000000..60c1542 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_renew.mcfunction @@ -0,0 +1,8 @@ +$execute unless data storage datalib:engine schedules.$(key) run return 0 +$data modify storage datalib:engine _sched_tmp set from storage datalib:engine schedules.$(key) +execute if data storage datalib:engine _sched_tmp.func if data storage datalib:engine _sched_tmp.player run function datalib:core/internal/core/lib/schedule_requeue_as with storage datalib:engine _sched_tmp +execute if data storage datalib:engine _sched_tmp.func unless data storage datalib:engine _sched_tmp.player run function datalib:core/internal/core/lib/schedule_requeue with storage datalib:engine _sched_tmp +execute if data storage datalib:engine _sched_tmp.cmd if data storage datalib:engine _sched_tmp.player run function datalib:core/internal/core/lib/schedule_requeue_cmd_as with storage datalib:engine _sched_tmp +execute if data storage datalib:engine _sched_tmp.cmd unless data storage datalib:engine _sched_tmp.player run function datalib:core/internal/core/lib/schedule_requeue_cmd with storage datalib:engine _sched_tmp +data remove storage datalib:engine _sched_tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/schedule_renew ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_reset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_reset.mcfunction new file mode 100644 index 0000000..6dcad88 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/schedule_reset.mcfunction @@ -0,0 +1,13 @@ +$execute unless data storage datalib:engine schedules.$(key) run return 0 + +$data modify storage datalib:engine _sreset set from storage datalib:engine schedules.$(key) +$data modify storage datalib:engine _sreset.key set value "$(key)" + +$data remove storage datalib:engine schedules.$(key) + +execute if data storage datalib:engine _sreset.func if data storage datalib:engine _sreset.player run function datalib:core/internal/core/lib/schedule_reset_do_as with storage datalib:engine _sreset +execute if data storage datalib:engine _sreset.func unless data storage datalib:engine _sreset.player run function datalib:core/internal/core/lib/schedule_reset_do with storage datalib:engine _sreset +execute if data storage datalib:engine _sreset.cmd if data storage datalib:engine _sreset.player run function datalib:core/internal/core/lib/schedule_reset_do_cmd_as with storage datalib:engine _sreset +execute if data storage datalib:engine _sreset.cmd unless data storage datalib:engine _sreset.player run function datalib:core/internal/core/lib/schedule_reset_do_cmd with storage datalib:engine _sreset +data remove storage datalib:engine _sreset +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/schedule_reset ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/concat.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/concat.mcfunction new file mode 100644 index 0000000..af7d7a0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/concat.mcfunction @@ -0,0 +1,10 @@ +# datalib:core/lib/string/concat +# Input: datalib:input list — list of strings to concatenate +# Output: datalib:output string.result — combined string +# Dep: StringLib (CMDred) +data modify storage stringlib:input concat set from storage datalib:input list +function stringlib:util/concat +data modify storage datalib:output string.result set from storage stringlib:output concat +data remove storage stringlib:input concat +data remove storage stringlib:output concat +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/concat","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/find.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/find.mcfunction new file mode 100644 index 0000000..af0118a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/find.mcfunction @@ -0,0 +1,15 @@ +# datalib:core/lib/string/find +# Input: datalib:input string — haystack string +# datalib:input find — substring to search +# datalib:input n — instance count (0=all, +n=first n, -n=last n) +# Output: datalib:output string.result — list of start indices, or [-1] if not found +# Dep: StringLib (CMDred) +data modify storage stringlib:input find.String set from storage datalib:input string +data modify storage stringlib:input find.Find set from storage datalib:input find +data remove storage stringlib:input find.n +data modify storage stringlib:input find.n set from storage datalib:input n +function stringlib:util/find +data modify storage datalib:output string.result set from storage stringlib:output find +data remove storage stringlib:input find +data remove storage stringlib:output find +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/find","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/insert.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/insert.mcfunction new file mode 100644 index 0000000..43dbcbe --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/insert.mcfunction @@ -0,0 +1,15 @@ +# datalib:core/lib/string/insert +# Input: datalib:input string — original string +# datalib:input insertion — string to insert +# datalib:input index — insertion position (integer) +# Output: datalib:output string.result — resulting string +# Dep: StringLib (CMDred) +data modify storage stringlib:input insert.String set from storage datalib:input string +data modify storage stringlib:input insert.Insertion set from storage datalib:input insertion +data modify storage datalib:engine _str_bridge.Index set from storage datalib:input index +function datalib:core/internal/core/lib/string/insert_dispatch with storage datalib:engine _str_bridge +data modify storage datalib:output string.result set from storage stringlib:output insert +data remove storage stringlib:input insert +data remove storage stringlib:output insert +data remove storage datalib:engine _str_bridge +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/insert","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/replace.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/replace.mcfunction new file mode 100644 index 0000000..0f5f9c9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/replace.mcfunction @@ -0,0 +1,17 @@ +# datalib:core/lib/string/replace +# Input: datalib:input string — original string +# datalib:input find — substring to replace +# datalib:input replace — replacement string +# datalib:input n — instance count (0/unset=all, +n=first n, -n=last n) +# Output: datalib:output string.result — resulting string +# Dep: StringLib (CMDred) +data modify storage stringlib:input replace.String set from storage datalib:input string +data modify storage stringlib:input replace.Find set from storage datalib:input find +data modify storage stringlib:input replace.Replace set from storage datalib:input replace +data remove storage stringlib:input replace.n +data modify storage stringlib:input replace.n set from storage datalib:input n +function stringlib:util/replace +data modify storage datalib:output string.result set from storage stringlib:output replace +data remove storage stringlib:input replace +data remove storage stringlib:output replace +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/replace","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/split.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/split.mcfunction new file mode 100644 index 0000000..0a6b634 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/split.mcfunction @@ -0,0 +1,19 @@ +# datalib:core/lib/string/split +# Input: datalib:input string — original string +# datalib:input separator — split delimiter (default " ", ""=each char) +# datalib:input n — max splits (0/unset=all, +n=first n, -n=last n) +# datalib:input keep_empty — 1b to keep empty segments, omit/0b to strip +# Output: datalib:output string.result — list of string segments +# Dep: StringLib (CMDred) +data modify storage stringlib:input split.String set from storage datalib:input string +data remove storage stringlib:input split.Separator +data modify storage stringlib:input split.Separator set from storage datalib:input separator +data remove storage stringlib:input split.n +data modify storage stringlib:input split.n set from storage datalib:input n +data remove storage stringlib:input split.KeepEmpty +data modify storage stringlib:input split.KeepEmpty set from storage datalib:input keep_empty +function stringlib:util/split +data modify storage datalib:output string.result set from storage stringlib:output split +data remove storage stringlib:input split +data remove storage stringlib:output split +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/split","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_lowercase.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_lowercase.mcfunction new file mode 100644 index 0000000..0027547 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_lowercase.mcfunction @@ -0,0 +1,11 @@ +# datalib:core/lib/string/to_lowercase +# Fast variant — covers A-Z only (faster) +# Input: datalib:input string — string to convert +# Output: datalib:output string.result — lowercase string +# Dep: StringLib (CMDred) +data modify storage datalib:engine _str_bridge.String set from storage datalib:input string +function datalib:core/internal/core/lib/string/to_lower_fast_dispatch with storage datalib:engine _str_bridge +data modify storage datalib:output string.result set from storage stringlib:output to_lowercase +data remove storage stringlib:output to_lowercase +data remove storage datalib:engine _str_bridge +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/to_lowercase","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_lowercase_full.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_lowercase_full.mcfunction new file mode 100644 index 0000000..9d9f41c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_lowercase_full.mcfunction @@ -0,0 +1,11 @@ +# datalib:core/lib/string/to_lowercase_full +# Full variant — covers full Unicode uppercase mapping (slower) +# Input: datalib:input string — string to convert +# Output: datalib:output string.result — lowercase string +# Dep: StringLib (CMDred) +data modify storage datalib:engine _str_bridge.String set from storage datalib:input string +function datalib:core/internal/core/lib/string/to_lower_full_dispatch with storage datalib:engine _str_bridge +data modify storage datalib:output string.result set from storage stringlib:output to_lowercase +data remove storage stringlib:output to_lowercase +data remove storage datalib:engine _str_bridge +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/to_lowercase_full","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_number.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_number.mcfunction new file mode 100644 index 0000000..3a0c3cc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_number.mcfunction @@ -0,0 +1,10 @@ +# datalib:core/lib/string/to_number +# Input: datalib:input string — numeric string (e.g. "42" or "3.14") +# Output: datalib:output string.result — numeric NBT value +# Dep: StringLib (CMDred) +data modify storage datalib:engine _str_bridge.Input set from storage datalib:input string +function datalib:core/internal/core/lib/string/to_number_dispatch with storage datalib:engine _str_bridge +data modify storage datalib:output string.result set from storage stringlib:output to_number +data remove storage stringlib:output to_number +data remove storage datalib:engine _str_bridge +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/to_number","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_string.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_string.mcfunction new file mode 100644 index 0000000..5fba80e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_string.mcfunction @@ -0,0 +1,11 @@ +# datalib:core/lib/string/to_string +# Input: datalib:input value — numeric or any SNBT value to stringify +# Output: datalib:output string.result — string representation +# Note: Prefer 'data modify ... set string storage ...' when possible (cheaper) +# Dep: StringLib (CMDred) +data modify storage datalib:engine _str_bridge.Input set from storage datalib:input value +function datalib:core/internal/core/lib/string/to_string_dispatch with storage datalib:engine _str_bridge +data modify storage datalib:output string.result set from storage stringlib:output to_string +data remove storage stringlib:output to_string +data remove storage datalib:engine _str_bridge +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/to_string","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_uppercase.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_uppercase.mcfunction new file mode 100644 index 0000000..da058b2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_uppercase.mcfunction @@ -0,0 +1,11 @@ +# datalib:core/lib/string/to_uppercase +# Fast variant — covers a-z only (faster) +# Input: datalib:input string — string to convert +# Output: datalib:output string.result — uppercase string +# Dep: StringLib (CMDred) +data modify storage datalib:engine _str_bridge.String set from storage datalib:input string +function datalib:core/internal/core/lib/string/to_upper_fast_dispatch with storage datalib:engine _str_bridge +data modify storage datalib:output string.result set from storage stringlib:output to_uppercase +data remove storage stringlib:output to_uppercase +data remove storage datalib:engine _str_bridge +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/to_uppercase","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_uppercase_full.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_uppercase_full.mcfunction new file mode 100644 index 0000000..318978e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/string/to_uppercase_full.mcfunction @@ -0,0 +1,11 @@ +# datalib:core/lib/string/to_uppercase_full +# Full variant — covers full Unicode lowercase mapping (slower) +# Input: datalib:input string — string to convert +# Output: datalib:output string.result — uppercase string +# Dep: StringLib (CMDred) +data modify storage datalib:engine _str_bridge.String set from storage datalib:input string +function datalib:core/internal/core/lib/string/to_upper_full_dispatch with storage datalib:engine _str_bridge +data modify storage datalib:output string.result set from storage stringlib:output to_uppercase +data remove storage stringlib:output to_uppercase +data remove storage datalib:engine _str_bridge +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/string/to_uppercase_full","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/sync_tick.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/sync_tick.mcfunction new file mode 100644 index 0000000..4d182e4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/sync_tick.mcfunction @@ -0,0 +1,3 @@ +execute store result storage datalib:engine global.tick int 1 run scoreboard players get $tick dl.tmp +execute store result storage datalib:engine global.epoch int 1 run scoreboard players get $epoch datalib.time +scoreboard players set $tick dl.tmp 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/throttle.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/throttle.mcfunction new file mode 100644 index 0000000..10c1594 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/throttle.mcfunction @@ -0,0 +1,15 @@ +scoreboard players set $thr_go dl.tmp 1 + +$execute if data storage datalib:engine throttle.$(key) run execute store result score $thr_exp dl.tmp run data get storage datalib:engine throttle.$(key) +execute store result score $thr_now dl.tmp run scoreboard players get $epoch datalib.time +$execute if data storage datalib:engine throttle.$(key) run execute if score $thr_now dl.tmp < $thr_exp dl.tmp run scoreboard players set $thr_go dl.tmp 0 + +$execute if score $thr_go dl.tmp matches 0 run execute as @a[tag=datalib.debug] run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/throttle ","color":"aqua"},{"text":"SKIP ","color":"#FF5555"},{"text":"$(key)","color":"aqua"},{"text":" — throttled, skipped","color":"#555555"}] +execute if score $thr_go dl.tmp matches 0 run return 0 + +$scoreboard players set $thr_int dl.tmp $(interval) +scoreboard players operation $thr_now dl.tmp += $thr_int dl.tmp +$execute store result storage datalib:engine throttle.$(key) int 1 run scoreboard players get $thr_now dl.tmp + +function datalib:core/lib/queue_add with storage datalib:input {} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/throttle ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/ticks_to_time.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/ticks_to_time.mcfunction new file mode 100644 index 0000000..805e6c4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/ticks_to_time.mcfunction @@ -0,0 +1,26 @@ +$scoreboard players set $ttt_t dl.tmp $(ticks) + +execute if score $ttt_t dl.tmp matches ..-1 run scoreboard players set $ttt_t dl.tmp 0 + +scoreboard players operation $ttt_r dl.tmp = $ttt_t dl.tmp +scoreboard players set $ttt_20 dl.tmp 20 +scoreboard players operation $ttt_r dl.tmp %= $ttt_20 dl.tmp +execute store result storage datalib:output ticks int 1 run scoreboard players get $ttt_r dl.tmp + +scoreboard players operation $ttt_t dl.tmp /= $ttt_20 dl.tmp + +scoreboard players operation $ttt_r dl.tmp = $ttt_t dl.tmp +scoreboard players set $ttt_60 dl.tmp 60 +scoreboard players operation $ttt_r dl.tmp %= $ttt_60 dl.tmp +execute store result storage datalib:output seconds int 1 run scoreboard players get $ttt_r dl.tmp + +scoreboard players operation $ttt_t dl.tmp /= $ttt_60 dl.tmp + +scoreboard players operation $ttt_r dl.tmp = $ttt_t dl.tmp +scoreboard players operation $ttt_r dl.tmp %= $ttt_60 dl.tmp +execute store result storage datalib:output minutes int 1 run scoreboard players get $ttt_r dl.tmp + +scoreboard players operation $ttt_t dl.tmp /= $ttt_60 dl.tmp +execute store result storage datalib:output hours int 1 run scoreboard players get $ttt_t dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/ticks_to_time ","color":"aqua"},{"text":"($(ticks)t)","color":"gray"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"hours","color":"green"},{"text":"h ","color":"gray"},{"storage":"datalib:output","nbt":"minutes","color":"green"},{"text":"m ","color":"gray"},{"storage":"datalib:output","nbt":"seconds","color":"green"},{"text":"s ","color":"gray"},{"storage":"datalib:output","nbt":"ticks","color":"green"},{"text":"t","color":"gray"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait.mcfunction new file mode 100644 index 0000000..820bab1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait.mcfunction @@ -0,0 +1 @@ +function datalib:core/lib/queue_add with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait_as.mcfunction new file mode 100644 index 0000000..782867a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait_as.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine queue append value {func:"$(func)", delay:$(delay), player:"$(player)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/wait_as ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"},{"text":" ($(delay)t) as $(player)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait_cmd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait_cmd.mcfunction new file mode 100644 index 0000000..e096e9a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait_cmd.mcfunction @@ -0,0 +1 @@ +function datalib:core/lib/queue_add_cmd with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait_cmd_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait_cmd_as.mcfunction new file mode 100644 index 0000000..a6c6883 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/lib/wait_cmd_as.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine queue append value {cmd:"$(cmd)", delay:$(delay), player:"$(player)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"lib/wait_cmd_as ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(cmd)","color":"aqua"},{"text":" ($(delay)t) as $(player)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/load/warn.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/load/warn.mcfunction new file mode 100644 index 0000000..73cc95e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/load/warn.mcfunction @@ -0,0 +1 @@ +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"⚠ ","color":"yellow"},{"text":"Engine not loaded yet. Run ","color":"#555555"},{"text":"/reload","color":"aqua","underlined":true,"click_event":{"action":"run_command","command":"/trigger dl.reload set 1"}},{"text":" first.","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/clear.mcfunction new file mode 100644 index 0000000..3a06c11 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/clear.mcfunction @@ -0,0 +1,9 @@ +# datalib:core/queue/clear +# Discards all pending work_queue items immediately. +# No macro input required. +# +# Usage: +# function datalib:core/queue/clear + +data modify storage datalib:engine work_queue set value [] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"queue/clear ","color":"aqua"},{"text":"→ work_queue emptied","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/flush.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/flush.mcfunction new file mode 100644 index 0000000..885e589 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/flush.mcfunction @@ -0,0 +1,11 @@ +# datalib:core/queue/flush +# Processes ALL remaining work_queue items in a single tick. +# WARNING: large queues will cause a lag spike. Use only when you know +# the queue is small (< ~50 items) or in a controlled context. +# No macro input required. +# +# Usage: +# function datalib:core/queue/flush + +execute if data storage datalib:engine work_queue[0] run function datalib:core/internal/core/queue/flush_loop +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"queue/flush ","color":"aqua"},{"text":"→ done","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/push.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/push.mcfunction new file mode 100644 index 0000000..bf29262 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/push.mcfunction @@ -0,0 +1,17 @@ +# datalib:core/queue/push +# Appends a function call to the rate-limited work queue. +# The engine will execute it at up to work_queue_rate calls/tick. +# +# DIFFERENT from lib/queue_add: +# lib/queue_add → delay-based scheduler (run after N ticks) +# queue/push → throughput limiter (process heavy lists without lag spikes) +# +# Input (datalib:input queue): +# fn — fully-qualified function path e.g. "mypack:do_thing" +# +# Usage: +# data modify storage datalib:input queue.fn set value "mypack:do_thing" +# function datalib:core/queue/push with storage datalib:input queue + +$data modify storage datalib:engine work_queue append value {fn:"$(fn)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"queue/push ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(fn)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/push_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/push_as.mcfunction new file mode 100644 index 0000000..d86de5c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/push_as.mcfunction @@ -0,0 +1,14 @@ +# datalib:core/queue/push_as +# Appends a function to the work queue, tagged to execute AS a specific player. +# The player must be online when the item is processed; if offline, it is skipped. +# +# Input (datalib:input queue): +# fn — function path e.g. "mypack:process_player" +# player — player name or UUID e.g. "" +# +# Usage: +# data modify storage datalib:input queue set value {fn:"mypack:process_player",player:""} +# function datalib:core/queue/push_as with storage datalib:input queue + +$data modify storage datalib:engine work_queue append value {fn:"$(fn)",player:"$(player)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"queue/push_as ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(fn)","color":"white"},{"text":" as ","color":"#555555"},{"text":"$(player)","color":"#FFAA00"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/set_rate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/set_rate.mcfunction new file mode 100644 index 0000000..f1e6905 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/set_rate.mcfunction @@ -0,0 +1,14 @@ +# datalib:core/queue/set_rate +# Sets how many work_queue items are processed per tick. +# Default: 1. Raise for faster throughput; lower to reduce tick cost. +# A value of 0 pauses processing. +# +# Input (datalib:input queue): +# rate — integer ≥ 0 +# +# Usage: +# data modify storage datalib:input queue.rate set value 4 +# function datalib:core/queue/set_rate with storage datalib:input queue + +$data modify storage datalib:engine work_queue_rate set value $(rate) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"queue/set_rate ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(rate)","color":"yellow"},{"text":" items/tick","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/size.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/size.mcfunction new file mode 100644 index 0000000..924fb82 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/queue/size.mcfunction @@ -0,0 +1,13 @@ +# datalib:core/queue/size +# Writes the current work_queue item count to datalib:output queue.size. +# No macro input required. +# +# Output (datalib:output queue): +# size — int number of pending items +# +# Usage: +# function datalib:core/queue/size +# data get storage datalib:output queue.size + +execute store result storage datalib:output queue.size int 1 run data get storage datalib:engine work_queue +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"queue/size ","color":"aqua"},{"text":"→ ","color":"#555555"},{"storage":"datalib:output","nbt":"queue.size","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/cmd_gate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/cmd_gate.mcfunction new file mode 100644 index 0000000..467ce9e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/cmd_gate.mcfunction @@ -0,0 +1,37 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/security/cmd_gate +# Central security gate for all execution points. +# +# Integrated with Memory Canaries and strict isolation validation. +# Returns 1 → execution allowed. +# Returns 0 → denied; appropriate fallback already fired. +# ───────────────────────────────────────────────────────────────── + +# Guard 1: Engine must be loaded +execute unless data storage datalib:engine global{loaded:1b} run function datalib:core/fallback/not_loaded +execute unless data storage datalib:engine global{loaded:1b} run return 0 + +# Guard 2: Permission level +execute store result score #sec_req dl.tmp run data get storage datalib:engine security.cmd_min_level +execute if data storage datalib:engine {sandbox:1b} run execute store result score #sec_req dl.tmp run data get storage datalib:engine security.sandbox_cmd_min_level +execute if entity @s[type=player] run execute unless score @s dl.perm_level >= #sec_req dl.tmp run function datalib:core/security/cmd_perm_denied +execute if entity @s[type=player] run execute unless score @s dl.perm_level >= #sec_req dl.tmp run return 0 + +# Guard 3: Strict Security Pipeline & Memory Canary +# Establish canary in memory +data modify storage datalib:engine security.canary set value "0xCAFEBABE" + +# Run Obfuscated Validation (f_2a83h) +execute store success storage datalib:engine security.validation_status int 1 run function datalib:core/security/pipeline/f_2a83h + +# Verify Canary Integrity (Zero-tick memory protection) +execute unless data storage datalib:engine security{canary:"0xCAFEBABE"} run return run function datalib:core/security/pipeline/canary_trigger + +# Enforce confirmation for unrecognized/dangerous states +execute if data storage datalib:engine security{validation_status:0} run return run function datalib:core/security/pipeline/require_confirm + +# Cleanup pipeline state to allow clean execution +data remove storage datalib:engine security.canary +data remove storage datalib:engine security.isolation_buffer + +return 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/cmd_perm_denied.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/cmd_perm_denied.mcfunction new file mode 100644 index 0000000..0cb6174 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/cmd_perm_denied.mcfunction @@ -0,0 +1,15 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:core/security/cmd_perm_denied +# Fired by cmd_gate when @s lacks sufficient dl.perm_level. +# Logs a WARN entry and notifies the player. +# ───────────────────────────────────────────────────────────────── +data modify storage datalib:engine _log_add_tmp.message set value "[Security] cmd_gate — insufficient perm_level" +data modify storage datalib:engine _log_add_tmp.level set value "WARN" +data modify storage datalib:engine _log_add_tmp.color set value "yellow" +execute if score #dl.log_level dl.log_level matches 2.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp +data remove storage datalib:engine _log_add_tmp.message +data remove storage datalib:engine _log_add_tmp.level +data remove storage datalib:engine _log_add_tmp.color + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"Insufficient permission level to execute this command.","color":"red"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"SECURITY ","color":"red","bold":true},{"selector":"@s","color":"gold"},{"text":" — cmd blocked (perm_level too low)","color":"red"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/input_ns_violation.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/input_ns_violation.mcfunction new file mode 100644 index 0000000..295940d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/input_ns_violation.mcfunction @@ -0,0 +1,23 @@ +# datalib:core/security/input_ns_violation +# Fired when func does not start with datalib:api/ (namespace violation). +# +# BUG FIX: Previously wrote log fields directly to datalib:input, then +# called the log system, then deleted them. This was a TOCTOU hazard: +# if another call arrived in the same tick after the write but before +# the delete, the caller's own datalib:input data would be corrupted. +# +# Fix: use datalib:debug as isolated scratch storage for log writes. +# datalib:input is never touched here. + +# Write log fields to isolated debug scratch storage (not datalib:input) - SEV: WARN +data modify storage datalib:debug log.message set value "[Security] input_ns_violation — func outside datalib:api/* namespace" +data modify storage datalib:debug log.level set value "WARN" +data modify storage datalib:debug log.color set value "yellow" +execute if score #dl.log_level dl.log_level matches 1.. run function datalib:systems/log/add with storage datalib:debug log +data remove storage datalib:debug log + +# Notify caller — only if @s is a player (non-player callers have no chat) +execute if entity @s[type=minecraft:player] run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"⚠ ","color":"#FFCC00"},{"text":"Security Warning: function call outside permitted namespace (datalib:api/*).","color":"#FFCC00"}] + +# Notify debug admins (always — admin tag may be on non-player entities too) +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"NS WARNING ","color":"#FFCC00","bold":true},{"selector":"@s","color":"gold"},{"text":" — func not in datalib:api/*","color":"#FFCC00"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/multi_type_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/multi_type_check.mcfunction new file mode 100644 index 0000000..8af88ce --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/multi_type_check.mcfunction @@ -0,0 +1,18 @@ +# datalib:core/security/multi_type_check +# Validates datalib:engine multiCommands.type against security.multi_type_allowlist. +# Called before executing multi_cmd or multi_cmd_adv operations. +# +# Returns 1 → type is valid. +# Returns 0 → type violation fired (log + kick). +# +# BUGFIX: the final command of this function must reflect the allowlist +# result. Previously the last command was "data remove ... _mcmd_type_tmp", +# which always succeeds regardless of the check outcome — callers using +# "execute if/unless function datalib:core/security/multi_type_check" +# always read success=1, so the type-check was silently bypassed even +# when type_violation had already fired. The check, the _mcmd_type_tmp +# cleanup, and the real return value are now all handled inside +# multi_type_check_macro.mcfunction, whose final command this tail-call +# forwards as this function's own result. +data modify storage datalib:engine _mcmd_type_tmp set from storage datalib:engine multiCommands.type +return run function datalib:core/security/multi_type_check_macro with storage datalib:engine {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/multi_type_check_macro.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/multi_type_check_macro.mcfunction new file mode 100644 index 0000000..3c210ee --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/multi_type_check_macro.mcfunction @@ -0,0 +1,23 @@ +# datalib:core/security/multi_type_check_macro [MACRO] +# Called with storage datalib:engine {} — reads $(_mcmd_type_tmp) from engine. +# Checks if the type exists as a key in security.multi_type_allowlist. +# +# The caller (multi_type_check.mcfunction) tail-calls this via +# "return run function ...", so THIS function's final command result +# becomes the result the caller returns to its own callers. +# +# BUGFIX: previously this function's last command was always +# "function datalib:core/security/type_violation" or "datalib:core/empty", +# neither of which reflects the allowlist check itself — so callers using +# "execute if/unless function multi_type_check" always saw success, +# silently bypassing the check even when type_violation had fired. +# Now the allowlist check result is re-evaluated as the final command +# via explicit return 1 / return 0. +# +# Note: $(_mcmd_type_tmp) is substituted once when the macro call is +# parsed (from the "with storage" argument), so removing the storage +# value below does not affect the macro lines that reference it above. +$execute unless data storage datalib:engine security.multi_type_allowlist{$(_mcmd_type_tmp):1b} run function datalib:core/security/type_violation +$execute store result score #mtc_valid dl.tmp if data storage datalib:engine security.multi_type_allowlist{$(_mcmd_type_tmp):1b} +data remove storage datalib:engine _mcmd_type_tmp +return run execute if score #mtc_valid dl.tmp matches 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/canary_trigger.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/canary_trigger.mcfunction new file mode 100644 index 0000000..56a3bd9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/canary_trigger.mcfunction @@ -0,0 +1,2 @@ +tellraw @a[tag=datalib.admin] ["",{"text":"[DL-SEC] ","color":"red","bold":true},{"text":"MEMORY CANARY CORRUPTED! Possible injection detected. Halting execution.","color":"yellow"}] +data remove storage datalib:engine security.isolation_buffer diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/execute.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/execute.mcfunction new file mode 100644 index 0000000..1a9c922 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/execute.mcfunction @@ -0,0 +1,9 @@ +# Run (Safely isolated) +$$(cmd) + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL-SEC] ","color":"green","bold":true},{"text":"Pipeline executed successfully.","color":"gray"}] + +# Cleanup +data remove storage datalib:engine security.isolation_buffer +data remove storage datalib:engine security.canary +data remove storage datalib:input raw_command diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/f_2a83h.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/f_2a83h.mcfunction new file mode 100644 index 0000000..235d7a4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/f_2a83h.mcfunction @@ -0,0 +1,19 @@ +# ───────────────────────────────────────────────────────────────── +# Obfuscated Validation Layer (f_2a83h) +# Validates state and current isolation buffer (if any). +# Returns 0 -> Invalid / Dangerous (Requires confirmation) +# Returns 1 -> Safe +# ───────────────────────────────────────────────────────────────── + +# 1. Reject if validation override flags exist in unrecognized form +execute if data storage datalib:engine security.isolation_buffer{is_dangerous:1b} run return 0 +execute if data storage datalib:engine security.isolation_buffer{unrecognized:1b} run return 0 + +# 2. Strict type checks (ensure security is a compound) +# If someone replaced the security store with a string, it fails. +execute unless data storage datalib:engine security{} run return 0 + +# 3. Canary must remain 0xCAFEBABE +execute unless data storage datalib:engine security{canary:"0xCAFEBABE"} run return 0 + +return 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/input.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/input.mcfunction new file mode 100644 index 0000000..0c357b2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/input.mcfunction @@ -0,0 +1,17 @@ +# 1. Storage -> Isolation +$data modify storage datalib:engine security.isolation_buffer set value "$(cmd)" + +# 2. Memory Canary Setup +data modify storage datalib:engine security.canary set value "0xCAFEBABE" + +# 3. Validation +execute store success storage datalib:engine security.validation_status int 1 run function datalib:core/security/pipeline/f_2a83h + +# Check Canary +execute unless data storage datalib:engine security{canary:"0xCAFEBABE"} run return run function datalib:core/security/pipeline/canary_trigger + +# 4. Confirmation if unrecognized/dangerous +execute if data storage datalib:engine security{validation_status:0} run return run function datalib:core/security/pipeline/require_confirm + +# 5. Run & Cleanup (Isolated execution via macro) +$function datalib:core/security/pipeline/execute {"cmd":"$(cmd)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/require_confirm.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/require_confirm.mcfunction new file mode 100644 index 0000000..9f2db76 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/pipeline/require_confirm.mcfunction @@ -0,0 +1,2 @@ +tellraw @a[tag=datalib.admin] ["",{"text":"[DL-SEC] ","color":"gold","bold":true},{"text":"Unrecognized or dangerous input detected in pipeline. Require confirmation.","color":"gray"}] +# Awaits confirmation due to unrecognized input (illegality). diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/type_violation.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/type_violation.mcfunction new file mode 100644 index 0000000..013e297 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/type_violation.mcfunction @@ -0,0 +1,21 @@ +# datalib:core/security/type_violation +# Fired when a sandbox-blocked command type is called. +# Logs ERROR, notifies caller, notifies debug admins, kicks player. +# Context: @s = offending player. datalib:input._violation_type = command name. + +# Log entry +data modify storage datalib:engine _log_add_tmp.message set value "[Security] type_violation — sandbox command not in allowlist" +data modify storage datalib:engine _log_add_tmp.level set value "ERROR" +data modify storage datalib:engine _log_add_tmp.color set value "red" +execute if score #dl.log_level dl.log_level matches 2.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp +data remove storage datalib:engine _log_add_tmp.message +data remove storage datalib:engine _log_add_tmp.level +data remove storage datalib:engine _log_add_tmp.color + +# Notify player +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"Security violation: command not permitted in sandbox mode.","color":"red"}] + +# Notify debug admins with command name context +function datalib:core/security/type_violation/notify_admins with storage datalib:input {} + +# Kick offending player diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/security/type_violation/notify_admins.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/type_violation/notify_admins.mcfunction new file mode 100644 index 0000000..6f5ed69 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/security/type_violation/notify_admins.mcfunction @@ -0,0 +1,3 @@ +# datalib:core/security/type_violation/notify_admins [MACRO] +# Called with storage datalib:input {} — reads $(_violation_type). +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"TYPE VIOLATION ","color":"red","bold":true},{"selector":"@s","color":"gold"},{"text":" — blocked: ","color":"red"},{"text":"$(_violation_type)","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/clear.mcfunction new file mode 100644 index 0000000..6f11f30 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/clear.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine states.$(player) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"state/clear ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/clear_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/clear_all.mcfunction new file mode 100644 index 0000000..0e60fd6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/clear_all.mcfunction @@ -0,0 +1 @@ +data remove storage datalib:engine states diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/get.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/get.mcfunction new file mode 100644 index 0000000..2ca407f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/get.mcfunction @@ -0,0 +1,3 @@ +data remove storage datalib:output result +$execute if data storage datalib:engine states.$(player) run data modify storage datalib:output result set from storage datalib:engine states.$(player) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"state/get ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/get_score.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/get_score.mcfunction new file mode 100644 index 0000000..878b28a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/get_score.mcfunction @@ -0,0 +1,4 @@ +# datalib:core/state/get_score +# Prints the calling player's current state score. +# Usage: /function datalib:core/state/get_score +tellraw @s ["",{"text":"[State] ","color":"aqua"},{"text":"current: ","color":"gray"},{"score":{"name":"@s","objective":"datalib.state"},"color":"white","bold":true}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/is.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/is.mcfunction new file mode 100644 index 0000000..f41358c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/is.mcfunction @@ -0,0 +1,3 @@ +data modify storage datalib:output result set value 0b +$execute if data storage datalib:engine states{$(player):"$(state)"} run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"state/is ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(state)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/list.mcfunction new file mode 100644 index 0000000..d4048ed --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/list.mcfunction @@ -0,0 +1,4 @@ +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Player States ","color":"aqua"},{"text":"━━━━━━━━━━","color":"#555555"}] +execute if data storage datalib:engine states run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"states","interpret":false,"color":"white"}] +execute unless data storage datalib:engine states run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"text":"(no active states)","color":"gray","italic":true}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/reset_score.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/reset_score.mcfunction new file mode 100644 index 0000000..7807dd0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/reset_score.mcfunction @@ -0,0 +1,4 @@ +# datalib:core/state/reset_score +# Resets a player's state to 0 (idle). +# Usage: /function datalib:core/state/reset_score +scoreboard players set @s datalib.state 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/set.mcfunction new file mode 100644 index 0000000..5a7e892 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/set.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine states.$(player) set value "$(state)" +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"state/set ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(state)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/set_score.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/set_score.mcfunction new file mode 100644 index 0000000..e84c949 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/set_score.mcfunction @@ -0,0 +1,5 @@ +# datalib:core/state/set_score +# Sets a player's integer state on the datalib.state scoreboard. +# Usage: $function datalib:core/state/set_score {value:1} +# States: 0=idle 1=combat 2=menu (define your own) +$scoreboard players set @s datalib.state $(value) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/state/toggle.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/toggle.mcfunction new file mode 100644 index 0000000..0af7855 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/state/toggle.mcfunction @@ -0,0 +1,10 @@ +scoreboard players set $st_tog dl.tmp 0 +$execute if data storage datalib:engine {states:{$(player):"$(on)"}} run scoreboard players set $st_tog dl.tmp 1 + +$execute if score $st_tog dl.tmp matches 1 run data modify storage datalib:engine states.$(player) set value "$(off)" +$execute if score $st_tog dl.tmp matches 0 run data modify storage datalib:engine states.$(player) set value "$(on)" + +data remove storage datalib:output result +$data modify storage datalib:output result set from storage datalib:engine states.$(player) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"state/toggle ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" (","color":"#555555"},{"text":"$(on)","color":"gray"},{"text":"↔","color":"#555555"},{"text":"$(off)","color":"gray"},{"text":") → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick.mcfunction new file mode 100644 index 0000000..8aa490b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick.mcfunction @@ -0,0 +1,21 @@ +# DL Tick Engine v2 — Entry Point +# Driven by #minecraft:tick function tag (guaranteed 1/game-tick, no drift). +# +# All rate/offset/condition/pause logic is inside the channel dispatcher. +# Do NOT add any per-system logic here — register a channel instead. + +# Guard: no players online → nothing to process +execute unless entity @a run return 0 + +# Guard: engine not initialised +execute unless data storage datalib:engine global{loaded:1b} run return 0 + +# Online player count — kept for compatibility +execute store result score #online datalib.onlinePlayers if entity @a + +# Guard: globally paused (datalib:core/tick/pause / datalib:core/tick/resume) +execute if data storage datalib:engine tick{paused:1b} run return 0 + +execute as @a run function datalib:core/tick/dispatch + +execute as @a[scores={datalib_settingsBook=1..}] at @s run function datalib:core/handle_trigger \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/admin_systems.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/admin_systems.mcfunction new file mode 100644 index 0000000..6c9b033 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/admin_systems.mcfunction @@ -0,0 +1,5 @@ +tag @a[tag=datalib.admin] add datalib.debug +scoreboard players enable @a[tag=datalib.admin] dl_menu +scoreboard players enable @a[tag=datalib.admin] dl_action +scoreboard players enable @a[tag=datalib.admin] dl_run +function datalib:core/internal/systems/geo/region_watch/tick_scan diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/disable.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/disable.mcfunction new file mode 100644 index 0000000..b44a471 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/disable.mcfunction @@ -0,0 +1,3 @@ +# datalib:core/tick/channel/disable — Disable a tick channel by ID +# Usage: function datalib:core/tick/channel/disable {id:"channel_id"} +$data modify storage datalib:engine tick.channels[{id:"$(id)"}] merge value {enabled:0b} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/enable.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/enable.mcfunction new file mode 100644 index 0000000..3d5ab91 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/enable.mcfunction @@ -0,0 +1,3 @@ +# datalib:core/tick/channel/enable — Enable a tick channel by ID +# Usage: function datalib:core/tick/channel/enable {id:"channel_id"} +$data modify storage datalib:engine tick.channels[{id:"$(id)"}] merge value {enabled:1b} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/list.mcfunction new file mode 100644 index 0000000..80df808 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/list.mcfunction @@ -0,0 +1,2 @@ +# datalib:core/tick/channel/list — Print all registered tick channels +tellraw @s {"storage":"datalib:engine","nbt":"tick.channels","color":"yellow"} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/register.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/register.mcfunction new file mode 100644 index 0000000..73259bc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/register.mcfunction @@ -0,0 +1,17 @@ +# datalib:core/tick/channel/register — Register or replace a tick channel +# Usage: +# function datalib:core/tick/channel/register {id:"my_sys",rate:20,offset:0,fn:"my_ns:tick/my_system",enabled:1,condition:""} +# +# Fields: +# id (string) — unique channel identifier +# enabled (0|1) — 1 = active, 0 = paused; stored as byte internally +# rate (int) — fire every N ticks (1 = every tick, 20 = 1/s, 1200 = 1/min) +# offset (int) — phase shift 0..(rate-1); spread channels to avoid lag spikes +# fn (string) — function resource location to execute +# condition (string) — predicate path, or "" to always fire regardless of world state + +# Remove any existing channel with same ID (idempotent) +$data remove storage datalib:engine tick.channels[{id:"$(id)"}] + +# Append new channel definition +$data modify storage datalib:engine tick.channels append value {id:"$(id)",enabled:$(enabled)b,rate:$(rate),offset:$(offset),fn:"$(fn)",condition:"$(condition)"} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/set_condition.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/set_condition.mcfunction new file mode 100644 index 0000000..e918255 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/set_condition.mcfunction @@ -0,0 +1,4 @@ +# datalib:core/tick/channel/set_condition — Set or clear condition predicate +# Usage: function datalib:core/tick/channel/set_condition {id:"channel_id",condition:"ns:pred"} +# function datalib:core/tick/channel/set_condition {id:"channel_id",condition:""} ← always-run +$data modify storage datalib:engine tick.channels[{id:"$(id)"}] merge value {condition:"$(condition)"} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/set_offset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/set_offset.mcfunction new file mode 100644 index 0000000..5f3d6a2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/set_offset.mcfunction @@ -0,0 +1,3 @@ +# datalib:core/tick/channel/set_offset — Change phase offset (0 to rate-1) +# Usage: function datalib:core/tick/channel/set_offset {id:"channel_id",offset:5} +$data modify storage datalib:engine tick.channels[{id:"$(id)"}] merge value {offset:$(offset)} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/set_rate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/set_rate.mcfunction new file mode 100644 index 0000000..934dc66 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/set_rate.mcfunction @@ -0,0 +1,3 @@ +# datalib:core/tick/channel/set_rate — Change execution rate (every N ticks, min 1) +# Usage: function datalib:core/tick/channel/set_rate {id:"channel_id",rate:20} +$data modify storage datalib:engine tick.channels[{id:"$(id)"}] merge value {rate:$(rate)} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/unregister.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/unregister.mcfunction new file mode 100644 index 0000000..9f06cc2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/channel/unregister.mcfunction @@ -0,0 +1,3 @@ +# datalib:core/tick/channel/unregister — Remove a tick channel by ID +# Usage: function datalib:core/tick/channel/unregister {id:"channel_id"} +$data remove storage datalib:engine tick.channels[{id:"$(id)"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/config.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/config.mcfunction new file mode 100644 index 0000000..9360ef8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/config.mcfunction @@ -0,0 +1,49 @@ +# DL Tick Channel Defaults +# ───────────────────────────────────────────────────────────────────────────── +# This file is the "JSON config" for the tick engine. +# It is executed ONCE on first world load (and on datalib:core/tick/reset_channels). +# Modify here to change the default channel layout that all new worlds receive. +# +# Channel fields +# ────────────── +# id (string) unique name — used by all API functions +# enabled (1b|0b) 1b = runs each applicable tick, 0b = dormant +# rate (int) fire every N ticks [1=every tick, 20=1/s, 200=10/s] +# offset (int) phase offset 0..(rate-1) +# use different offsets per channel to spread CPU load +# fn (string) function resource location to call +# condition (string) predicate path; "" means "always fire" +# e.g. "datalib:is_daytime" — only runs during daylight +# +# API (available after load) +# ────────────────────────── +# function datalib:core/tick/channel/enable {id:"..."} +# function datalib:core/tick/channel/disable {id:"..."} +# function datalib:core/tick/channel/set_rate {id:"...",rate:N} +# function datalib:core/tick/channel/set_offset {id:"...",offset:N} +# function datalib:core/tick/channel/set_condition {id:"...",condition:"ns:pred"} +# function datalib:core/tick/channel/register {id:"...",rate:N,offset:N,fn:"ns:path",enabled:1,condition:""} +# function datalib:core/tick/channel/unregister {id:"..."} +# function datalib:core/tick/channel/list +# function datalib:core/tick/pause +# function datalib:core/tick/resume +# function datalib:core/tick/status +# function datalib:core/tick/reset_channels +# ───────────────────────────────────────────────────────────────────────────── + +data modify storage datalib:engine tick.channels set value [] + +# time_systems — epoch counter; must stay at rate:1 offset:0 +data modify storage datalib:engine tick.channels append value {id:"time_systems",enabled:1b,rate:1,offset:0,fn:"datalib:core/tick/time_systems",condition:""} + +# player_systems — per-player state polling; every tick +data modify storage datalib:engine tick.channels append value {id:"player_systems",enabled:1b,rate:1,offset:0,fn:"datalib:core/tick/player_systems",condition:""} + +# queue_systems — scheduled task queue; every tick +data modify storage datalib:engine tick.channels append value {id:"queue_systems",enabled:1b,rate:1,offset:0,fn:"datalib:core/tick/queue_systems",condition:""} + +# hud_systems — HUD refresh; every 2 ticks, offset 1 (fires on odd ticks, avoiding collision with rate-1 channels) +data modify storage datalib:engine tick.channels append value {id:"hud_systems",enabled:1b,rate:2,offset:1,fn:"datalib:core/tick/hud_systems",condition:""} + +# admin_systems — admin tooling; every 4 ticks, offset 2 +data modify storage datalib:engine tick.channels append value {id:"admin_systems",enabled:1b,rate:4,offset:2,fn:"datalib:core/tick/admin_systems",condition:"datalib:is_creative"} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/disabled.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/disabled.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch.mcfunction new file mode 100644 index 0000000..7026329 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch.mcfunction @@ -0,0 +1,6 @@ +# DL Tick — Channel Dispatcher +# Increments the internal tick counter then iterates all channels. + +scoreboard players add #tick_ctr datalib.tick 1 +data modify storage datalib:tick_work i set value 0 +function datalib:core/tick/dispatch/step with storage datalib:tick_work \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/channel.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/channel.mcfunction new file mode 100644 index 0000000..2261bc0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/channel.mcfunction @@ -0,0 +1,7 @@ +# DL Tick — Channel Loader [MACRO] +# Copies channels[i] into work storage, skips if disabled. +# Input: $(i) — channel index + +$data modify storage datalib:tick_work channel set from storage datalib:engine tick.channels[$(i)] +execute unless data storage datalib:tick_work channel{enabled:1b} run return 0 +function datalib:core/tick/dispatch/rate_check with storage datalib:tick_work channel \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/exec.mcfunction new file mode 100644 index 0000000..1c7615b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/exec.mcfunction @@ -0,0 +1,8 @@ +# DL Tick — Channel Execute [MACRO] +# Calls fn directly if condition is empty, otherwise checks predicate first. +# Input: $(fn) +# +# condition:"" → always run (no predicate check) + +$data modify storage datalib:engine _dispatch.func set value "$(fn)" +execute if data storage datalib:tick_work channel{condition:""} run function #datalib:internal/dispatch \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/exec2.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/exec2.mcfunction new file mode 100644 index 0000000..8e242e5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/exec2.mcfunction @@ -0,0 +1,11 @@ +# DL Tick — Channel Execute [MACRO] +# Calls fn directly if condition is empty, otherwise checks predicate first. +# Input: $(fn), $(condition) +# +# condition:"" → always run (no predicate check) +# condition:"datalib:is_daytime" → only run when predicate passes + +execute if data storage datalib:tick_work channel{condition:""} run return 0 + +$data modify storage datalib:engine _dispatch.func set value "$(fn)" +$execute as @a[limit=1] at @s if predicate $(condition) run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/rate_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/rate_check.mcfunction new file mode 100644 index 0000000..b1a8d3e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/rate_check.mcfunction @@ -0,0 +1,24 @@ +# DL Tick — Rate/Offset Check [MACRO] +# Fires when (#tick_ctr - offset) % rate == 0. +# Input: $(rate), $(offset), $(fn), $(condition) +# +# rate:1 = every tick | rate:20 = every second | rate:200 = every 10s +# offset: phase shift, spreads channels so they don't all run on the same tick + +$scoreboard players set #rate datalib.tick $(rate) +$scoreboard players set #offset datalib.tick $(offset) + +# Compute modular position +scoreboard players operation #check datalib.tick = #tick_ctr datalib.tick +scoreboard players operation #check datalib.tick -= #offset datalib.tick +scoreboard players operation #check datalib.tick %= #rate datalib.tick + +# Fix negative remainder (possible when tick_ctr < offset at world start) +execute if score #check datalib.tick matches ..-1 run scoreboard players operation #check datalib.tick += #rate datalib.tick + +# Not this tick → skip +execute unless score #check datalib.tick matches 0 run return 0 + +# Passed → execute channel function +execute if data storage datalib:tick_work channel{condition:""} run function datalib:core/tick/dispatch/exec with storage datalib:tick_work channel +execute unless data storage datalib:tick_work channel{condition:""} run function datalib:core/tick/dispatch/exec2 with storage datalib:tick_work channel \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/step.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/step.mcfunction new file mode 100644 index 0000000..250398a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/dispatch/step.mcfunction @@ -0,0 +1,16 @@ +# DL Tick — Dispatch Step [MACRO] +# Recursive iterator over tick.channels[]. +# Terminates automatically when index exceeds array length. +# Input: $(i) — current channel array index + +# Termination: channel[i] absent → stop +$execute unless data storage datalib:engine tick.channels[$(i)] run return 0 + +# Process this channel +$function datalib:core/tick/dispatch/channel {i:$(i)} + +# Advance: $(i)+1 → write back → recurse +$scoreboard players set #ch_next datalib.tick $(i) +scoreboard players add #ch_next datalib.tick 1 +execute store result storage datalib:tick_work i int 1 run scoreboard players get #ch_next datalib.tick +function datalib:core/tick/dispatch/step with storage datalib:tick_work \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/hud_systems.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/hud_systems.mcfunction new file mode 100644 index 0000000..0747ee7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/hud_systems.mcfunction @@ -0,0 +1,3 @@ +execute if data storage datalib:engine pb_obj run scoreboard players operation $pb_mod dl.tmp = $epoch datalib.time +execute if data storage datalib:engine pb_obj run scoreboard players operation $pb_mod dl.tmp %= $pb_four dl.tmp +execute if data storage datalib:engine pb_obj run execute if score $pb_mod dl.tmp matches 0 run execute as @a run function datalib:systems/string/progress_bar_self with storage datalib:engine {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/init_channels.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/init_channels.mcfunction new file mode 100644 index 0000000..15e1b01 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/init_channels.mcfunction @@ -0,0 +1,4 @@ +# Called during every load — only writes defaults if channels don't exist yet. +# This preserves any runtime customisations made via the channel API. +# To reset to file defaults: function datalib:core/tick/reset_channels +execute unless data storage datalib:engine tick.channels run function datalib:core/tick/config \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/pause.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/pause.mcfunction new file mode 100644 index 0000000..06119c0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/pause.mcfunction @@ -0,0 +1,3 @@ +# datalib:core/tick/pause — Suspend all tick channels until datalib:core/tick/resume +data modify storage datalib:engine tick.paused set value 1b +tellraw @s [{"text":"[DL] ","color":"gold"},{"text":"Tick engine paused.","color":"red"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/player_systems.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/player_systems.mcfunction new file mode 100644 index 0000000..878f742 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/player_systems.mcfunction @@ -0,0 +1,28 @@ +execute as @a[scores={dl_menu=1..}] run function datalib:menu +scoreboard players set @a[scores={dl_menu=1..}] dl_menu 0 +scoreboard players enable @a[scores={dl_menu=-1..}] dl_menu + +execute as @a[scores={dl_run=1..}] run function #datalib:run +scoreboard players set @a[scores={dl_run=1..}] dl_run 0 +scoreboard players enable @a[scores={dl_run=-1..}] dl_run + +execute as @a[scores={dl_action=1..}] run function datalib:core/internal/api/trigger/dispatch + +function datalib:core/internal/api/interaction/tick_scan + +function datalib:core/internal/api/perm/trigger/tick_start + +scoreboard players remove @a[scores={datalib.dialog_load=1..}] datalib.dialog_load 1 + +# Countdown actionbar: show remaining ticks while dialog is loading +#execute as @a[scores={datalib.dialog_load=1..},tag=datalib.dialog_opened,tag=!datalib.dialog_closed] run title @s actionbar ["",{"text":"Loading ","color":"aqua","bold":true},{"score":{"name":"@s","objective":"datalib.dialog_load"},"color":"yellow","bold":true},{"text":" ticks","color":"gray"}] +execute as @a[scores={datalib.dialog_load=1..}] run title @s actionbar ["",{"text":"Loading ","color":"aqua","bold":true},{"score":{"name":"@s","objective":"datalib.dialog_load"},"color":"yellow","bold":true},{"text":" ticks","color":"gray"}] + +execute as @a[scores={datalib.dialog_load=0},tag=datalib.dialog_closed] at @s run function datalib:api/dialog/open +execute as @a[scores={datalib.dialog_load=0},tag=!datalib.dialog_closed,tag=!datalib.dialog_opened] at @s run function datalib:api/dialog/open + +function datalib:core/internal/api/wand/tick_scan +function datalib:core/internal/systems/hook/tick_scan + +function datalib:core/internal/systems/geo/region_watch/tick_scan +function datalib:core/internal/api/cmd/freeze/tick \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/queue_systems.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/queue_systems.mcfunction new file mode 100644 index 0000000..0d7ace1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/queue_systems.mcfunction @@ -0,0 +1,4 @@ +function datalib:core/lib/process_queue + +# CB delay queue — process pending command block executions +execute if data storage datalib:engine modules{cb:1b} run execute if data storage datalib:engine cb_queue[0] run function datalib:core/internal/systems/cb/tick diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/reset_channels.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/reset_channels.mcfunction new file mode 100644 index 0000000..d1dedd6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/reset_channels.mcfunction @@ -0,0 +1,4 @@ +# datalib:core/tick/reset_channels — Overwrite channel storage with config file defaults +# WARNING: this discards ALL runtime API changes (enable/disable/set_rate/etc.) +function datalib:core/tick/config +tellraw @s [{"text":"[DL] ","color":"gold"},{"text":"Tick channels reset to defaults.","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/resume.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/resume.mcfunction new file mode 100644 index 0000000..b313a82 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/resume.mcfunction @@ -0,0 +1,3 @@ +# datalib:core/tick/resume — Resume tick engine +data remove storage datalib:engine tick.paused +tellraw @s [{"text":"[DL] ","color":"gold"},{"text":"Tick engine resumed.","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/status.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/status.mcfunction new file mode 100644 index 0000000..daf9a8f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/status.mcfunction @@ -0,0 +1,6 @@ +# datalib:core/tick/status — Show tick engine diagnostics +tellraw @s [{"text":"","extra":[{"text":"══ DL Tick Engine v2 ══","color":"gold","bold":true}]}] +tellraw @s [{"text":" Counter ","color":"gray"},{"score":{"name":"#tick_ctr","objective":"datalib.tick"},"color":"aqua"}] +tellraw @s [{"text":" Paused ","color":"gray"},{"storage":"datalib:engine","nbt":"tick.paused","color":"red"}] +tellraw @s [{"text":" Channels","color":"gray"}] +tellraw @s {"storage":"datalib:engine","nbt":"tick.channels","color":"yellow"} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/time_systems.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/time_systems.mcfunction new file mode 100644 index 0000000..f62ba6b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/core/tick/time_systems.mcfunction @@ -0,0 +1,4 @@ +scoreboard players add $epoch datalib.time 1 +scoreboard players add $tick dl.tmp 1 + +scoreboard players set $pq_depth dl.tmp 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug.mcfunction new file mode 100644 index 0000000..2edf1e1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug.mcfunction @@ -0,0 +1,15 @@ +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Debug Inspector ","color":"aqua"},{"text":"━━━━━━━━━━━━━━━","color":"#555555"}] + +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"engine.global ","color":"white"},{"storage":"datalib:engine","nbt":"global","interpret":true,"color":"aqua","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"engine.players ","color":"white"},{"storage":"datalib:engine","nbt":"players","interpret":true,"color":"aqua","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"engine.cooldowns ","color":"white"},{"storage":"datalib:engine","nbt":"cooldowns","interpret":true,"color":"yellow","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"engine.queue ","color":"white"},{"storage":"datalib:engine","nbt":"queue","interpret":true,"color":"gold","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"engine.events ","color":"white"},{"storage":"datalib:engine","nbt":"events","interpret":true,"color":"light_purple","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"engine.config ","color":"white"},{"storage":"datalib:engine","nbt":"config","interpret":true,"color":"green","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"engine.flags ","color":"white"},{"storage":"datalib:engine","nbt":"flags","interpret":true,"color":"green","italic":false}] + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"I/O ","color":"aqua"},{"text":"─────────────────────────────────","color":"#555555"}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"input ","color":"white"},{"storage":"datalib:input","nbt":"","interpret":true,"color":"green","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"output ","color":"white"},{"storage":"datalib:output","nbt":"","interpret":true,"color":"aqua","italic":false}] + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_cooldowns.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_cooldowns.mcfunction new file mode 100644 index 0000000..e2dc58c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_cooldowns.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:debug/dump_cooldowns +# Dumps all active cooldown records to screen. +# Usage: /function datalib:debug/dump_cooldowns +# ───────────────────────────────────────────────────────────────── + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Cooldown Dump ","color":"aqua"},{"text":"━━━━━━━━━━━━━━━━━━","color":"#555555"}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"engine.cooldowns","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:engine","nbt":"cooldowns","color":"yellow","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"epoch now: ","color":"gray"},{"score":{"name":"$epoch","objective":"datalib.time"},"color":"aqua"}] +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_events.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_events.mcfunction new file mode 100644 index 0000000..70d3360 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_events.mcfunction @@ -0,0 +1,9 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:debug/dump_events +# Lists all registered event handlers. +# Usage: /function datalib:debug/dump_events +# ───────────────────────────────────────────────────────────────── + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Event Registry ","color":"aqua"},{"text":"━━━━━━━━━━━━━━━━","color":"#555555"}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"engine.events","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:engine","nbt":"events","color":"light_purple","italic":false}] +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_players.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_players.mcfunction new file mode 100644 index 0000000..4eb25ad --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_players.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:debug/dump_players +# Shows all player variables (player vars), PIDs and their states. +# Usage: /function datalib:debug/dump_players +# ───────────────────────────────────────────────────────────────── + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Player State Dump ","color":"aqua"},{"text":"━━━━━━━━━━━━━","color":"#555555"}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"players ","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:engine","nbt":"players","color":"green","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"pids ","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:engine","nbt":"player_pids","color":"aqua","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"perms ","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:engine","nbt":"permissions","color":"yellow","italic":false}] +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_schedules.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_schedules.mcfunction new file mode 100644 index 0000000..e9eca93 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/dump_schedules.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:debug/dump_schedules +# Shows active schedules and the queue. +# Usage: /function datalib:debug/dump_schedules +# ───────────────────────────────────────────────────────────────── + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Schedule / Queue Dump ","color":"aqua"},{"text":"━━━━━━━","color":"#555555"}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"schedules","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:engine","nbt":"schedules","color":"gold","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"queue ","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:engine","nbt":"queue","color":"gold","italic":false}] +tellraw @s ["",{"text":" ","color":"#555555"},{"text":"throttle ","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:engine","nbt":"throttle","color":"gray","italic":false}] +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/example_events.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/example_events.mcfunction new file mode 100644 index 0000000..47712cb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/example_events.mcfunction @@ -0,0 +1,19 @@ +tellraw @a[tag=datalib.debug] {"text":"[DEBUG] Event system test starting...","color":"yellow"} + +data modify storage datalib:input event set value "on_join" +data modify storage datalib:input func set value "datalib:debug/internal/on_join_handler" +function datalib:events/register with storage datalib:input {} + +data modify storage datalib:input event set value "on_kill" +data modify storage datalib:input func set value "datalib:debug/internal/on_kill_handler" +function datalib:events/register with storage datalib:input {} + +data remove storage datalib:engine event_context +data modify storage datalib:engine event_context.player set value "TestPlayer" +data modify storage datalib:engine event_context.reason set value "debug_test" + +data modify storage datalib:input event set value "on_join" +function datalib:events/fire with storage datalib:input {} +data remove storage datalib:input event + +tellraw @a[tag=datalib.debug] {"text":"[DEBUG] example_events completed.","color":"green"} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/admin/add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/admin/add.mcfunction new file mode 100644 index 0000000..13ecfcd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/admin/add.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"Permission denied.","color":"red"}] + +$execute if entity @s[tag=datalib.admin] run tag @a[name=$(target),limit=1] add datalib.admin +$tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✔ ","color":"green"},{"text":"$(target)","color":"white"},{"text":" added as admin.","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/admin/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/admin/list.mcfunction new file mode 100644 index 0000000..e936ff6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/admin/list.mcfunction @@ -0,0 +1,6 @@ +execute unless function datalib:debug/tools/utils/check_all run return 0 + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Admin List ","color":"aqua"},{"text":"━━━━━━━━━━━━━━","color":"#555555"}] +execute if entity @a[tag=datalib.admin] run tellraw @s ["",{"text":" ◈ ","color":"#00AAAA"},{"selector":"@a[tag=datalib.admin]","color":"white"}] +execute unless entity @a[tag=datalib.admin] run tellraw @s ["",{"text":" ","color":"#555555"},{"text":"(no admins)","color":"gray","italic":true}] +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/admin/remove.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/admin/remove.mcfunction new file mode 100644 index 0000000..46206fe --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/admin/remove.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/check_all run return run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"Permission denied.","color":"red"}] + +$execute if entity @s[tag=datalib.admin] run tag @a[name=$(target),limit=1] remove datalib.admin +$tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✔ ","color":"green"},{"text":"$(target)","color":"white"},{"text":" removed from admins.","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/trigger.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/trigger.mcfunction new file mode 100644 index 0000000..ecb9538 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/trigger.mcfunction @@ -0,0 +1 @@ +$function datalib:debug/tools/trigger/execute {type:"$(type)",data:$(data)} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/trigger/execute.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/trigger/execute.mcfunction new file mode 100644 index 0000000..ae9f958 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/trigger/execute.mcfunction @@ -0,0 +1,23 @@ +# datalib:debug/tools/trigger — single-call dispatch layer (EC-style). +# Does not require EventCore; uses AME's own datalib:api/cmd/* functions. +# +# Usage: +# function datalib:debug/tools/trigger {type:"", data:{...}} +# function datalib:debug/tools/trigger {type:"", data:{...}, config:{silent:1}} +# +# config:{silent:1} → suppress debug tellraw. + +data modify storage datalib:engine tools_trigger.data.uuid set from entity @s UUID + +$data modify storage datalib:engine tools_trigger.type set value "$(type)" +$data modify storage datalib:engine tools_trigger.data set value $(data) + +# Execute action +function datalib:core/internal/debug/tools/trigger/dispatch + +# Debug message +$execute if data storage datalib:engine tools_trigger.config{silent:1} run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"tools/trigger/execute ","color":"aqua"},{"text":"► ","color":"yellow"},{"text":"$(type)","color":"white"}] +execute if data storage datalib:engine tools_trigger.config{silent:0} run function datalib:core/tick/disabled + +# Remove 'datalib:engine tools_trigger' storage +data remove storage datalib:engine tools_trigger \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/check_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/check_all.mcfunction new file mode 100644 index 0000000..b6fa17f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/check_all.mcfunction @@ -0,0 +1,4 @@ +execute unless function datalib:debug/tools/utils/load_check run return 0 +execute unless function datalib:debug/tools/utils/perm_check run return 0 +execute unless function datalib:debug/tools/utils/input_check run return 0 +return 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/input_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/input_check.mcfunction new file mode 100644 index 0000000..ef2f345 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/input_check.mcfunction @@ -0,0 +1,730 @@ +# ====================================================================================== +# datalib:debug/tools/utils/input_check +# ====================================================================================== +# +# dataLib Secure Validation Gateway +# Version: 2.0.0 +# +# PURPOSE: +# Centralized security validation layer for all dynamic dataLib calls. +# Every externally supplied runtime request MUST pass through this +# validation layer before execution is permitted. +# +# DESIGN PHILOSOPHY: +# +# Built around "fail closed" — any request that does not explicitly pass +# all validation stages is denied. There is no fallback execution path. +# +# ATTACKER MODEL: +# +# • Datapack authors outside the ecosystem may abuse the dynamic call interface. +# • Malicious inputs may be crafted to escape namespacing. +# • Operator-level commands may be invoked through indirect paths. +# • Storage state may be corrupted to bypass future checks. +# • Nested calls may be used to re-enter the validation pipeline. +# • The execution engine may be targeted directly. +# +# SECURITY GOALS: +# +# • prevent privilege escalation +# • prevent namespace escape +# • prevent selector abuse +# • prevent execute-chain hijacking +# • prevent storage corruption +# • prevent recursion abuse +# • prevent dangerous runtime mutation +# • prevent unauthorized engine access +# • prevent command injection +# • prevent NBT injection +# • prevent gamerule abuse +# • prevent scoreboard system corruption +# • prevent entity spawning abuse +# • prevent tag-based permission bypass +# • maintain deterministic execution +# +# VALIDATION PIPELINE: +# +# 1. recursion guard +# 2. engine state validation +# 3. input snapshot isolation +# 4. required field validation (removed) +# 5. basic function identifier sanity +# 6. namespace allowlist enforcement +# 7. internal namespace protection (removed) +# 8. dangerous server management command blocklist +# 9. raw operator command payload blocklist +# 10. selector escalation protection +# 11. wildcard and mass-target protection +# 12. execute-chain abuse protection +# 13. command chain injection protection +# 14. storage injection protection +# 15. execute store and data mutation abuse protection +# 16. NBT injection protection +# 17. gamerule abuse protection +# 18. scoreboard system corruption protection +# 19. entity and tag manipulation protection +# 20. debug output +# 21. validated execution lock +# 22. validated execution +# 23. execution lock cleanup +# 24. temporary storage cleanup +# 25. success return +# +# RETURN VALUES: +# +# return 1 → validation passed; call was executed +# return 0 → validation failed; call was denied +# +# OUTPUT CHANNELS (when debug mode active): +# +# tellraw @s caller-facing denial messages +# tellraw @a[tag=datalib.debug] admin-facing violation notices +# say server log channel (visible in console) +# storage datalib:debug machine-readable violation record +# +# DEBUG MODE: +# All output channels are gated on datalib:engine dev_settings.devMode +# or the presence of at least one player with tag datalib.debug. +# In production with no debug players, all tellraw/say are skipped. +# +# SECURITY POLICY: +# +# FAIL CLOSED +# Unknown behavior is considered unsafe until explicitly reviewed. +# +# ====================================================================================== +# SECTION 1 +# RECURSION GUARD +# ====================================================================================== +# +# THREAT: +# A function called from within a validated execution context may call +# the gateway again. Re-validating would be harmless but wastes CPU. +# More importantly, in_call:1b is the recursion sentinel — allowing it +# to re-enter would mean the sentinel check itself is bypassed. +# +# BEHAVIOR: +# If in_call:1b is present, the call is already inside a validated +# context. Return 1 immediately without re-running validation. +# +# BYPASS RISK: +# An attacker who sets in_call:1b externally bypasses all validation. +# Sections 14-15 block direct writes to datalib:engine to mitigate this. +# +# ====================================================================================== + +# ====================================================================================== +# ====================================================================================== + +execute if data storage datalib:engine global{in_call:1b} run return 1 + +# ====================================================================================== +# SECTION 2 +# ENGINE STATE VALIDATION +# ====================================================================================== +# +# THREAT: +# Calls during partial initialization may hit unguarded code paths. +# +# BEHAVIOR: +# Deny all calls unless datalib:engine global contains loaded:1b. +# +# ====================================================================================== + +execute unless data storage datalib:engine global{loaded:1b} run return 0 + +# ====================================================================================== +# SECTION 3 +# SNAPSHOT INPUTS +# ====================================================================================== +# +# THREAT: +# Reading inputs directly from datalib:input during validation is a +# TOCTOU vulnerability. A function called mid-validation could mutate +# datalib:input, causing later checks to read different values than +# earlier ones. +# +# BEHAVIOR: +# Copy all runtime data into an isolated snapshot at the start. +# All subsequent checks read exclusively from this snapshot. +# datalib:input is never read again after this section. +# +# ====================================================================================== + +data modify storage datalib:output inputs set from storage datalib:input +data modify storage datalib:output data set from storage datalib:engine +data modify storage datalib:output security set value {validated:0b,blocked:0b} + +# ====================================================================================== +# SECTION 4 +# REQUIRED FIELD VALIDATION +# ====================================================================================== +# +# THREAT: +# Missing mandatory fields cause undefined behavior in the engine. +# +# REQUIRED: +# inputs.func — the function identifier to execute +# +# ====================================================================================== + +# REMOVED +# execute unless data storage datalib:output inputs.func run return 0' + +# ====================================================================================== +# SECTION 5 +# BASIC FUNCTION IDENTIFIER SANITY CHECKS +# ====================================================================================== +# +# THREAT: +# Malformed identifiers may trigger edge cases in the mcfunction +# runtime's path resolution. Block all degenerate values. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{func:""} run return 0 +execute if data storage datalib:output inputs{func:" "} run return 0 +execute if data storage datalib:output inputs{func:":"} run return 0 +execute if data storage datalib:output inputs{func:"/"} run return 0 +execute if data storage datalib:output inputs{func:".."} run return 0 +execute if data storage datalib:output inputs{func:"."} run return 0 +execute if data storage datalib:output inputs{func:"\\"} run return 0 +execute if data storage datalib:output inputs{func:"*"} run return 0 +execute if data storage datalib:output inputs{func:"#"} run return 0 + +# ====================================================================================== +# SECTION 6 +# NAMESPACE ALLOWLIST ENFORCEMENT +# ====================================================================================== +# +# THREAT: +# Without namespace restrictions, callers could execute arbitrary +# functions in any namespace, including vanilla minecraft:, other +# installed packs, or datalib internals. +# +# POLICY: +# Only paths beginning with "datalib:api/" are valid external call targets. +# +# BEHAVIOR: +# If func does not contain "datalib:api/" prefix, log violation and deny. +# +# ====================================================================================== + +execute unless data storage datalib:output inputs{func:"datalib:api/"} run function datalib:core/security/input_ns_violation +execute unless data storage datalib:output inputs{func:"datalib:api/"} run data modify storage datalib:output error set value {level:"WARN",code:"NS_VIOLATION",message:"Input namespace violation detected. Action allowed but logged."} + +# ====================================================================================== +# SECTION 7 +# INTERNAL NAMESPACE PROTECTION +# ====================================================================================== +# +# THREAT: +# Defense-in-depth for cases where the allowlist check has an edge case +# or is bypassed in future refactors. Explicitly block all internal paths. +# +# ====================================================================================== + +# REMOVED +# execute if data storage datalib:output inputs{func:"datalib:core/"} run return 0 +# execute if data storage datalib:output inputs{func:"datalib:engine/"} run return 0 +# execute if data storage datalib:output inputs{func:"datalib:debug/"} run return 0 +# execute if data storage datalib:output inputs{func:"datalib:private/"} run return 0 +# execute if data storage datalib:output inputs{func:"datalib:internal/"} run return 0 +# execute if data storage datalib:output inputs{func:"datalib:security/"} run return 0 +# execute if data storage datalib:output inputs{func:"datalib:system/"} run return 0 +# execute if data storage datalib:output inputs{func:"minecraft:"} run return 0 + +# ====================================================================================== +# SECTION 8 +# HIGH-RISK SERVER MANAGEMENT COMMAND BLOCKLIST (func field) +# ====================================================================================== +# +# THREAT: +# The API exposes command wrappers. If a caller names a server management +# command wrapper, they gain operator-equivalent control without holding op. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{func:"datalib:api/cmd/op"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/deop"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/ban"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/ban_ip"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/pardon"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/pardon_ip"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/kick"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/stop"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/reload"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/debug"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/perf"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/whitelist"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/save-all"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/save-off"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/save-on"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/data_remove_block"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/data_remove_entity"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/data_remove_storage"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/other/run_self"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/other/multi_cmd_adv"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/setidletimeout"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/jfr"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/publish"} run return 0 +execute if data storage datalib:output inputs{func:"datalib:api/cmd/transfer"} run return 0 + +# ====================================================================================== +# SECTION 9 +# RAW OPERATOR COMMAND PAYLOAD BLOCKLIST (cmd field) +# ====================================================================================== +# +# THREAT: +# Section 8 blocks named wrappers via func. But an attacker may supply +# raw operator commands directly in the cmd field, bypassing func checks. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:"op "} run return 0 +execute if data storage datalib:output inputs{cmd:"deop "} run return 0 +execute if data storage datalib:output inputs{cmd:"ban "} run return 0 +execute if data storage datalib:output inputs{cmd:"ban-ip "} run return 0 +execute if data storage datalib:output inputs{cmd:"pardon "} run return 0 +execute if data storage datalib:output inputs{cmd:"pardon-ip "} run return 0 +execute if data storage datalib:output inputs{cmd:"kick "} run return 0 +execute if data storage datalib:output inputs{cmd:"stop"} run return 0 +execute if data storage datalib:output inputs{cmd:"reload"} run return 0 +execute if data storage datalib:output inputs{cmd:"whitelist "} run return 0 +execute if data storage datalib:output inputs{cmd:"save-all"} run return 0 +execute if data storage datalib:output inputs{cmd:"save-off"} run return 0 +execute if data storage datalib:output inputs{cmd:"save-on"} run return 0 +execute if data storage datalib:output inputs{cmd:"publish"} run return 0 +execute if data storage datalib:output inputs{cmd:"transfer "} run return 0 +execute if data storage datalib:output inputs{cmd:"jfr "} run return 0 +execute if data storage datalib:output inputs{cmd:"setidletimeout "} run return 0 + +# ====================================================================================== +# SECTION 10 +# SELECTOR ESCALATION PROTECTION +# ====================================================================================== +# +# THREAT: +# Selectors can mass-target all players simultaneously. Combined with +# dangerous commands, a single payload can op/ban/kick the entire server. +# +# High-risk patterns: op/deop/kick/ban + any broadcast selector. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:"op @a"} run return 0 +execute if data storage datalib:output inputs{cmd:"op @e"} run return 0 +execute if data storage datalib:output inputs{cmd:"op @r"} run return 0 +execute if data storage datalib:output inputs{cmd:"op @s"} run return 0 +execute if data storage datalib:output inputs{cmd:"op @p"} run return 0 +execute if data storage datalib:output inputs{cmd:"op @n"} run return 0 + +execute if data storage datalib:output inputs{cmd:"deop @a"} run return 0 +execute if data storage datalib:output inputs{cmd:"deop @e"} run return 0 +execute if data storage datalib:output inputs{cmd:"deop @r"} run return 0 +execute if data storage datalib:output inputs{cmd:"deop @s"} run return 0 +execute if data storage datalib:output inputs{cmd:"deop @p"} run return 0 +execute if data storage datalib:output inputs{cmd:"deop @n"} run return 0 + +execute if data storage datalib:output inputs{cmd:"kick @a"} run return 0 +execute if data storage datalib:output inputs{cmd:"kick @e"} run return 0 +execute if data storage datalib:output inputs{cmd:"kick @r"} run return 0 +execute if data storage datalib:output inputs{cmd:"kick @p"} run return 0 + +execute if data storage datalib:output inputs{cmd:"ban @a"} run return 0 +execute if data storage datalib:output inputs{cmd:"ban @e"} run return 0 +execute if data storage datalib:output inputs{cmd:"ban @r"} run return 0 +execute if data storage datalib:output inputs{cmd:"ban @s"} run return 0 +execute if data storage datalib:output inputs{cmd:"ban @p"} run return 0 + +execute if data storage datalib:output inputs{cmd:"execute as @a"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute as @e"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute as @r"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute as @p"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute as @n"} run return 0 + +execute if data storage datalib:output inputs{cmd:"execute at @a"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute at @e"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute at @r"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute at @p"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute at @n"} run return 0 + +# ====================================================================================== +# SECTION 11 +# WILDCARD AND MASS-TARGET PROTECTION +# ====================================================================================== +# +# THREAT: +# @e[type=player] is equivalent to @a and mass-targets all players. +# @e[tag=admin/operator/op] impersonates permission-system entities. +# Bare @a and @e in cmd indicate mass broadcast intent. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:"@e[type=player]"} run return 0 +execute if data storage datalib:output inputs{cmd:"@e[type=minecraft:player]"} run return 0 +execute if data storage datalib:output inputs{cmd:"@e[tag=admin]"} run return 0 +execute if data storage datalib:output inputs{cmd:"@e[tag=operator]"} run return 0 +execute if data storage datalib:output inputs{cmd:"@e[tag=op]"} run return 0 +execute if data storage datalib:output inputs{cmd:"@e[tag=datalib.debug]"} run return 0 +execute if data storage datalib:output inputs{cmd:"@a"} run return 0 +execute if data storage datalib:output inputs{cmd:"@e"} run return 0 + +# ====================================================================================== +# SECTION 12 +# EXECUTE-CHAIN ABUSE PROTECTION +# ====================================================================================== +# +# THREAT: +# execute sub-commands can redirect execution context, invoke arbitrary +# functions, schedule deferred calls, or change the executor's identity. +# +# "run function" and "schedule function" directly invoke arbitrary paths. +# Context modifiers (as/at/in/on/positioned/facing/rotated/anchored/align) +# can target restricted entities or privileged locations. +# "execute summon" creates entities in an attacker-controlled context. +# "execute run" is a catch-all executor that should never appear in cmd. +# +# NOTE: +# "execute if" and "execute unless" are NOT blocked: they are read-only +# condition checks that do not alter execution context. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:"run function"} run return 0 +execute if data storage datalib:output inputs{cmd:"schedule function"} run return 0 +execute if data storage datalib:output inputs{cmd:"schedule clear"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute as "} run return 0 +execute if data storage datalib:output inputs{cmd:"execute at "} run return 0 +execute if data storage datalib:output inputs{cmd:"execute in "} run return 0 +execute if data storage datalib:output inputs{cmd:"execute on "} run return 0 +execute if data storage datalib:output inputs{cmd:"execute positioned"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute facing"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute rotated"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute anchored"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute align"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute summon"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute run"} run return 0 + +# ====================================================================================== +# SECTION 13 +# COMMAND CHAIN INJECTION PROTECTION +# ====================================================================================== +# +# THREAT: +# Shell-style separators and control characters in cmd may cause +# multi-command injection under certain execution environments, +# or may be used to terminate the intended command and append a +# second one. Newlines may cause line-based parsers to treat +# subsequent text as a new command. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:";"} run return 0 +execute if data storage datalib:output inputs{cmd:"&&"} run return 0 +execute if data storage datalib:output inputs{cmd:"||"} run return 0 +execute if data storage datalib:output inputs{cmd:"\n"} run return 0 +execute if data storage datalib:output inputs{cmd:"\r"} run return 0 +execute if data storage datalib:output inputs{cmd:"\t"} run return 0 + +# ====================================================================================== +# SECTION 14 +# STORAGE INJECTION PROTECTION +# ====================================================================================== +# +# THREAT: +# Injecting storage path syntax into func can redirect the engine to +# read macro arguments from attacker-controlled storage. +# +# Example: +# inputs.func = "datalib:api/cmd with storage datalib:engine global" +# → macro call reads from engine storage, giving attacker control +# over macro arguments. +# +# All internal datalib storage namespaces are blocked in both +# func and cmd fields. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{func:"with storage datalib:engine"} run return 0 +execute if data storage datalib:output inputs{func:"with storage datalib:output"} run return 0 +execute if data storage datalib:output inputs{func:"with storage datalib:input"} run return 0 +execute if data storage datalib:output inputs{func:"with storage datalib:debug"} run return 0 +execute if data storage datalib:output inputs{func:"storage datalib:engine"} run return 0 +execute if data storage datalib:output inputs{func:"storage datalib:output"} run return 0 +execute if data storage datalib:output inputs{func:"storage datalib:input"} run return 0 +execute if data storage datalib:output inputs{func:"storage datalib:debug"} run return 0 + +execute if data storage datalib:output inputs{cmd:"with storage datalib:engine"} run return 0 +execute if data storage datalib:output inputs{cmd:"with storage datalib:output"} run return 0 +execute if data storage datalib:output inputs{cmd:"with storage datalib:input"} run return 0 +execute if data storage datalib:output inputs{cmd:"with storage datalib:debug"} run return 0 +execute if data storage datalib:output inputs{cmd:"storage datalib:engine"} run return 0 +execute if data storage datalib:output inputs{cmd:"storage datalib:output"} run return 0 +execute if data storage datalib:output inputs{cmd:"storage datalib:input"} run return 0 +execute if data storage datalib:output inputs{cmd:"storage datalib:debug"} run return 0 + +# ====================================================================================== +# SECTION 15 +# EXECUTE STORE AND DATA MUTATION ABUSE PROTECTION +# ====================================================================================== +# +# THREAT: +# "execute store result/success" can write to any storage, scoreboard, +# block, or entity NBT. If targeting datalib:engine, an attacker can: +# +# • set loaded:0b → disable the engine until next reload +# • set in_call:1b → bypass all future validation (Section 1 sentinel) +# +# "data merge/remove/modify" targeting datalib:engine achieves the same. +# +# Scoreboard manipulation of internal objectives (#rate_calls, +# dl.perm_level, dl.log_level) can disable logging or fake permissions. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:"execute store result storage datalib:engine"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute store success storage datalib:engine"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute store result storage datalib:output"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute store success storage datalib:output"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute store result storage datalib:input"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute store success storage datalib:input"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute store result storage datalib:debug"} run return 0 +execute if data storage datalib:output inputs{cmd:"execute store success storage datalib:debug"} run return 0 + +execute if data storage datalib:output inputs{cmd:"data merge storage datalib:engine"} run return 0 +execute if data storage datalib:output inputs{cmd:"data remove storage datalib:engine"} run return 0 +execute if data storage datalib:output inputs{cmd:"data modify storage datalib:engine"} run return 0 +execute if data storage datalib:output inputs{cmd:"data merge storage datalib:output"} run return 0 +execute if data storage datalib:output inputs{cmd:"data remove storage datalib:output"} run return 0 +execute if data storage datalib:output inputs{cmd:"data modify storage datalib:output"} run return 0 +execute if data storage datalib:output inputs{cmd:"data merge storage datalib:input"} run return 0 +execute if data storage datalib:output inputs{cmd:"data remove storage datalib:input"} run return 0 +execute if data storage datalib:output inputs{cmd:"data modify storage datalib:input"} run return 0 +execute if data storage datalib:output inputs{cmd:"data merge storage datalib:debug"} run return 0 +execute if data storage datalib:output inputs{cmd:"data remove storage datalib:debug"} run return 0 +execute if data storage datalib:output inputs{cmd:"data modify storage datalib:debug"} run return 0 + +execute if data storage datalib:output inputs{cmd:"scoreboard players set #dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"scoreboard players reset #dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"scoreboard players add #dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"scoreboard players remove #dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"scoreboard objectives add dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"scoreboard objectives remove dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"scoreboard objectives add datalib"} run return 0 +execute if data storage datalib:output inputs{cmd:"scoreboard objectives remove datalib"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @s add datalib.admin"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @a add datalib.admin"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @r add datalib.admin"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @n add datalib.admin"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @s remove datalib.admin"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @a remove datalib.admin"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @r remove datalib.admin"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @n remove datalib.admin"} run return 0 + +# ====================================================================================== +# SECTION 16 +# NBT INJECTION PROTECTION +# ====================================================================================== +# +# THREAT: +# Raw NBT compound syntax ({...}) in a cmd payload can be used to: +# +# • Inject additional NBT keys into entity data +# • Override custom_data tags to impersonate permission-tagged entities +# • Manipulate block entity data (e.g. command block Command field) +# • Pass crafted NBT to any command that accepts an NBT argument +# +# Blocking bare "{" in cmd is a conservative safeguard. Legitimate API +# calls pass structured arguments via storage, not raw NBT in cmd strings. +# +# Exception: "{}" (empty compound) is common in macro calls and is +# intentionally NOT blocked. Only non-empty NBT compounds are denied. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:"Command"} run return 0 +execute if data storage datalib:output inputs{cmd:"auto"} run return 0 +execute if data storage datalib:output inputs{cmd:"CustomName"} run return 0 +execute if data storage datalib:output inputs{cmd:"Tags"} run return 0 +execute if data storage datalib:output inputs{cmd:"datalib"} run return 0 +execute if data storage datalib:output inputs{cmd:"minecraft:custom_data"} run return 0 +execute if data storage datalib:output inputs{cmd:"minecraft:custom_data"} run return 0 + +# ====================================================================================== +# SECTION 17 +# GAMERULE ABUSE PROTECTION +# ====================================================================================== +# +# THREAT: +# Certain gamerules have direct security and stability implications: +# +# commandBlocksWork (26.1.2+) / commandBlockEnabled (legacy) +# → re-enables command block execution if it was disabled +# +# maxCommandChainLength +# → raising this allows deeper recursion and DoS attacks +# +# doImmediateRespawn, naturalRegeneration, keepInventory +# → griefing quality-of-life rules (lower severity, still blocked) +# +# pvp (only in server.properties, not a gamerule, included for clarity) +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:"gamerule commandBlocksWork"} run return 0 +execute if data storage datalib:output inputs{cmd:"gamerule commandBlockEnabled"} run return 0 +execute if data storage datalib:output inputs{cmd:"gamerule maxCommandChainLength"} run return 0 +execute if data storage datalib:output inputs{cmd:"gamerule maxEntityCramming"} run return 0 +execute if data storage datalib:output inputs{cmd:"gamerule randomTickSpeed"} run return 0 +execute if data storage datalib:output inputs{cmd:"gamerule spawnRadius"} run return 0 +execute if data storage datalib:output inputs{cmd:"gamerule playersSleepingPercentage"} run return 0 + +# ====================================================================================== +# SECTION 18 +# ENTITY AND TAG MANIPULATION PROTECTION +# ====================================================================================== +# +# THREAT: +# Datalib's permission system uses entity tags (datalib.debug, dl.perm_level, +# datalib.admin) to identify privileged players and entities. An attacker +# who can add these tags to themselves bypasses the permission model entirely. +# +# "summon" can create arbitrary entities with attacker-controlled NBT, +# including tags that the permission system trusts. +# +# "tag add" targeting @s or any player with a known privilege tag is +# a direct permission escalation attack. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:"summon "} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @s add datalib"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @s add dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @a add datalib"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @a add dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @p add datalib"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @p add dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @r add datalib"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @r add dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @e add datalib"} run return 0 +execute if data storage datalib:output inputs{cmd:"tag @e add dl"} run return 0 +execute if data storage datalib:output inputs{cmd:"attribute @s"} run return 0 +execute if data storage datalib:output inputs{cmd:"effect give @a"} run return 0 +execute if data storage datalib:output inputs{cmd:"effect give @e"} run return 0 + +# ====================================================================================== +# SECTION 19 +# FORCELOAD AND BLOCK PLACEMENT ABUSE PROTECTION +# ====================================================================================== +# +# THREAT: +# "forceload add" can keep arbitrary chunks loaded indefinitely, +# causing memory/CPU strain and enabling block persistence attacks. +# +# "setblock" at privileged coordinates (e.g. 0 -64 0 where datalib's +# command block runner sits) can replace the command block with a +# malicious one, or destroy it to break the command runner. +# +# "fill" is forceload + setblock at scale. +# +# ====================================================================================== + +execute if data storage datalib:output inputs{cmd:"forceload add"} run return 0 +execute if data storage datalib:output inputs{cmd:"forceload remove"} run return 0 +execute if data storage datalib:output inputs{cmd:"setblock 0 -64 0"} run return 0 +execute if data storage datalib:output inputs{cmd:"fill "} run return 0 +execute if data storage datalib:output inputs{cmd:"fillbiome "} run return 0 + +# ====================================================================================== +# SECTION 20 +# DEBUG OUTPUT +# ====================================================================================== +# +# PURPOSE: +# Emit diagnostic messages through all configured output channels +# when a call passes all validation stages. +# +# OUTPUT CHANNELS: +# +# tellraw @s +# Caller-visible confirmation. Only emitted if @s is a player. +# Shows validated function path and current tick. +# +# tellraw @a[tag=datalib.debug] +# Admin-visible full call record. Always attempted. +# Shows caller identity, func path. +# +# say +# Server console log. Gated on devMode and at least one debug player. +# Output appears in server log file as [Server] prefix. +# +# storage datalib:debug +# Machine-readable record. Written unconditionally for tooling. +# Overwritten each call — not a persistent audit log. +# +# GATE: +# All output is skipped entirely unless devMode is enabled OR at least +# one player holds the datalib.debug tag. This prevents debug spam +# in production servers with no active debugging session. +# +# ====================================================================================== + +# Write machine-readable call record unconditionally +data modify storage datalib:debug last_validated_call.func set from storage datalib:output inputs.func + +# Gate remaining output on debug mode or active debug players +execute unless data storage datalib:engine dev_settings{devMode:1b} unless entity @a[tag=datalib.debug] run return fail + +# Caller-facing confirmation (players only) +execute if entity @s[type=minecraft:player] run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✔ ","color":"green"},{"text":"Validated: ","color":"gray"},{"storage":"datalib:output","nbt":"inputs.func","color":"aqua"}] + +# Admin-facing full record +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"CALL ","color":"green","bold":true},{"selector":"@s","color":"gold"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"inputs.func","color":"aqua"}] + +# Server console log (devMode only — say is noisy) +execute if data storage datalib:engine dev_settings{devMode:1b} run say [DL/input_check] VALIDATED + +# ====================================================================================== +# SECTION 21 +# VALIDATED EXECUTION LOCK +# ====================================================================================== +# +# PURPOSE: +# Set in_call:1b to prevent Section 1 from re-running validation +# for any function invoked by the validated target. +# Must be set immediately before execution and cleared immediately after. +# +# ====================================================================================== + +data modify storage datalib:engine global.in_call set value 1b + +# ====================================================================================== +# SECTION 22 +# EXECUTE VALIDATED FUNCTION +# ====================================================================================== + +function datalib:core/engine/call/execute_validated + +# ====================================================================================== +# SECTION 23 +# CLEANUP EXECUTION LOCK +# ====================================================================================== + +data remove storage datalib:engine global.in_call + +# ====================================================================================== +# SECTION 24 +# CLEANUP TEMPORARY STORAGE +# ====================================================================================== + +data remove storage datalib:output data +data remove storage datalib:output security +data remove storage datalib:output inputs + +# ====================================================================================== +# SECTION 25 +# SUCCESS RETURN +# ====================================================================================== + +return 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/load_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/load_check.mcfunction new file mode 100644 index 0000000..b2a130c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/load_check.mcfunction @@ -0,0 +1,5 @@ +# datalib:debug/tools/utils/load_check +# Returns 1 if engine is loaded, 0 (+ fallback) if not. +execute if data storage datalib:engine global{loaded:1b} run return 1 +function datalib:core/fallback/not_loaded +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/perm_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/perm_check.mcfunction new file mode 100644 index 0000000..4b53561 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/perm_check.mcfunction @@ -0,0 +1,22 @@ +# datalib:debug/tools/utils/perm_check +# Returns 1 if executor has sufficient dl.perm_level for admin commands. +# Returns 0 (+ fallback) if not. +# +# BREAKING CHANGE (v6.0.0): datalib.admin tag alone no longer grants access. +# Players must have dl.perm_level >= security.admin_min_level. +# Non-player callers (server/datapack) are trusted and pass through. +# +# Set player level: function datalib:api/security/set_level {player:"Name",level:2} + +# Non-players pass through (server-side / datapack callers are op-gated) +execute unless entity @s[type=minecraft:player] run return 1 + +# Load required admin level from security storage +execute store result score #perm_req dl.tmp run data get storage datalib:engine security.admin_min_level + +# Check perm_level +execute if score @s dl.perm_level >= #perm_req dl.tmp run return 1 + +# Denied +function datalib:core/fallback/no_permission +return 0 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/timer_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/timer_check.mcfunction new file mode 100644 index 0000000..1bdb60e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/debug/tools/utils/timer_check.mcfunction @@ -0,0 +1,2 @@ +execute unless score @s datalib.dialog_load matches 0 run return 0 +return 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/disable.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/disable.mcfunction new file mode 100644 index 0000000..ddb58dc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/disable.mcfunction @@ -0,0 +1,5 @@ +playsound minecraft:block.note_block.pling master @s ~ ~ ~ 4 2 + +function datalib:core/disable/main + +tellraw @s [{"text":"To restart:"}," ",{"text":"/reload","color":"aqua","bold":true,"italic":false,"click_event":{"action":"run_command","command":"/trigger dl.reload set 1"}}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/clear_context.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/clear_context.mcfunction new file mode 100644 index 0000000..cfffa95 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/clear_context.mcfunction @@ -0,0 +1 @@ +data remove storage datalib:engine event_context \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/count.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/count.mcfunction new file mode 100644 index 0000000..8adabfe --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/count.mcfunction @@ -0,0 +1,3 @@ +data modify storage datalib:output result set value 0 +$execute if data storage datalib:engine events.$(event) run execute store result storage datalib:output result int 1 run data get storage datalib:engine events.$(event) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/count ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(event)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/fire.mcfunction new file mode 100644 index 0000000..9c00f41 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/fire.mcfunction @@ -0,0 +1,7 @@ +$execute unless data storage datalib:engine events.$(event) run execute as @a[tag=datalib.debug] run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/fire ","color":"aqua"},{"text":"SKIP ","color":"#FF5555"},{"text":"$(event)","color":"#AAAAAA"},{"text":" — no handlers registered","color":"#555555"}] +$execute unless data storage datalib:engine events.$(event) run return 0 + +$data modify storage datalib:engine _event_tmp set from storage datalib:engine events.$(event) +execute if data storage datalib:engine _event_tmp[0] run function datalib:core/internal/events/fire_next +data remove storage datalib:engine _event_tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/fire ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(event)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/fire_as.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/fire_as.mcfunction new file mode 100644 index 0000000..61af2f1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/fire_as.mcfunction @@ -0,0 +1,7 @@ +$data modify storage datalib:engine event_context.player set value "$(player)" + +function datalib:events/fire with storage datalib:input {} + +data remove storage datalib:engine event_context.player + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/fire_as ","color":"aqua"},{"text":"$(event)","color":"aqua"},{"text":" as ","color":"#555555"},{"text":"$(player)","color":"white"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/fire_queued.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/fire_queued.mcfunction new file mode 100644 index 0000000..2e17ef0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/fire_queued.mcfunction @@ -0,0 +1,4 @@ +$execute unless data storage datalib:engine events.$(event) run return 0 + +$data modify storage datalib:engine queue append value {func:"datalib:events/internal/fire_deferred", delay:$(delay), event:"$(event)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/fire_queued ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(event)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/fire_to_player.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/fire_to_player.mcfunction new file mode 100644 index 0000000..52af41d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/fire_to_player.mcfunction @@ -0,0 +1,7 @@ +$execute unless data storage datalib:engine events.$(event) run return 0 + +$data modify storage datalib:engine _event_tmp set from storage datalib:engine events.$(event) + +$execute as @a[name=$(player),limit=1] run function datalib:core/internal/events/fire_next +data remove storage datalib:engine _event_tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/fire_to_player ","color":"aqua"},{"text":"$(event) → $(player)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/has.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/has.mcfunction new file mode 100644 index 0000000..fa46205 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/has.mcfunction @@ -0,0 +1,3 @@ +data modify storage datalib:output result set value 0b +$execute if data storage datalib:engine events.$(event) run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/has ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(event)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/list.mcfunction new file mode 100644 index 0000000..8194b72 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/list.mcfunction @@ -0,0 +1,4 @@ +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Registered Events ","color":"aqua"},{"text":"━━━━━━","color":"#555555"}] +execute if data storage datalib:engine events run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"events","interpret":false,"color":"yellow"}] +execute unless data storage datalib:engine events run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"text":"(no registered events)","color":"gray","italic":true}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/register.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/register.mcfunction new file mode 100644 index 0000000..bc021f3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/register.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine events.$(event) append value {func:"$(func)"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/register ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/unregister.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/unregister.mcfunction new file mode 100644 index 0000000..bde787a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/unregister.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine events.$(event) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/unregister ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(event)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/events/unregister_one.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/events/unregister_one.mcfunction new file mode 100644 index 0000000..cae5b90 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/events/unregister_one.mcfunction @@ -0,0 +1,12 @@ +$execute unless data storage datalib:engine events.$(event) run return 0 + +$data modify storage datalib:engine _uro.event set value "$(event)" +$data modify storage datalib:engine _uro.func set value "$(func)" +$data modify storage datalib:engine _uro.src set from storage datalib:engine events.$(event) + +$data remove storage datalib:engine events.$(event) + +execute if data storage datalib:engine _uro.src[0] run function datalib:core/internal/events/uro_loop + +data remove storage datalib:engine _uro +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"event/unregister_one ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/load.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/load.mcfunction new file mode 100644 index 0000000..ebc4153 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/load.mcfunction @@ -0,0 +1 @@ +function dl_load:_ \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/menu.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/menu.mcfunction new file mode 100644 index 0000000..2e0b2cb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/menu.mcfunction @@ -0,0 +1,2 @@ +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"menu ","color":"aqua"},{"text":"▶ dispatching","color":"#555555"}] +function #datalib:admin/menu \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/add_default.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/add_default.mcfunction new file mode 100644 index 0000000..989e90b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/add_default.mcfunction @@ -0,0 +1,2 @@ +$execute unless data storage datalib:engine players.$(player).$(key) run data modify storage datalib:engine players.$(player).$(key) set value $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/add_default ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/add_to_var.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/add_to_var.mcfunction new file mode 100644 index 0000000..06a606d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/add_to_var.mcfunction @@ -0,0 +1,6 @@ +$execute store result score $pvar dl.tmp run data get storage datalib:engine players.$(player).$(key) +$scoreboard players set $pamount dl.tmp $(amount) +scoreboard players operation $pvar dl.tmp += $pamount dl.tmp +$execute store result storage datalib:engine players.$(player).$(key) int 1 run scoreboard players get $pvar dl.tmp +execute store result storage datalib:output result int 1 run scoreboard players get $pvar dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/add_to_var ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/clamp_var.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/clamp_var.mcfunction new file mode 100644 index 0000000..5657ec7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/clamp_var.mcfunction @@ -0,0 +1,8 @@ +$execute store result score $cv dl.tmp run data get storage datalib:engine players.$(player).$(key) +$scoreboard players set $cv_mn dl.tmp $(min) +$scoreboard players set $cv_mx dl.tmp $(max) +execute if score $cv dl.tmp < $cv_mn dl.tmp run scoreboard players operation $cv dl.tmp = $cv_mn dl.tmp +execute if score $cv dl.tmp > $cv_mx dl.tmp run scoreboard players operation $cv dl.tmp = $cv_mx dl.tmp +$execute store result storage datalib:engine players.$(player).$(key) int 1 run scoreboard players get $cv dl.tmp +execute store result storage datalib:output result int 1 run scoreboard players get $cv dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/clamp_var ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/copy_var.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/copy_var.mcfunction new file mode 100644 index 0000000..1be5267 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/copy_var.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine players.$(to).$(key) set from storage datalib:engine players.$(from).$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/copy_var ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/decrement.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/decrement.mcfunction new file mode 100644 index 0000000..2aab86c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/decrement.mcfunction @@ -0,0 +1,5 @@ +$execute store result score $pvar dl.tmp run data get storage datalib:engine players.$(player).$(key) +scoreboard players remove $pvar dl.tmp 1 +$execute store result storage datalib:engine players.$(player).$(key) int 1 run scoreboard players get $pvar dl.tmp +execute store result storage datalib:output result int 1 run scoreboard players get $pvar dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/decrement ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/del_var.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/del_var.mcfunction new file mode 100644 index 0000000..21f5b52 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/del_var.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine players.$(player).$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/del_var ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_air.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_air.mcfunction new file mode 100644 index 0000000..6a5ba17 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_air.mcfunction @@ -0,0 +1,21 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/get_air +# Returns the current air supply of the named player. +# Air ranges from 0 (drowning) to 300 (full) in ticks. +# +# INPUT : $(player) → player name +# OUTPUT: datalib:output result → air ticks (int, 0–300) +# datalib:output found → 1b if player online, 0b otherwise +# +# EXAMPLE: +# function datalib:player/get_air {player:"Steve"} +# → datalib:output result = 300 +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] store result storage datalib:output result int 1 run data get entity @s Air +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/get_air ","color":"aqua"},{"text":"$(player) → air=","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_armor.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_armor.mcfunction new file mode 100644 index 0000000..79d0524 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_armor.mcfunction @@ -0,0 +1,24 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/get_armor +# Returns the armor point value of the named player. +# Armor is read from the generic.armor attribute base value. +# Also returns armor toughness. +# +# INPUT : $(player) → player name +# OUTPUT: datalib:output result → armor points (int) +# datalib:output toughness → armor toughness (int, scaled x1000) +# datalib:output found → 1b if player exists, 0b otherwise +# +# EXAMPLE: +# function datalib:player/get_armor {player:"Steve"} +# data get storage datalib:output result +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] store result storage datalib:output result int 1 run data get entity @s Attributes[{Name:"minecraft:armor"}].Base +$execute as @a[name=$(player),limit=1] store result storage datalib:output toughness int 1000 run data get entity @s Attributes[{Name:"minecraft:armor_toughness"}].Base +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/get_armor ","color":"aqua"},{"text":"$(player) → armor=","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"},{"text":" toughness=","color":"gray"},{"storage":"datalib:output","nbt":"toughness","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_dimension.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_dimension.mcfunction new file mode 100644 index 0000000..09a8862 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_dimension.mcfunction @@ -0,0 +1,3 @@ +data remove storage datalib:output result +$data modify storage datalib:output result set from entity @a[name=$(player),limit=1] Dimension +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/get_dimension ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_food.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_food.mcfunction new file mode 100644 index 0000000..275ebb4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_food.mcfunction @@ -0,0 +1,8 @@ +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] store result storage datalib:output food int 1 run data get entity @s FoodLevel +$execute as @a[name=$(player),limit=1] store result storage datalib:output saturation int 1000 run data get entity @s FoodSaturationLevel +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/get_food ","color":"aqua"},{"text":"$(player) → food=","color":"gray"},{"storage":"datalib:output","nbt":"food","color":"green"},{"text":" sat=","color":"gray"},{"storage":"datalib:output","nbt":"saturation","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_gamemode.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_gamemode.mcfunction new file mode 100644 index 0000000..f697fc3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_gamemode.mcfunction @@ -0,0 +1,29 @@ +# datalib:player/get_gamemode [MACRO] +# Returns the gamemode of a named player as an integer. +# +# INPUT: $(player) — player name +# OUTPUT: datalib:output result — 0=survival, 1=creative, 2=adventure, 3=spectator +# datalib:output name — "survival" | "creative" | "adventure" | "spectator" +# datalib:output found — 1b if player exists, 0b otherwise +# +# EXAMPLE: +# function datalib:player/get_gamemode {player:"Steve"} +# data get storage datalib:output name + +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b + +$execute if entity @a[name=$(player),gamemode=survival,limit=1] run data modify storage datalib:output result set value 0 +$execute if entity @a[name=$(player),gamemode=creative,limit=1] run data modify storage datalib:output result set value 1 +$execute if entity @a[name=$(player),gamemode=adventure,limit=1] run data modify storage datalib:output result set value 2 +$execute if entity @a[name=$(player),gamemode=spectator,limit=1] run data modify storage datalib:output result set value 3 + +$execute if entity @a[name=$(player),gamemode=survival,limit=1] run data modify storage datalib:output name set value "survival" +$execute if entity @a[name=$(player),gamemode=creative,limit=1] run data modify storage datalib:output name set value "creative" +$execute if entity @a[name=$(player),gamemode=adventure,limit=1] run data modify storage datalib:output name set value "adventure" +$execute if entity @a[name=$(player),gamemode=spectator,limit=1] run data modify storage datalib:output name set value "spectator" + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/get_gamemode ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"storage":"datalib:output","nbt":"name","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_health.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_health.mcfunction new file mode 100644 index 0000000..446f913 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_health.mcfunction @@ -0,0 +1,8 @@ +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] store result storage datalib:output result int 1 run data get entity @s Health +$execute as @a[name=$(player),limit=1] store result storage datalib:output max int 1 run data get entity @s Attributes[{Name:"minecraft:max_health"}].Base +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/get_health ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"},{"text":"/","color":"#555555"},{"storage":"datalib:output","nbt":"max","color":"yellow"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_name.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_name.mcfunction new file mode 100644 index 0000000..1bf6672 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_name.mcfunction @@ -0,0 +1,14 @@ +data remove storage datalib:names temp + +setblock 0 300 0 black_shulker_box replace + +loot insert 0 300 0 loot datalib:player/head + +data modify storage datalib:names temp.NAME set from block 0 300 0 Items[0].components."minecraft:profile".name + +data modify storage datalib:names temp.UUID insert 0 from entity @s UUID[0] +data modify storage datalib:names temp.UUID insert 1 from entity @s UUID[1] +data modify storage datalib:names temp.UUID insert 2 from entity @s UUID[2] +data modify storage datalib:names temp.UUID insert 3 from entity @s UUID[3] + +setblock 0 300 0 air replace \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_online_count.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_online_count.mcfunction new file mode 100644 index 0000000..b8ecf05 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_online_count.mcfunction @@ -0,0 +1,3 @@ +scoreboard players set $poc dl.tmp 0 +execute as @a run scoreboard players add $poc dl.tmp 1 +execute store result storage datalib:output result int 1 run scoreboard players get $poc dl.tmp \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_pos.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_pos.mcfunction new file mode 100644 index 0000000..33127d9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_pos.mcfunction @@ -0,0 +1,9 @@ +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] at @s store result storage datalib:output x int 1 run data get entity @s Pos[0] +$execute as @a[name=$(player),limit=1] at @s store result storage datalib:output y int 1 run data get entity @s Pos[1] +$execute as @a[name=$(player),limit=1] at @s store result storage datalib:output z int 1 run data get entity @s Pos[2] +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/get_pos ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"x=","color":"gray"},{"storage":"datalib:output","nbt":"x","color":"green"},{"text":" y=","color":"gray"},{"storage":"datalib:output","nbt":"y","color":"green"},{"text":" z=","color":"gray"},{"storage":"datalib:output","nbt":"z","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_var.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_var.mcfunction new file mode 100644 index 0000000..8096b5a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_var.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:output result set from storage datalib:engine players.$(player).$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/get_var ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/get_xp.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_xp.mcfunction new file mode 100644 index 0000000..43999b1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/get_xp.mcfunction @@ -0,0 +1,9 @@ +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] store result storage datalib:output level int 1 run data get entity @s XpLevel +$execute as @a[name=$(player),limit=1] store result storage datalib:output points int 1 run xp query @s points +$execute as @a[name=$(player),limit=1] store result storage datalib:output progress int 1000 run data get entity @s XpP +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/get_xp ","color":"aqua"},{"text":"$(player) → level=","color":"gray"},{"storage":"datalib:output","nbt":"level","color":"green"},{"text":" pts=","color":"gray"},{"storage":"datalib:output","nbt":"points","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/has_var.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/has_var.mcfunction new file mode 100644 index 0000000..bdd6ead --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/has_var.mcfunction @@ -0,0 +1,3 @@ +data modify storage datalib:output result set value 0b +$execute if data storage datalib:engine players.$(player).$(key) run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/has_var ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/increment.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/increment.mcfunction new file mode 100644 index 0000000..f6f6d05 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/increment.mcfunction @@ -0,0 +1,5 @@ +$execute store result score $pvar dl.tmp run data get storage datalib:engine players.$(player).$(key) +scoreboard players add $pvar dl.tmp 1 +$execute store result storage datalib:engine players.$(player).$(key) int 1 run scoreboard players get $pvar dl.tmp +execute store result storage datalib:output result int 1 run scoreboard players get $pvar dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/increment ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/init.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/init.mcfunction new file mode 100644 index 0000000..f1432ad --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/init.mcfunction @@ -0,0 +1,9 @@ +$execute unless data storage datalib:engine players.$(player) run data modify storage datalib:engine players.$(player) set value {} +$execute unless data storage datalib:engine players.$(player).coins run data modify storage datalib:engine players.$(player).coins set value 0 +$execute unless data storage datalib:engine players.$(player).level run data modify storage datalib:engine players.$(player).level set value 1 +$execute unless data storage datalib:engine players.$(player).xp run data modify storage datalib:engine players.$(player).xp set value 0 +$data modify storage datalib:engine players.$(player).online set value 1b +$execute unless data storage datalib:engine players.$(player).first_join_tick run execute store result storage datalib:engine players.$(player).first_join_tick int 1 run scoreboard players get $epoch datalib.time +$execute store result storage datalib:engine players.$(player).last_join_tick int 1 run scoreboard players get $epoch datalib.time +$execute unless data storage datalib:engine player_pids.$(player) run function datalib:core/internal/player/assign_pid with storage datalib:engine _pid_init_tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/init ","color":"aqua"},{"text":"$(player)","color":"white"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/chest_minecart_if_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/chest_minecart_if_item.mcfunction new file mode 100644 index 0000000..45e4e8a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/chest_minecart_if_item.mcfunction @@ -0,0 +1,2 @@ +$execute as @a at @s if items entity @e[type=minecraft:chest_minecart,distance=..2,limit=1,tag=$(tag)] container.$(slot) *[minecraft:custom_data=$(customData)] run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"inv/chest_minecart_if_item ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(tag)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/chest_minecart_unless_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/chest_minecart_unless_item.mcfunction new file mode 100644 index 0000000..55665e0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/chest_minecart_unless_item.mcfunction @@ -0,0 +1,2 @@ +$execute as @a at @s unless items entity @e[type=minecraft:chest_minecart,distance=..2,limit=1,tag=$(tag)] container.$(slot) *[minecraft:custom_data=$(customData)] run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"inv/chest_minecart_unless_item ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(tag)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/clear_custom.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/clear_custom.mcfunction new file mode 100644 index 0000000..ebf7681 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/clear_custom.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] run clear @s *[minecraft:custom_data=$(customData)] $(count) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"inv/clear_custom ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/count_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/count_item.mcfunction new file mode 100644 index 0000000..48f12a4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/count_item.mcfunction @@ -0,0 +1,4 @@ +scoreboard players set $inv_cnt dl.tmp 0 +$execute as @a[name=$(player),limit=1] run execute store result score $inv_cnt dl.tmp run clear @s *[minecraft:custom_data=$(customData)] 0 +execute store result storage datalib:output count int 1 run scoreboard players get $inv_cnt dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"inv/count_item ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/cursor_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/cursor_item.mcfunction new file mode 100644 index 0000000..cd85d73 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/cursor_item.mcfunction @@ -0,0 +1,8 @@ +# Detect click (slot empty after interaction) +$execute as @a at @s if items entity @s player.cursor *[minecraft:custom_data=$(data)] run $(invoke) + +# Restore item +$item replace entity @e[type=chest_minecart,tag=$(id),limit=1,sort=nearest] container.$(slot) with $(item)[minecraft:custom_data=$(data)] $(count) + +# Clear cursor +$clear @s $(item)[minecraft:custom_data=$(data)] $(count) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/offhand_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/offhand_item.mcfunction new file mode 100644 index 0000000..2b4847f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/offhand_item.mcfunction @@ -0,0 +1,15 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/inv/offhand_item +# Runs a command/function for each player in @a whose offhand +# matches the given item id and custom data. +# Mirrors the pattern of datalib:player/inv/selected_item (mainhand). +# +# INPUT : $(item) → item id (e.g. "minecraft:shield") +# $(customData) → custom_data compound to match (e.g. "{my_tag:1b}") +# $(invoke) → command to run as the matching player +# +# EXAMPLE: +# function datalib:player/inv/offhand_item {item:"minecraft:shield",customData:"{my_tag:1b}",invoke:"function mypack:on_shield"} +# ───────────────────────────────────────────────────────────────── + +$execute as @a at @s if items entity @s weapon.offhand $(item)[minecraft:custom_data=$(customData)] run $(invoke) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/player_if_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/player_if_item.mcfunction new file mode 100644 index 0000000..a896320 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/player_if_item.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] at @s if items entity @s *.* *[minecraft:custom_data=$(customData)] run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"inv/player_if_item ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/player_slot_if_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/player_slot_if_item.mcfunction new file mode 100644 index 0000000..2a1cca6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/player_slot_if_item.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] at @s if items entity @s $(slot) *[minecraft:custom_data=$(customData)] run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"inv/player_slot_if_item ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/player_unless_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/player_unless_item.mcfunction new file mode 100644 index 0000000..f79286d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/player_unless_item.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] at @s unless items entity @s *.* *[minecraft:custom_data=$(customData)] run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"inv/player_unless_item ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/selected_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/selected_item.mcfunction new file mode 100644 index 0000000..e977a43 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/selected_item.mcfunction @@ -0,0 +1 @@ +$execute as @a at @s if items entity @s weapon.mainhand $(item)[minecraft:custom_data=$(customData)] run $(invoke) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/transfer_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/transfer_item.mcfunction new file mode 100644 index 0000000..590cf94 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/inv/transfer_item.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] at @s run item replace entity @s weapon.mainhand from entity @e[type=minecraft:chest_minecart,distance=..2,limit=1,tag=$(tag)] container.$(slot) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"inv/transfer_item ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(tag)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/is_burning.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_burning.mcfunction new file mode 100644 index 0000000..8d69719 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_burning.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/is_burning +# Checks whether a named player is currently on fire. +# Uses the datalib:is_burning predicate (entity_flags). +# +# INPUT : $(player) → player name +# OUTPUT: datalib:output result → 1b if burning, 0b otherwise +# datalib:output found → 1b if player online, 0b otherwise +# +# EXAMPLE: +# function datalib:player/is_burning {player:"Steve"} +# → datalib:output result = 1b +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output found set value 0b +data modify storage datalib:output result set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] if predicate datalib:is_burning run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/is_burning ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/is_flying.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_flying.mcfunction new file mode 100644 index 0000000..cfe97ae --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_flying.mcfunction @@ -0,0 +1,14 @@ +# datalib:player/is_flying +# Checks whether the named player is currently flying (creative/spectator flight or elytra). +# Params: player +# Output: datalib:output result = 1b (flying) or 0b (not flying / not found) +# datalib:output found = 1b if player exists online, else 0b + +data modify storage datalib:output result set value 0b +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] if data entity @s {abilities:{flying:1b}} run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/is_flying ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/is_gliding.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_gliding.mcfunction new file mode 100644 index 0000000..8e28313 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_gliding.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/is_gliding +# Checks whether the named player is currently gliding with an elytra. +# Uses the datalib:is_gliding predicate (entity_flags). +# +# INPUT : $(player) → player name +# OUTPUT: datalib:output result → 1b if gliding, 0b otherwise +# datalib:output found → 1b if player online, 0b otherwise +# +# EXAMPLE: +# function datalib:player/is_gliding {player:"Steve"} +# → datalib:output result = 1b +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output result set value 0b +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] if predicate datalib:is_gliding run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/is_gliding ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/is_in_water.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_in_water.mcfunction new file mode 100644 index 0000000..0dd42a6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_in_water.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/is_in_water +# Checks whether the named player is currently submerged in water. +# Uses the datalib:is_in_water predicate (entity_flags). +# +# INPUT : $(player) → player name +# OUTPUT: datalib:output result → 1b if in water, 0b otherwise +# datalib:output found → 1b if player online, 0b otherwise +# +# EXAMPLE: +# function datalib:player/is_in_water {player:"Steve"} +# → datalib:output result = 1b +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output result set value 0b +data modify storage datalib:output found set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] if predicate datalib:is_in_water run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/is_in_water ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/is_on_ground.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_on_ground.mcfunction new file mode 100644 index 0000000..a39d4e5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_on_ground.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/is_on_ground +# Checks whether a named player is currently on the ground. +# Uses the datalib:is_on_ground predicate (entity_flags). +# +# INPUT : $(player) → player name +# OUTPUT: datalib:output result → 1b if on ground, 0b otherwise +# datalib:output found → 1b if player online, 0b otherwise +# +# EXAMPLE: +# function datalib:player/is_on_ground {player:"Steve"} +# → datalib:output result = 1b +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output found set value 0b +data modify storage datalib:output result set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] if predicate datalib:is_on_ground run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/is_on_ground ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/is_online.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_online.mcfunction new file mode 100644 index 0000000..72f45a5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_online.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/is_online +# Checks whether the player is on the server. +# Girdi : $(player) → player name +# Output: datalib:output result → 1b (online) / 0b (offline) +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output result set value 0b +$execute if entity @a[name=$(player),limit=1] run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/is_online ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/is_sneaking.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_sneaking.mcfunction new file mode 100644 index 0000000..dcbc16c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_sneaking.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/is_sneaking +# Checks whether a named player is currently sneaking. +# Uses the datalib:is_sneaking predicate (entity_flags). +# +# INPUT : $(player) → player name +# OUTPUT: datalib:output result → 1b if sneaking, 0b otherwise +# datalib:output found → 1b if player online, 0b otherwise +# +# EXAMPLE: +# function datalib:player/is_sneaking {player:"Steve"} +# → datalib:output result = 1b +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output found set value 0b +data modify storage datalib:output result set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] if predicate datalib:is_sneaking run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/is_sneaking ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/is_sprinting.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_sprinting.mcfunction new file mode 100644 index 0000000..12f1cef --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/is_sprinting.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:player/is_sprinting +# Checks whether a named player is currently sprinting. +# Uses the datalib:is_sprinting predicate (entity_flags). +# +# INPUT : $(player) → player name +# OUTPUT: datalib:output result → 1b if sprinting, 0b otherwise +# datalib:output found → 1b if player online, 0b otherwise +# +# EXAMPLE: +# function datalib:player/is_sprinting {player:"Steve"} +# → datalib:output result = 1b +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output found set value 0b +data modify storage datalib:output result set value 0b + +$execute unless entity @a[name=$(player),limit=1] run return 0 + +data modify storage datalib:output found set value 1b +$execute as @a[name=$(player),limit=1] if predicate datalib:is_sprinting run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/is_sprinting ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/list_vars.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/list_vars.mcfunction new file mode 100644 index 0000000..383c57e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/list_vars.mcfunction @@ -0,0 +1,6 @@ +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Player: ","color":"aqua"},{"text":"$(player)","color":"white","bold":true},{"text":" ━━━━━━━━━━━━━━","color":"#555555"}] +$execute if data storage datalib:engine players.$(player) run tellraw @a[tag=datalib.debug] ["",{"text":" vars ","color":"#555555"},{"storage":"datalib:engine","nbt":"players.$(player)","interpret":false,"color":"yellow"}] +$execute unless data storage datalib:engine players.$(player) run tellraw @a[tag=datalib.debug] ["",{"text":" vars ","color":"#555555"},{"text":"(no data)","color":"gray","italic":true}] +$execute if data storage datalib:engine cooldowns.$(player) run tellraw @a[tag=datalib.debug] ["",{"text":" cooldowns ","color":"#555555"},{"storage":"datalib:engine","nbt":"cooldowns.$(player)","interpret":false,"color":"aqua"}] +$execute unless data storage datalib:engine cooldowns.$(player) run tellraw @a[tag=datalib.debug] ["",{"text":" cooldowns ","color":"#555555"},{"text":"(none active)","color":"gray","italic":true}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/online_check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/online_check.mcfunction new file mode 100644 index 0000000..680178a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/online_check.mcfunction @@ -0,0 +1,3 @@ +data modify storage datalib:output result set value 0b +$execute if entity @a[name=$(player),limit=1] run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/online_check ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/reset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/reset.mcfunction new file mode 100644 index 0000000..e8772d4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/reset.mcfunction @@ -0,0 +1,6 @@ +$data remove storage datalib:engine players.$(player) +$data remove storage datalib:engine cooldowns.$(player) +$advancement revoke @a[name=$(player),limit=1] from datalib:hidden/root +$data modify storage datalib:engine _pid_init_tmp set value {player:"$(player)"} +function datalib:player/init with storage datalib:engine _pid_init_tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/reset ","color":"aqua"},{"text":"$(player)","color":"white"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/run_cmd_as_uuid_macro.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/run_cmd_as_uuid_macro.mcfunction new file mode 100644 index 0000000..b400062 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/run_cmd_as_uuid_macro.mcfunction @@ -0,0 +1 @@ +$execute as @a[nbt={UUID:$(uuid)}] run $(cmd) \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/run_func_as_uuid_macro.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/run_func_as_uuid_macro.mcfunction new file mode 100644 index 0000000..96d59c2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/run_func_as_uuid_macro.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +$execute as @a[nbt={UUID:$(uuid)}] run function #datalib:internal/dispatch \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/set_var.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/set_var.mcfunction new file mode 100644 index 0000000..4896b19 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/set_var.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine players.$(player).$(key) set value $(value) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/set_var ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/swap_var.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/swap_var.mcfunction new file mode 100644 index 0000000..1b6dc9b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/swap_var.mcfunction @@ -0,0 +1,5 @@ +$data modify storage datalib:engine _swap.tmp set from storage datalib:engine players.$(player_a).$(key) +$data modify storage datalib:engine players.$(player_a).$(key) set from storage datalib:engine players.$(player_b).$(key) +$data modify storage datalib:engine players.$(player_b).$(key) set from storage datalib:engine _swap.tmp +data remove storage datalib:engine _swap +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/swap_var ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/team/add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/add.mcfunction new file mode 100644 index 0000000..33838a7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/add.mcfunction @@ -0,0 +1,2 @@ +$team join $(team) $(player) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"team/add ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(team)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/team/count.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/count.mcfunction new file mode 100644 index 0000000..9bcd14b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/count.mcfunction @@ -0,0 +1,4 @@ +scoreboard players set $team_cnt dl.tmp 0 +$execute as @a[team=$(team)] run scoreboard players add $team_cnt dl.tmp 1 +execute store result storage datalib:output result int 1 run scoreboard players get $team_cnt dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"team/count ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(team)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/team/create.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/create.mcfunction new file mode 100644 index 0000000..5f14a7c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/create.mcfunction @@ -0,0 +1,3 @@ +$team add $(team) +$data modify storage datalib:engine teams.$(team) set value {color:"white",friendly_fire:"true",see_friendly_invisibles:"false"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"team/create ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(team)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/team/delete.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/delete.mcfunction new file mode 100644 index 0000000..ededd30 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/delete.mcfunction @@ -0,0 +1,3 @@ +$team remove $(team) +$data remove storage datalib:engine teams.$(team) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"team/delete ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(team)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/team/has.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/has.mcfunction new file mode 100644 index 0000000..e4482bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/has.mcfunction @@ -0,0 +1,3 @@ +data modify storage datalib:output result set value 0b +$execute if entity @a[name=$(player),team=$(team)] run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"team/has ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(team)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/team/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/list.mcfunction new file mode 100644 index 0000000..16411fb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/list.mcfunction @@ -0,0 +1,3 @@ +tellraw @a[tag=datalib.debug] {"text":"[Team] -- Registered Teams --","color":"aqua"} +tellraw @a[tag=datalib.debug] {"nbt":"teams","storage":"datalib:engine","interpret":false,"color":"white"} +tellraw @a[tag=datalib.debug] {"text":"[Team] ---------------------","color":"aqua"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/team/remove.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/remove.mcfunction new file mode 100644 index 0000000..c9fdf09 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/remove.mcfunction @@ -0,0 +1,2 @@ +$team leave $(player) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"team/remove ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/team/set_color.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/set_color.mcfunction new file mode 100644 index 0000000..963b1a9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/set_color.mcfunction @@ -0,0 +1,3 @@ +$team modify $(team) color $(color) +$data modify storage datalib:engine teams.$(team).color set value "$(color)" +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"team/set_color ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(team)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/team/set_friendly_fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/set_friendly_fire.mcfunction new file mode 100644 index 0000000..859d44c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/team/set_friendly_fire.mcfunction @@ -0,0 +1,3 @@ +$team modify $(team) friendlyFire $(value) +$data modify storage datalib:engine teams.$(team).friendly_fire set value "$(value)" +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"team/set_friendly_fire ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(team)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/player/transfer_var.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/player/transfer_var.mcfunction new file mode 100644 index 0000000..5889233 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/player/transfer_var.mcfunction @@ -0,0 +1,11 @@ +$execute store result score $tr_f dl.tmp run data get storage datalib:engine players.$(from).$(key) +$scoreboard players set $tr_a dl.tmp $(amount) +scoreboard players operation $tr_f dl.tmp -= $tr_a dl.tmp +$execute store result storage datalib:engine players.$(from).$(key) int 1 run scoreboard players get $tr_f dl.tmp + +$execute store result score $tr_t dl.tmp run data get storage datalib:engine players.$(to).$(key) +scoreboard players operation $tr_t dl.tmp += $tr_a dl.tmp +$execute store result storage datalib:engine players.$(to).$(key) int 1 run scoreboard players get $tr_t dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $tr_t dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"player/transfer_var ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/reset_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/reset_all.mcfunction new file mode 100644 index 0000000..d320e62 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/reset_all.mcfunction @@ -0,0 +1,15 @@ +function datalib:core/disable/main + +function datalib:systems/hook/unbind_all +function datalib:api/trigger/unbind_all +function datalib:api/wand/unregister_all +data remove storage datalib:engine interaction_binds +data remove storage datalib:engine fibers +data remove storage datalib:engine perm_triggers +data remove storage datalib:engine perm_trigger_names +data remove storage datalib:engine log_display +data remove storage datalib:engine schedules +data remove storage datalib:engine global.tick +data remove storage datalib:engine global.epoch + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"Engine disabled. ","color":"red"},{"text":"Restart → ","color":"#555555"},{"text":"/reload","color":"aqua","bold":true,"underlined":true,"click_event":{"action":"run_command","command":"/trigger dl.reload set 1"}}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/start_progressbar.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/start_progressbar.mcfunction new file mode 100644 index 0000000..7ca9ba3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/start_progressbar.mcfunction @@ -0,0 +1,7 @@ +data modify storage datalib:engine pb_obj set value "health" +data modify storage datalib:engine pb_max set value 20 +data modify storage datalib:engine pb_label set value "Health" + +execute if data storage datalib:input pb_obj run data modify storage datalib:engine pb_obj set from storage datalib:input pb_obj +execute if data storage datalib:input max run data modify storage datalib:engine pb_max set from storage datalib:input max +execute if data storage datalib:input label run data modify storage datalib:engine pb_label set from storage datalib:input label \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/stop_progressbar.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/stop_progressbar.mcfunction new file mode 100644 index 0000000..2c2d28a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/stop_progressbar.mcfunction @@ -0,0 +1,7 @@ +data remove storage datalib:engine pb_obj +data remove storage datalib:engine pb_max +data remove storage datalib:engine pb_label + +title @a actionbar {"text":""} + +tellraw @a {"text":"[Progress Bar] Disabled.","color":"yellow"} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/color/init.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/color/init.mcfunction new file mode 100644 index 0000000..1ce9431 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/color/init.mcfunction @@ -0,0 +1,30 @@ +# datalib:systems/color/init +# Called during engine load. Populates the named color lookup table +# at datalib:engine color._names for O(1) validate checks. +# Also initializes the color namespace in storage. + +execute unless data storage datalib:engine color run data modify storage datalib:engine color set value {} +execute unless data storage datalib:engine color.palette run data modify storage datalib:engine color.palette set value {} +execute unless data storage datalib:engine color.gradients run data modify storage datalib:engine color.gradients set value {} + +# Named color allowlist — 16 Minecraft text colors +data modify storage datalib:engine color._names set value {\ + black:1b,\ + dark_blue:1b,\ + dark_green:1b,\ + dark_aqua:1b,\ + dark_red:1b,\ + dark_purple:1b,\ + gold:1b,\ + gray:1b,\ + dark_gray:1b,\ + blue:1b,\ + green:1b,\ + aqua:1b,\ + red:1b,\ + light_purple:1b,\ + yellow:1b,\ + white:1b\ +} + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"color/init ","color":"aqua"},{"text":"named color table loaded (16 entries)","color":"gray"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/actions/cycle_version.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/actions/cycle_version.mcfunction new file mode 100644 index 0000000..62ee047 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/actions/cycle_version.mcfunction @@ -0,0 +1,22 @@ +# datalib:systems/dev_settings/actions/cycle_version +# Cycles datalib:engine dev_settings.version through: 116 → 117 → 118 → 119 → 120 → 116 +# Refreshes the book immediately after cycle. + +execute unless function datalib:debug/tools/utils/perm_check run return 0 + +execute store result score #dl.dsv dl.tmp run data get storage datalib:engine dev_settings.version + +execute if score #dl.dsv dl.tmp matches 116 run data modify storage datalib:engine dev_settings.version set value 117 +execute if score #dl.dsv dl.tmp matches 117 run data modify storage datalib:engine dev_settings.version set value 118 +execute if score #dl.dsv dl.tmp matches 118 run data modify storage datalib:engine dev_settings.version set value 119 +execute if score #dl.dsv dl.tmp matches 119 run data modify storage datalib:engine dev_settings.version set value 120 +execute if score #dl.dsv dl.tmp matches 120 run data modify storage datalib:engine dev_settings.version set value 116 +# Fallback: reset to 120 +execute unless score #dl.dsv dl.tmp matches 116..120 run data modify storage datalib:engine dev_settings.version set value 120 + +scoreboard players reset #dl.dsv dl.tmp + +# Refresh book +function datalib:systems/dev_settings/display/open + +tellraw @s ["",{"text":"[Dev Settings] ","color":"gold"},{"text":"Version updated.","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/actions/toggle_devmode.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/actions/toggle_devmode.mcfunction new file mode 100644 index 0000000..0d72045 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/actions/toggle_devmode.mcfunction @@ -0,0 +1,17 @@ +# datalib:systems/dev_settings/actions/toggle_devmode +# Toggles datalib:engine dev_settings.devMode between 0b and 1b. +# Refreshes the book immediately after toggle. + +execute unless function datalib:debug/tools/utils/perm_check run return 0 + +execute store result score #dl.dsm dl.tmp run data get storage datalib:engine dev_settings.devMode + +execute if score #dl.dsm dl.tmp matches 1 run data modify storage datalib:engine dev_settings.devMode set value 0b +execute unless score #dl.dsm dl.tmp matches 1 run data modify storage datalib:engine dev_settings.devMode set value 1b + +scoreboard players reset #dl.dsm dl.tmp + +# Refresh book +function datalib:systems/dev_settings/display/open + +tellraw @s ["",{"text":"[Dev Settings] ","color":"gold"},{"text":"devMode updated.","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/close.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/close.mcfunction new file mode 100644 index 0000000..2344dd0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/close.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/dev_settings/display/close +# Removes the Dev Settings book from the player's inventory and resets cursor. + +clear @s minecraft:written_book[custom_data={datalib_dev_settings:1b}] +scoreboard players reset @s dl.dev_pg2 +playsound minecraft:entity.player.attack.nodamage player @s ~ ~ ~ 1 0.3 +tellraw @s ["",{"text":"[Dev Settings] ","color":"gold"},{"text":"Book closed.","color":"gray"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/nav/left.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/nav/left.mcfunction new file mode 100644 index 0000000..62558c1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/nav/left.mcfunction @@ -0,0 +1,10 @@ +# datalib:systems/dev_settings/display/nav/left +# Moves the page-2 cursor left and refreshes the book. + +execute unless function datalib:debug/tools/utils/perm_check run return 0 + +scoreboard players remove @s dl.dev_pg2 1 +# Wrap: if cursor went below 1, reset to 2 (last slot) +execute if score @s dl.dev_pg2 matches ..0 run scoreboard players set @s dl.dev_pg2 2 + +function datalib:systems/dev_settings/display/open diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/nav/right.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/nav/right.mcfunction new file mode 100644 index 0000000..f40ba41 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/nav/right.mcfunction @@ -0,0 +1,10 @@ +# datalib:systems/dev_settings/display/nav/right +# Moves the page-2 cursor right and refreshes the book. + +execute unless function datalib:debug/tools/utils/perm_check run return 0 + +scoreboard players add @s dl.dev_pg2 1 +# Wrap: if cursor went above 2, reset to 1 (first slot) +execute if score @s dl.dev_pg2 matches 3.. run scoreboard players set @s dl.dev_pg2 1 + +function datalib:systems/dev_settings/display/open diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/open.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/open.mcfunction new file mode 100644 index 0000000..7e0301c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/open.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/dev_settings/display/open +# Clears any existing settings book then dispatches to the correct page function. +# Page functions give the book directly via item replace — no storage intermediate. + +execute unless function datalib:debug/tools/utils/perm_check run return 0 + +# Reset cursor if out of range +execute unless score @s dl.dev_pg2 matches 1..2 run scoreboard players set @s dl.dev_pg2 1 + +# Clear existing book +clear @s minecraft:written_book[custom_data={datalib_dev_settings:1b}] + +# Dispatch — each page function does its own item replace +execute as @s[scores={dl.dev_pg2=1}] run function datalib:systems/dev_settings/display/page/version +execute as @s[scores={dl.dev_pg2=2}] run function datalib:systems/dev_settings/display/page/devmode diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/page/devmode.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/page/devmode.mcfunction new file mode 100644 index 0000000..fb65464 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/page/devmode.mcfunction @@ -0,0 +1,10 @@ +# datalib:systems/dev_settings/display/page/devmode +# devMode toggle page — single page, all components in {"text":"","extra":[...]}. + +execute store result score #dl.dsm dl.tmp run data get storage datalib:engine dev_settings.devMode + +execute if score #dl.dsm dl.tmp matches 1 run item replace entity @s weapon.mainhand with minecraft:written_book[minecraft:written_book_content={author:"",title:"",pages:[{"text":"","extra":[{"text":" -","bold":true},{"text":"Dev Settings","color":"gold","bold":true},{"text":"-","bold":true},{"text":"\n\n\n"},{"text":"Toggle Type:"},{"text":"\n"},{"text":" - "},{"text":"[Misc]","color":"light_purple"},{"text":"\n\n\n\n"},{"text":"Misc Settings:"},{"text":"\n"},{"text":" \u25c4 ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/left"}},{"text":"[devMode]","color":"#2DD158","hover_event":{"action":"show_text","value":[{"text":"Status: Enabled"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/actions/toggle_devmode"}},{"text":" \u25ba ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/right"}},{"text":"\n\n\n\n"},{"text":" "},{"text":"[Close]","color":"red","hover_event":{"action":"show_text","value":[{"text":"Delete Book"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/close"}}]}]},minecraft:custom_data={datalib_dev_settings:1b},minecraft:item_name={"text":"Dev Settings","italic":false,"color":"light_purple"},minecraft:lore=[{"text":"dataLib","italic":false,"color":"#00AAAA"}]] + +execute unless score #dl.dsm dl.tmp matches 1 run item replace entity @s weapon.mainhand with minecraft:written_book[minecraft:written_book_content={author:"",title:"",pages:[{"text":"","extra":[{"text":" -","bold":true},{"text":"Dev Settings","color":"gold","bold":true},{"text":"-","bold":true},{"text":"\n\n\n"},{"text":"Toggle Type:"},{"text":"\n"},{"text":" - "},{"text":"[Misc]","color":"light_purple"},{"text":"\n\n\n\n"},{"text":"Misc Settings:"},{"text":"\n"},{"text":" \u25c4 ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/left"}},{"text":"[devMode]","color":"#D12D60","hover_event":{"action":"show_text","value":[{"text":"Status: Disabled"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/actions/toggle_devmode"}},{"text":" \u25ba ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/right"}},{"text":"\n\n\n\n"},{"text":" "},{"text":"[Close]","color":"red","hover_event":{"action":"show_text","value":[{"text":"Delete Book"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/close"}}]}]},minecraft:custom_data={datalib_dev_settings:1b},minecraft:item_name={"text":"Dev Settings","italic":false,"color":"light_purple"},minecraft:lore=[{"text":"dataLib","italic":false,"color":"#00AAAA"}]] + +scoreboard players reset #dl.dsm dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/page/version.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/page/version.mcfunction new file mode 100644 index 0000000..1395e96 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/display/page/version.mcfunction @@ -0,0 +1,18 @@ +# datalib:systems/dev_settings/display/page/version + +execute store result score #dl.dsv dl.tmp run data get storage datalib:engine dev_settings.version + +execute if score #dl.dsv dl.tmp matches 116 run item replace entity @s weapon.mainhand with minecraft:written_book[minecraft:written_book_content={author:"",title:"",pages:[{"text":"","extra":[{"text":" -","bold":true},{"text":"Dev Settings","color":"gold","bold":true},{"text":"-","bold":true},{"text":"\n\n\n"},{"text":"Toggle Type:"},{"text":"\n"},{"text":" - "},{"text":"[Misc]","color":"light_purple"},{"text":"\n\n\n\n"},{"text":"Misc Settings:"},{"text":"\n"},{"text":" \u25c4 ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/left"}},{"text":"[Version]","color":"#1d1dc4","hover_event":{"action":"show_text","value":[{"text":"Current: 1.16"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/actions/cycle_version"}},{"text":" \u25ba ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/right"}},{"text":"\n\n\n\n"},{"text":" "},{"text":"[Close]","color":"red","hover_event":{"action":"show_text","value":[{"text":"Delete Book"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/close"}}]}]},minecraft:custom_data={datalib_dev_settings:1b},minecraft:item_name={"text":"Dev Settings","italic":false,"color":"light_purple"},minecraft:lore=[{"text":"dataLib","italic":false,"color":"#00AAAA"}]] + +execute if score #dl.dsv dl.tmp matches 117 run item replace entity @s weapon.mainhand with minecraft:written_book[minecraft:written_book_content={author:"",title:"",pages:[{"text":"","extra":[{"text":" -","bold":true},{"text":"Dev Settings","color":"gold","bold":true},{"text":"-","bold":true},{"text":"\n\n\n"},{"text":"Toggle Type:"},{"text":"\n"},{"text":" - "},{"text":"[Misc]","color":"light_purple"},{"text":"\n\n\n\n"},{"text":"Misc Settings:"},{"text":"\n"},{"text":" \u25c4 ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/left"}},{"text":"[Version]","color":"#1d1dc4","hover_event":{"action":"show_text","value":[{"text":"Current: 1.17"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/actions/cycle_version"}},{"text":" \u25ba ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/right"}},{"text":"\n\n\n\n"},{"text":" "},{"text":"[Close]","color":"red","hover_event":{"action":"show_text","value":[{"text":"Delete Book"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/close"}}]}]},minecraft:custom_data={datalib_dev_settings:1b},minecraft:item_name={"text":"Dev Settings","italic":false,"color":"light_purple"},minecraft:lore=[{"text":"dataLib","italic":false,"color":"#00AAAA"}]] + +execute if score #dl.dsv dl.tmp matches 118 run item replace entity @s weapon.mainhand with minecraft:written_book[minecraft:written_book_content={author:"",title:"",pages:[{"text":"","extra":[{"text":" -","bold":true},{"text":"Dev Settings","color":"gold","bold":true},{"text":"-","bold":true},{"text":"\n\n\n"},{"text":"Toggle Type:"},{"text":"\n"},{"text":" - "},{"text":"[Misc]","color":"light_purple"},{"text":"\n\n\n\n"},{"text":"Misc Settings:"},{"text":"\n"},{"text":" \u25c4 ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/left"}},{"text":"[Version]","color":"#1d1dc4","hover_event":{"action":"show_text","value":[{"text":"Current: 1.18"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/actions/cycle_version"}},{"text":" \u25ba ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/right"}},{"text":"\n\n\n\n"},{"text":" "},{"text":"[Close]","color":"red","hover_event":{"action":"show_text","value":[{"text":"Delete Book"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/close"}}]}]},minecraft:custom_data={datalib_dev_settings:1b},minecraft:item_name={"text":"Dev Settings","italic":false,"color":"light_purple"},minecraft:lore=[{"text":"dataLib","italic":false,"color":"#00AAAA"}]] + +execute if score #dl.dsv dl.tmp matches 119 run item replace entity @s weapon.mainhand with minecraft:written_book[minecraft:written_book_content={author:"",title:"",pages:[{"text":"","extra":[{"text":" -","bold":true},{"text":"Dev Settings","color":"gold","bold":true},{"text":"-","bold":true},{"text":"\n\n\n"},{"text":"Toggle Type:"},{"text":"\n"},{"text":" - "},{"text":"[Misc]","color":"light_purple"},{"text":"\n\n\n\n"},{"text":"Misc Settings:"},{"text":"\n"},{"text":" \u25c4 ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/left"}},{"text":"[Version]","color":"#1d1dc4","hover_event":{"action":"show_text","value":[{"text":"Current: 1.19"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/actions/cycle_version"}},{"text":" \u25ba ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/right"}},{"text":"\n\n\n\n"},{"text":" "},{"text":"[Close]","color":"red","hover_event":{"action":"show_text","value":[{"text":"Delete Book"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/close"}}]}]},minecraft:custom_data={datalib_dev_settings:1b},minecraft:item_name={"text":"Dev Settings","italic":false,"color":"light_purple"},minecraft:lore=[{"text":"dataLib","italic":false,"color":"#00AAAA"}]] + +execute if score #dl.dsv dl.tmp matches 120 run item replace entity @s weapon.mainhand with minecraft:written_book[minecraft:written_book_content={author:"",title:"",pages:[{"text":"","extra":[{"text":" -","bold":true},{"text":"Dev Settings","color":"gold","bold":true},{"text":"-","bold":true},{"text":"\n\n\n"},{"text":"Toggle Type:"},{"text":"\n"},{"text":" - "},{"text":"[Misc]","color":"light_purple"},{"text":"\n\n\n\n"},{"text":"Misc Settings:"},{"text":"\n"},{"text":" \u25c4 ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/left"}},{"text":"[Version]","color":"#1d1dc4","hover_event":{"action":"show_text","value":[{"text":"Current: 1.20"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/actions/cycle_version"}},{"text":" \u25ba ","color":"dark_aqua","hover_event":{"action":"show_text","value":[{"text":" "}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/nav/right"}},{"text":"\n\n\n\n"},{"text":" "},{"text":"[Close]","color":"red","hover_event":{"action":"show_text","value":[{"text":"Delete Book"}]},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/close"}}]}]},minecraft:custom_data={datalib_dev_settings:1b},minecraft:item_name={"text":"Dev Settings","italic":false,"color":"light_purple"},minecraft:lore=[{"text":"dataLib","italic":false,"color":"#00AAAA"}]] + +execute unless score #dl.dsv dl.tmp matches 116..120 run data modify storage datalib:engine dev_settings.version set value 120 +execute unless score #dl.dsv dl.tmp matches 116..120 run function datalib:systems/dev_settings/display/page/version + +scoreboard players reset #dl.dsv dl.tmp \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/menu.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/menu.mcfunction new file mode 100644 index 0000000..d6eae50 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/menu.mcfunction @@ -0,0 +1,13 @@ +# datalib:systems/dev_settings/menu +# Dev Settings panel — part of #datalib:admin/menu. +# Displays a written book GUI with devMode toggle and version selector. +# Requires: dl.perm_level >= security.admin_min_level + +execute unless function datalib:debug/tools/utils/perm_check run return 0 + +# Header separator +tellraw @s ["",{"text":"─── Dev Settings ────────────────────","color":"#FFAA00","bold":true}] + +# Inline quick-status line in chat, then offer book +tellraw @s ["",{"text":" devMode ","color":"gray"},{"storage":"datalib:engine","nbt":"dev_settings.devMode","color":"gold"},{"text":" version ","color":"gray"},{"storage":"datalib:engine","nbt":"dev_settings.version","color":"aqua"}] +tellraw @s ["",{"text":" "},{"text":"[Open Book]","color":"light_purple","hover_event":{"action":"show_text","value":"Opens the interactive Dev Settings book"},"click_event":{"action":"run_command","command":"/function datalib:systems/dev_settings/display/open"}}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/other/toggle_admin_mode.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/other/toggle_admin_mode.mcfunction new file mode 100644 index 0000000..cc913e5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/dev_settings/other/toggle_admin_mode.mcfunction @@ -0,0 +1,3 @@ +execute if data storage datalib:engine {dev_settings:{devMode:1b}} run tag @s add datalib.admin + +execute if data storage datalib:engine {dev_settings:{devMode:0b}} run tag @s remove datalib.admin diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/any.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/any.mcfunction new file mode 100644 index 0000000..36335d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/any.mcfunction @@ -0,0 +1,34 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/flag/any +# Checks whether ANY of two flags is set. +# Returns 1b if at least one of key_a or key_b is set, 0b otherwise. +# For three or more flags, chain calls or use flag/get on each. +# +# INPUT : $(key_a) → first flag key +# $(key_b) → second flag key +# OUTPUT: datalib:output result → 1b if either flag set, 0b if neither +# datalib:output result_a → 1b if key_a set, 0b otherwise +# datalib:output result_b → 1b if key_b set, 0b otherwise +# +# EXAMPLE: +# function datalib:systems/flag/any {key_a:"pvp_enabled",key_b:"war_active"} +# → datalib:output result = 1b (if either is set) +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output result_a set value 0b +data modify storage datalib:output result_b set value 0b +data modify storage datalib:output result set value 0b + +scoreboard players set #fany_a dl.tmp 0 +scoreboard players set #fany_b dl.tmp 0 + +$execute if data storage datalib:engine flags.$(key_a) run scoreboard players set #fany_a dl.tmp 1 +$execute if data storage datalib:engine flags.$(key_b) run scoreboard players set #fany_b dl.tmp 1 + +execute if score #fany_a dl.tmp matches 1 run data modify storage datalib:output result_a set value 1b +execute if score #fany_b dl.tmp matches 1 run data modify storage datalib:output result_b set value 1b + +scoreboard players operation #fany_a dl.tmp += #fany_b dl.tmp +execute if score #fany_a dl.tmp matches 1.. run data modify storage datalib:output result set value 1b + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"flag/any ","color":"aqua"},{"text":"$(key_a)|$(key_b) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/clear.mcfunction new file mode 100644 index 0000000..a5e3c05 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/clear.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine flags.$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"flag/clear ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/copy.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/copy.mcfunction new file mode 100644 index 0000000..e110c78 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/copy.mcfunction @@ -0,0 +1,23 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/flag/copy +# Copies a flag value from one key to another. +# If the source flag is set, the destination is set. +# If the source flag is absent, the destination is removed. +# Input : $(from) → source flag key +# $(to) → destination flag key +# Output: datalib:output result → 1b if copied (flag was set), 0b if cleared +# +# Example: +# data modify storage datalib:input from set value "feature_a" +# data modify storage datalib:input to set value "feature_a_backup" +# function datalib:systems/flag/copy with storage datalib:input {} +# ───────────────────────────────────────────────────────────────── + +# Default: clear destination +data modify storage datalib:output result set value 0b + +$execute if data storage datalib:engine flags.$(from) run data modify storage datalib:engine flags.$(to) set value 1b +$execute if data storage datalib:engine flags.$(from) run data modify storage datalib:output result set value 1b +$execute unless data storage datalib:engine flags.$(from) run data remove storage datalib:engine flags.$(to) + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"flag/copy ","color":"aqua"},{"text":"$(from) → $(to) ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/get.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/get.mcfunction new file mode 100644 index 0000000..56c99c8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/get.mcfunction @@ -0,0 +1,3 @@ +data modify storage datalib:output result set value 0b +$execute if data storage datalib:engine flags.$(key) run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"flag/get ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/get_or_default.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/get_or_default.mcfunction new file mode 100644 index 0000000..8fd8346 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/get_or_default.mcfunction @@ -0,0 +1,17 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/flag/get_or_default +# Returns 1b if the flag is set, otherwise stores the given default. +# Input : $(key) → flag key +# $(default) → value to store if flag is absent (0b or 1b) +# Output: datalib:output result → 1b if set, $(default) if absent +# +# Example: +# data modify storage datalib:input key set value "my_feature" +# data modify storage datalib:input default set value 0b +# function datalib:systems/flag/get_or_default with storage datalib:input {} +# # datalib:output result = 0b (if flag not set) +# ───────────────────────────────────────────────────────────────── + +$data modify storage datalib:output result set value $(default) +$execute if data storage datalib:engine flags.$(key) run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"flag/get_or_default ","color":"aqua"},{"text":"$(key) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/list.mcfunction new file mode 100644 index 0000000..b49b484 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/list.mcfunction @@ -0,0 +1,4 @@ +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Global Flags ","color":"aqua"},{"text":"━━━━━━━━━━━","color":"#555555"}] +execute if data storage datalib:engine flags run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"flags","interpret":false,"color":"white"}] +execute unless data storage datalib:engine flags run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"text":"(no active flags)","color":"gray","italic":true}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/list_systems.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/list_systems.mcfunction new file mode 100644 index 0000000..e992f97 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/list_systems.mcfunction @@ -0,0 +1,3 @@ +# datalib:systems/flag/list_systems — List all tick channels with their current config +tellraw @s [{"text":"[DL] Tick Channels","color":"gold","bold":true}] +tellraw @s {"storage":"datalib:engine","nbt":"tick.channels","color":"yellow"} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/set.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/set.mcfunction new file mode 100644 index 0000000..eadb65b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/set.mcfunction @@ -0,0 +1,2 @@ +$data modify storage datalib:engine flags.$(key) set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"flag/set ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/set_if.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/set_if.mcfunction new file mode 100644 index 0000000..5e7bd04 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/set_if.mcfunction @@ -0,0 +1,20 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/flag/set_if +# Sets a flag only when a scoreboard condition is met. +# Condition: score of $(score_holder) in $(objective) must match $(matches). +# Uses scoreboard matches syntax (e.g. "1", "1..5", "..0", "2.."). +# +# INPUT : $(key) → flag key +# $(score_holder) → scoreboard entity/fake-player name +# $(objective) → scoreboard objective +# $(matches) → match range string (e.g. "1..") +# OUTPUT: datalib:output result → 1b if flag was set, 0b if condition not met +# +# EXAMPLE: +# function datalib:systems/flag/set_if {key:"night_mode",score_holder:"$time",objective:"dl.tmp",matches:"..12000"} +# ───────────────────────────────────────────────────────────────── + +data modify storage datalib:output result set value 0b +$execute if score $(score_holder) $(objective) matches $(matches) run data modify storage datalib:engine flags.$(key) set value 1b +$execute if score $(score_holder) $(objective) matches $(matches) run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"flag/set_if ","color":"aqua"},{"text":"$(key) if $(score_holder) $(objective) matches $(matches) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/toggle.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/toggle.mcfunction new file mode 100644 index 0000000..4e4a9d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/toggle.mcfunction @@ -0,0 +1,9 @@ +scoreboard players set $ftgl dl.tmp 0 +$execute if data storage datalib:engine flags.$(key) run scoreboard players set $ftgl dl.tmp 1 + +$execute if score $ftgl dl.tmp matches 1 run data remove storage datalib:engine flags.$(key) +execute if score $ftgl dl.tmp matches 1 run data modify storage datalib:output result set value 0b + +$execute if score $ftgl dl.tmp matches 0 run data modify storage datalib:engine flags.$(key) set value 1b +execute if score $ftgl dl.tmp matches 0 run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"flag/toggle ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/toggle_system.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/toggle_system.mcfunction new file mode 100644 index 0000000..3ce8a96 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/toggle_system.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/flag/toggle_system — Toggle a built-in tick channel on/off +# Usage: function datalib:systems/flag/toggle_system {system:"time"} +# Valid systems: time | queue | player | hud | admin +# Delegates to datalib:core/tick/channel/enable|disable internally. + +$data modify storage datalib:tick_work _ftgl set from storage datalib:engine tick.channels[{id:"$(system)_systems"}] +function datalib:systems/flag/toggle_system/exec with storage datalib:tick_work _ftgl \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/toggle_system/exec.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/toggle_system/exec.mcfunction new file mode 100644 index 0000000..23dadba --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/toggle_system/exec.mcfunction @@ -0,0 +1,3 @@ +# [MACRO] Internal exec for flag/toggle_system +$execute if data storage datalib:tick_work _ftgl{enabled:1b} run function datalib:core/tick/channel/disable {id:"$(id)"} +$execute if data storage datalib:tick_work _ftgl{enabled:0b} run function datalib:core/tick/channel/enable {id:"$(id)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/unset.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/unset.mcfunction new file mode 100644 index 0000000..9b23832 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/flag/unset.mcfunction @@ -0,0 +1,2 @@ +$data remove storage datalib:engine flags.$(key) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"flag/unset ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(key)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/as_nearby_player.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/as_nearby_player.mcfunction new file mode 100644 index 0000000..8fae93b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/as_nearby_player.mcfunction @@ -0,0 +1,3 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +$execute as @a[distance=..$(distance),limit=1,sort=nearest] at @s run function #datalib:internal/dispatch +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo/as_nearby_player ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/in_region.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/in_region.mcfunction new file mode 100644 index 0000000..675f354 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/in_region.mcfunction @@ -0,0 +1,34 @@ +data modify storage datalib:output result set value 0b + +$scoreboard players set $rgn_x dl.tmp $(x) +$scoreboard players set $rgn_y dl.tmp $(y) +$scoreboard players set $rgn_z dl.tmp $(z) +$scoreboard players set $rgn_x1 dl.tmp $(x1) +$scoreboard players set $rgn_y1 dl.tmp $(y1) +$scoreboard players set $rgn_z1 dl.tmp $(z1) +$scoreboard players set $rgn_x2 dl.tmp $(x2) +$scoreboard players set $rgn_y2 dl.tmp $(y2) +$scoreboard players set $rgn_z2 dl.tmp $(z2) + +# min/max normalization +execute if score $rgn_x1 dl.tmp > $rgn_x2 dl.tmp run scoreboard players operation $rgn_t dl.tmp = $rgn_x1 dl.tmp +execute if score $rgn_x1 dl.tmp > $rgn_x2 dl.tmp run scoreboard players operation $rgn_x1 dl.tmp = $rgn_x2 dl.tmp +execute if score $rgn_t dl.tmp > $rgn_x2 dl.tmp run scoreboard players operation $rgn_x2 dl.tmp = $rgn_t dl.tmp + +execute if score $rgn_y1 dl.tmp > $rgn_y2 dl.tmp run scoreboard players operation $rgn_t dl.tmp = $rgn_y1 dl.tmp +execute if score $rgn_y1 dl.tmp > $rgn_y2 dl.tmp run scoreboard players operation $rgn_y1 dl.tmp = $rgn_y2 dl.tmp +execute if score $rgn_t dl.tmp > $rgn_y2 dl.tmp run scoreboard players operation $rgn_y2 dl.tmp = $rgn_t dl.tmp + +execute if score $rgn_z1 dl.tmp > $rgn_z2 dl.tmp run scoreboard players operation $rgn_t dl.tmp = $rgn_z1 dl.tmp +execute if score $rgn_z1 dl.tmp > $rgn_z2 dl.tmp run scoreboard players operation $rgn_z1 dl.tmp = $rgn_z2 dl.tmp +execute if score $rgn_t dl.tmp > $rgn_z2 dl.tmp run scoreboard players operation $rgn_z2 dl.tmp = $rgn_t dl.tmp + +execute if score $rgn_x dl.tmp < $rgn_x1 dl.tmp run return 0 +execute if score $rgn_x dl.tmp > $rgn_x2 dl.tmp run return 0 +execute if score $rgn_y dl.tmp < $rgn_y1 dl.tmp run return 0 +execute if score $rgn_y dl.tmp > $rgn_y2 dl.tmp run return 0 +execute if score $rgn_z dl.tmp < $rgn_z1 dl.tmp run return 0 +execute if score $rgn_z dl.tmp > $rgn_z2 dl.tmp run return 0 + +data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo/in_region ","color":"aqua"},{"text":"($(x),$(y),$(z)) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/in_region_unless.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/in_region_unless.mcfunction new file mode 100644 index 0000000..9b16c4b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/in_region_unless.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] unless entity @s[x=$(x),y=$(y),z=$(z),dx=$(dx),dy=$(dy),dz=$(dz)] run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo/in_region_unless ","color":"aqua"},{"text":"$(player)","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/in_sphere.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/in_sphere.mcfunction new file mode 100644 index 0000000..b0a22ea --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/in_sphere.mcfunction @@ -0,0 +1,36 @@ +data modify storage datalib:output result set value 0b + +$scoreboard players set $sph_dx dl.tmp $(x) +$scoreboard players set $sph_cx dl.tmp $(cx) +scoreboard players operation $sph_dx dl.tmp -= $sph_cx dl.tmp + +$scoreboard players set $sph_dy dl.tmp $(y) +$scoreboard players set $sph_cy dl.tmp $(cy) +scoreboard players operation $sph_dy dl.tmp -= $sph_cy dl.tmp + +$scoreboard players set $sph_dz dl.tmp $(z) +$scoreboard players set $sph_cz dl.tmp $(cz) +scoreboard players operation $sph_dz dl.tmp -= $sph_cz dl.tmp + +# Overflow prevention (max 26754 per axis) +execute if score $sph_dx dl.tmp matches 26755.. run scoreboard players set $sph_dx dl.tmp 26754 +execute if score $sph_dx dl.tmp matches ..-26755 run scoreboard players set $sph_dx dl.tmp -26754 +execute if score $sph_dy dl.tmp matches 26755.. run scoreboard players set $sph_dy dl.tmp 26754 +execute if score $sph_dy dl.tmp matches ..-26755 run scoreboard players set $sph_dy dl.tmp -26754 +execute if score $sph_dz dl.tmp matches 26755.. run scoreboard players set $sph_dz dl.tmp 26754 +execute if score $sph_dz dl.tmp matches ..-26755 run scoreboard players set $sph_dz dl.tmp -26754 + +scoreboard players operation $sph_dx dl.tmp *= $sph_dx dl.tmp +scoreboard players operation $sph_dy dl.tmp *= $sph_dy dl.tmp +scoreboard players operation $sph_dz dl.tmp *= $sph_dz dl.tmp + +scoreboard players operation $sph_dsq dl.tmp = $sph_dx dl.tmp +scoreboard players operation $sph_dsq dl.tmp += $sph_dy dl.tmp +scoreboard players operation $sph_dsq dl.tmp += $sph_dz dl.tmp +execute store result storage datalib:output dist_sq int 1 run scoreboard players get $sph_dsq dl.tmp + +$scoreboard players set $sph_r dl.tmp $(r) +scoreboard players operation $sph_r dl.tmp *= $sph_r dl.tmp + +execute if score $sph_dsq dl.tmp <= $sph_r dl.tmp run data modify storage datalib:output result set value 1b +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo/in_sphere ","color":"aqua"},{"text":"r=$(r) dsq=","color":"gray"},{"score":{"name":"$sph_dsq","objective":"dl.tmp"},"color":"yellow"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/near_entity.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/near_entity.mcfunction new file mode 100644 index 0000000..d5b058f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/near_entity.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] at @s if entity @e[type=$(type),tag=$(tag),distance=..$(distance),limit=1] run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo/near_entity ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/near_entity_unless.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/near_entity_unless.mcfunction new file mode 100644 index 0000000..c4214de --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/near_entity_unless.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] at @s unless entity @e[type=$(type),tag=$(tag),distance=..$(distance),limit=1] run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"geo/near_entity_unless ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/region_watch/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/region_watch/list.mcfunction new file mode 100644 index 0000000..1d92d7e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/region_watch/list.mcfunction @@ -0,0 +1,9 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/geo/region_watch/list +# Shows all registered regions to debug players. +# ───────────────────────────────────────────────────────────────── + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Region Watches ━━━━━━━━━━━━━━","color":"aqua"}] +execute if data storage datalib:engine region_watches run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"region_watches","interpret":false,"color":"yellow"}] +execute unless data storage datalib:engine region_watches run tellraw @a[tag=datalib.debug] ["",{"text":" (no regions registered)","color":"gray","italic":true}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/region_watch/register.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/region_watch/register.mcfunction new file mode 100644 index 0000000..aaa842d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/region_watch/register.mcfunction @@ -0,0 +1,28 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/geo/region_watch/register +# Defines a persistent region. Player position is checked every tick; +# on_enter fires when a player enters, on_leave when they leave. +# Depends on the hook/internal/tick_scan loop. +# +# INPUT (storage datalib:input): +# id → region id (unique string) +# x1, y1, z1, x2, y2, z2 → corner coordinates (integer) +# on_enter → (optional) entry function — as the triggering player +# on_leave → (optional) leave function — as the triggering player +# on_enter_cmd → (optional) entry command +# on_leave_cmd → (optional) leave command +# +# EXAMPLE: +# data modify storage datalib:input id set value "spawn_safe" +# data modify storage datalib:input x1 set value 0 +# data modify storage datalib:input y1 set value 60 +# data modify storage datalib:input z1 set value 0 +# data modify storage datalib:input x2 set value 100 +# data modify storage datalib:input y2 set value 120 +# data modify storage datalib:input z2 set value 100 +# data modify storage datalib:input on_enter set value "mypack:zones/safe_enter" +# data modify storage datalib:input on_leave set value "mypack:zones/safe_leave" +# function datalib:systems/geo/region_watch/register +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/geo/region_watch/register_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/region_watch/unregister.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/region_watch/unregister.mcfunction new file mode 100644 index 0000000..8feb544 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/geo/region_watch/unregister.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/geo/region_watch/unregister +# Deletes a registered region. Player state scores are not cleared +# (automatically skipped in the next tick_scan loop). +# +# INPUT (storage datalib:input): +# id → region id +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/geo/region_watch/unregister_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/bind.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/bind.mcfunction new file mode 100644 index 0000000..934e04f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/bind.mcfunction @@ -0,0 +1,18 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/hook/bind +# Binds a function or command to a specific event. +# Multiple binds can be added to the same event. +# +# INPUT (storage datalib:input): +# event → event name: "player_join" | "player_death" | "player_respawn" +# "level_up" | "block_place" | "block_break" | "item_use" +# func → (optional) function to run — as the triggering player +# cmd → (optional) command to run — used if func is absent +# +# EXAMPLE: +# data modify storage datalib:input event set value "player_death" +# data modify storage datalib:input func set value "mypack:on_death" +# function datalib:systems/hook/bind +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/hook/bind_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/list.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/list.mcfunction new file mode 100644 index 0000000..5206cf3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/list.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/hook/list +# Shows all registered hook binds to datalib.debug players. + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Hook Binds ","color":"aqua"},{"text":"━━━━━━━━━━━━━━━━","color":"#555555"}] +execute unless data storage datalib:engine hook_binds[0] run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"text":"(no hook binds)","color":"gray","italic":true}] +execute if data storage datalib:engine hook_binds[0] run tellraw @a[tag=datalib.debug] ["",{"text":" ","color":"#555555"},{"storage":"datalib:engine","nbt":"hook_binds","interpret":false,"color":"yellow"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_advancement_fire.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_advancement_fire.mcfunction new file mode 100644 index 0000000..e4adb49 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_advancement_fire.mcfunction @@ -0,0 +1,23 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/hook/on_advancement_fire +# Called from the user's own advancement reward function. +# Fires an event in "advancement:" format. +# +# INPUT (storage datalib:input): +# advancement → advancement ID (e.g. "story/mine_stone") +# +# KULLANIM: +# 1) Define a function as the reward in your advancement JSON: +# "rewards": {"function": "mypack:advancements/mine_stone"} +# +# 2) Inside that function: +# data modify storage datalib:input advancement set value "story/mine_stone" +# function datalib:systems/hook/on_advancement_fire +# +# 3) Hook bind: +# data modify storage datalib:input event set value "advancement:story/mine_stone" +# data modify storage datalib:input func set value "mypack:on_first_mine" +# function datalib:systems/hook/bind +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/hook/on_advancement_fire with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_break_block.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_break_block.mcfunction new file mode 100644 index 0000000..bfec203 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_break_block.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/hook/on_break_block +# Reward: break_block advancement (item_durability_changed, delta max -1) +# Feeds both break_block and using_item hooks. +advancement revoke @s only datalib:systems/hook/break_block +scoreboard players add @s datalib.hook_tool_used 1 +scoreboard players add @s datalib.hook_using_item 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_dimension_change.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_dimension_change.mcfunction new file mode 100644 index 0000000..5bd749b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_dimension_change.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/hook/on_dimension_change +# Advancement reward: runs when changed_dimension triggers. +# @s = player who changed dimension + +advancement revoke @s only datalib:systems/hook/dimension_change +scoreboard players add @s datalib.hook_dim_changed 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_drop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_drop.mcfunction new file mode 100644 index 0000000..4c9f603 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_drop.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/hook/on_drop +# Binds a function or command to the "drop_item" event. +# +# INPUT (storage datalib:input): +# func → function to run when a player drops an item +# cmd → command to run when a player drops an item (used if func is absent) +# +# USAGE: +# data modify storage datalib:input func set value "mypack:on_drop" +# function datalib:systems/hook/on_drop +# -- or -- +# data modify storage datalib:input cmd set value "say An item was dropped" +# function datalib:systems/hook/on_drop +data modify storage datalib:input event set value "drop_item" +function datalib:systems/hook/bind diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_eat.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_eat.mcfunction new file mode 100644 index 0000000..445fb51 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_eat.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/hook/on_eat +# Binds a function or command to the "eat" event. +# +# INPUT (storage datalib:input): +# func → function to run when a player eats +# cmd → command to run when a player eats (used if func is absent) +# +# USAGE: +# data modify storage datalib:input func set value "mypack:on_eat" +# function datalib:systems/hook/on_eat +# -- or -- +# data modify storage datalib:input cmd set value "say I ate something" +# function datalib:systems/hook/on_eat +data modify storage datalib:input event set value "eat" +function datalib:systems/hook/bind diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_entity_kill.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_entity_kill.mcfunction new file mode 100644 index 0000000..a375591 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_entity_kill.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/on_entity_kill +# Reward: entity_kill advancement (player_killed_entity trigger) +advancement revoke @s only datalib:systems/hook/entity_kill +scoreboard players add @s datalib.hook_entity_killed 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_fish_caught.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_fish_caught.mcfunction new file mode 100644 index 0000000..7faa145 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_fish_caught.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/hook/on_fish_caught +# Binds a function or command to the "fish_caught" event. +# +# INPUT (storage datalib:input): +# func → function to run when a player catches a fish +# cmd → command to run when a player catches a fish (used if func is absent) +# +# USAGE: +# data modify storage datalib:input func set value "mypack:on_fish" +# function datalib:systems/hook/on_fish_caught +# -- or -- +# data modify storage datalib:input cmd set value "give @s salmon 1" +# function datalib:systems/hook/on_fish_caught +data modify storage datalib:input event set value "fish_caught" +function datalib:systems/hook/bind diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_hero_of_the_village.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_hero_of_the_village.mcfunction new file mode 100644 index 0000000..14a16d5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_hero_of_the_village.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/on_hero_of_the_village +# Reward: hero_of_the_village advancement (raid victory) +advancement revoke @s only datalib:systems/hook/hero_of_the_village +scoreboard players add @s datalib.hook_hero_of_the_village 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_interact_anvil.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_interact_anvil.mcfunction new file mode 100644 index 0000000..f778c1d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_interact_anvil.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/on_interact_anvil +# Advancement reward: runs when player interacts with an anvil +advancement revoke @s only datalib:systems/hook/interact_anvil +function datalib:core/internal/systems/hook/on_interact_anvil diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_interact_shulker_box.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_interact_shulker_box.mcfunction new file mode 100644 index 0000000..dcd2a69 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_interact_shulker_box.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/on_interact_shulker_box +# Advancement reward: runs when player opens a shulker box +advancement revoke @s only datalib:systems/hook/interact_shulker_box +function datalib:core/internal/systems/hook/on_interact_shulker_box diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_item_use.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_item_use.mcfunction new file mode 100644 index 0000000..555a924 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_item_use.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/on_item_use +# Reward: item_use advancement (using_item trigger) +advancement revoke @s only datalib:systems/hook/item_use +scoreboard players add @s datalib.hook_item_used 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_jump.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_jump.mcfunction new file mode 100644 index 0000000..372fae0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_jump.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/hook/on_jump +# Binds a function or command to the "jumped" event. +# +# INPUT (storage datalib:input): +# func → function to run when a player jumps +# cmd → command to run when a player jumps (used if func is absent) +# +# USAGE: +# data modify storage datalib:input func set value "mypack:on_jump" +# function datalib:systems/hook/on_jump +# -- or -- +# data modify storage datalib:input cmd set value "say A player jumped" +# function datalib:systems/hook/on_jump +data modify storage datalib:input event set value "jumped" +function datalib:systems/hook/bind diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_killed_by_arrow.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_killed_by_arrow.mcfunction new file mode 100644 index 0000000..7529ad7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_killed_by_arrow.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/hook/on_killed_by_arrow +# Reward: killed_by_arrow advancement (entity_killed_player + killing_blow arrow) +advancement revoke @s only datalib:systems/hook/killed_by_arrow +scoreboard players add @s datalib.hook_killed_by_arrow 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_open_chest.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_open_chest.mcfunction new file mode 100644 index 0000000..00e9665 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_open_chest.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/hook/on_open_chest +# Binds a function or command to the "open_chest" event. +# +# INPUT (storage datalib:input): +# func → function to run when a player opens a chest +# cmd → command to run when a player opens a chest (used if func is absent) +# +# USAGE: +# data modify storage datalib:input func set value "mypack:on_open_chest" +# function datalib:systems/hook/on_open_chest +# -- or -- +# data modify storage datalib:input cmd set value "say A chest was opened" +# function datalib:systems/hook/on_open_chest +data modify storage datalib:input event set value "open_chest" +function datalib:systems/hook/bind diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_placed_block.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_placed_block.mcfunction new file mode 100644 index 0000000..ff228b3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_placed_block.mcfunction @@ -0,0 +1,8 @@ +# Advancement reward: runs when placed_block triggers +# Find the newly placed block in the direction the player is looking + +# Revoke advancement (so it can trigger again) +advancement revoke @s only datalib:systems/hook/placed_block + +# Start raycast: begin from player's eyes +execute as @s at @s anchored eyes run function datalib:systems/hook/raycast/start diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_target_hit.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_target_hit.mcfunction new file mode 100644 index 0000000..1b528ad --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_target_hit.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/hook/on_target_hit +# Binds a function or command to the "target_hit" event. +# +# INPUT (storage datalib:input): +# func → function to run when a player hits a target block +# cmd → command to run when a player hits a target block (used if func is absent) +# +# USAGE: +# data modify storage datalib:input func set value "mypack:on_target_hit" +# function datalib:systems/hook/on_target_hit +# -- or -- +# data modify storage datalib:input cmd set value "say Target hit" +# function datalib:systems/hook/on_target_hit +data modify storage datalib:input event set value "target_hit" +function datalib:systems/hook/bind diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_trade.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_trade.mcfunction new file mode 100644 index 0000000..f090887 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_trade.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/hook/on_trade +# Advancement reward: runs when villager_trade triggers. +# @s = the trading player + +advancement revoke @s only datalib:systems/hook/trade +scoreboard players add @s datalib.hook_traded 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_using_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_using_item.mcfunction new file mode 100644 index 0000000..977523a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/on_using_item.mcfunction @@ -0,0 +1,3 @@ +# datalib:systems/hook/on_using_item +# Called by tick_scan when datalib.hook_using_item >= 1. +# Score is set by on_break_block (shared advancement). diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/raycast/found.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/raycast/found.mcfunction new file mode 100644 index 0000000..5089c8e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/raycast/found.mcfunction @@ -0,0 +1,36 @@ +# Block found! +# Increment hook.placed scoreboard +scoreboard players add @s datalib.hook_placed 1 + +# Write to hook event storage (other systems can listen) +# Save block coordinates (via marker summon from positioned context) +summon minecraft:marker ~ ~ ~ {Tags:["datalib.hook_block_pos"]} +execute store result storage datalib:hook placed.x int 1 run data get entity @e[type=minecraft:marker,tag=datalib.hook_block_pos,limit=1] Pos[0] +execute store result storage datalib:hook placed.y int 1 run data get entity @e[type=minecraft:marker,tag=datalib.hook_block_pos,limit=1] Pos[1] +execute store result storage datalib:hook placed.z int 1 run data get entity @e[type=minecraft:marker,tag=datalib.hook_block_pos,limit=1] Pos[2] +kill @e[type=minecraft:marker,tag=datalib.hook_block_pos,limit=1] + +# Record timestamp (from datalib.time scoreboard) +execute store result storage datalib:hook placed.tick int 1 run scoreboard players get #time datalib.time + +# Get player UUID and name via dataLib modules +execute as @s run function datalib:systems/uuid/from_entity +data modify storage datalib:hook placed.uuid set from storage datalib:input value + +execute as @s run function datalib:player/get_name +data modify storage datalib:hook placed.name set from storage datalib:names temp.NAME +data modify storage datalib:hook placed.uuid_array set from storage datalib:names temp.UUID + +# Set hook event flag +data modify storage datalib:hook placed.active set value 1b + +# Hook event sistemine "placed_block" event'i fire et +data modify storage datalib:engine _hook_fire_tmp set value {event:"placed_block"} +execute as @s run function datalib:core/internal/systems/hook/fire with storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_fire_tmp + +# Legacy event system support (if present) +execute if score #m_hook datalib.Flags matches 1.. run function datalib:events/fire {id:"hook.placed"} + +# Cleanup: reset counter +scoreboard players reset @s dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/raycast/loop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/raycast/loop.mcfunction new file mode 100644 index 0000000..7f21136 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/raycast/loop.mcfunction @@ -0,0 +1,15 @@ +# Raycast loop +# Check if there is a non-air block at the current position + +# Non-air block found → call found function +execute unless block ~ ~ ~ #minecraft:air run return run function datalib:systems/hook/raycast/found + +# Still air → continue +# Increment counter +scoreboard players add @s dl.tmp 1 + +# Stop if max distance reached (50 steps = 5 blocks) +execute if score @s dl.tmp matches 50.. run return 0 + +# Advance position by 0.1 blocks and try again +execute positioned ^ ^ ^0.1 run function datalib:systems/hook/raycast/loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/raycast/start.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/raycast/start.mcfunction new file mode 100644 index 0000000..2703a16 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/raycast/start.mcfunction @@ -0,0 +1,6 @@ +# Raycast start +# Reset distance counter (max 50 steps = 5 blocks) +scoreboard players set @s dl.tmp 0 + +# Start loop +function datalib:systems/hook/raycast/loop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/unbind.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/unbind.mcfunction new file mode 100644 index 0000000..74e155e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/unbind.mcfunction @@ -0,0 +1,9 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/hook/unbind +# Removes all binds belonging to a specific event. +# +# INPUT (storage datalib:input): +# event → event name +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/hook/unbind_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/unbind_all.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/unbind_all.mcfunction new file mode 100644 index 0000000..3c4e6ab --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/hook/unbind_all.mcfunction @@ -0,0 +1,6 @@ +# datalib:systems/hook/unbind_all +# Clears all hook binds. + +data modify storage datalib:engine hook_binds set value [] + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"hook/unbind_all ","color":"aqua"},{"text":"⚠ all hook binds cleared","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/add.mcfunction new file mode 100644 index 0000000..c7dd19b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/add.mcfunction @@ -0,0 +1,10 @@ +# datalib:systems/log/add (internal) +# Called by error/warn/info/debug — do not call directly. +# Appends to the 30-entry ring buffer in datalib:engine log_display. +execute unless data storage datalib:engine log_display run data modify storage datalib:engine log_display set value [] + +$data modify storage datalib:engine log_display append value {text:"[$(level)] $(message)",color:"$(color)"} + +scoreboard players add #dl.log_count dl.tmp 1 +execute if score #dl.log_count dl.tmp matches 31.. run data remove storage datalib:engine log_display[0] +execute if score #dl.log_count dl.tmp matches 31.. run scoreboard players remove #dl.log_count dl.tmp 1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/clear.mcfunction new file mode 100644 index 0000000..c28532b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/clear.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/log/clear +# Usage: /function datalib:systems/log/clear +# Clears the log buffer. +execute unless entity @s[tag=datalib.admin] run return 0 +data remove storage datalib:engine log_display +scoreboard players set #dl.log_count dl.tmp 0 +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"Log buffer cleared.","color":"gray"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/debug.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/debug.mcfunction new file mode 100644 index 0000000..02b7460 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/debug.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/log/debug +# Usage: $function datalib:systems/log/debug {message:"[System] Trace detail"} +# Level: 4 — only shown when debug mode active +$data modify storage datalib:engine _log_add_tmp.message set value "$(message)" +data modify storage datalib:engine _log_add_tmp.level set value "DEBUG" +data modify storage datalib:engine _log_add_tmp.color set value "dark_gray" +execute if score #dl.log_level dl.log_level matches 4.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/error.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/error.mcfunction new file mode 100644 index 0000000..e80c68c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/error.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/log/error +# Usage: $function datalib:systems/log/error {message:"[System] Something failed"} +# Level: 1 — always shown unless log is off +$data modify storage datalib:engine _log_add_tmp.message set value "$(message)" +data modify storage datalib:engine _log_add_tmp.level set value "ERROR" +data modify storage datalib:engine _log_add_tmp.color set value "red" +execute if score #dl.log_level dl.log_level matches 1.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/get_level.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/get_level.mcfunction new file mode 100644 index 0000000..c735314 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/get_level.mcfunction @@ -0,0 +1,4 @@ +# datalib:systems/log/get_level +# Usage: /function datalib:systems/log/get_level +# Shows the current log level. +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"Log level: ","color":"gray"},{"score":{"name":"#dl.log_level","objective":"dl.log_level"},"color":"white","bold":true},{"text":" (0=off 1=error 2=warn 3=info 4=debug)","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/info.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/info.mcfunction new file mode 100644 index 0000000..4306620 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/info.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/log/info +# Usage: $function datalib:systems/log/info {message:"[System] Something happened"} +# Level: 3 +$data modify storage datalib:engine _log_add_tmp.message set value "$(message)" +data modify storage datalib:engine _log_add_tmp.level set value "INFO" +data modify storage datalib:engine _log_add_tmp.color set value "gray" +execute if score #dl.log_level dl.log_level matches 3.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/set_level.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/set_level.mcfunction new file mode 100644 index 0000000..d5c842c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/set_level.mcfunction @@ -0,0 +1,11 @@ +# datalib:systems/log/set_level +# Usage: $function datalib:systems/log/set_level {level:3} +# Sets the active log level: +# 0 = off +# 1 = error only +# 2 = warn + error +# 3 = info + warn + error (default) +# 4 = debug (all) +execute unless entity @s[tag=datalib.admin] run return 0 +$scoreboard players set #dl.log_level dl.log_level $(level) +$tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"Log level set to ","color":"gray"},{"text":"$(level)","color":"white","bold":true}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/show.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/show.mcfunction new file mode 100644 index 0000000..cc1cee8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/show.mcfunction @@ -0,0 +1,8 @@ +execute unless data storage datalib:engine log_display[0] run tellraw @s {"text":"[Log] No entries.","color":"gray","italic":false} +execute unless data storage datalib:engine log_display[0] run return 0 + +function datalib:core/lib/input_push +data modify storage datalib:engine _felist_input set from storage datalib:engine log_display +data modify storage datalib:input func set value "datalib:core/internal/systems/log/print_entry" +function datalib:core/lib/for_each_list with storage datalib:input {} +function datalib:core/lib/input_pop diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/warn.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/warn.mcfunction new file mode 100644 index 0000000..6540818 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/log/warn.mcfunction @@ -0,0 +1,7 @@ +# datalib:systems/log/warn +# Usage: $function datalib:systems/log/warn {message:"[System] Something suspicious"} +# Level: 2 +$data modify storage datalib:engine _log_add_tmp.message set value "$(message)" +data modify storage datalib:engine _log_add_tmp.level set value "WARN" +data modify storage datalib:engine _log_add_tmp.color set value "yellow" +execute if score #dl.log_level dl.log_level matches 2.. run function datalib:systems/log/add with storage datalib:engine _log_add_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_eq.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_eq.mcfunction new file mode 100644 index 0000000..b216158 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_eq.mcfunction @@ -0,0 +1,4 @@ +$scoreboard players set $if_a dl.tmp $(a) +$scoreboard players set $if_b dl.tmp $(b) +$data modify storage datalib:engine _dispatch.func set value "$(func)" +execute if score $if_a dl.tmp = $if_b dl.tmp run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_gt.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_gt.mcfunction new file mode 100644 index 0000000..24e418c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_gt.mcfunction @@ -0,0 +1,4 @@ +$scoreboard players set $if_a dl.tmp $(a) +$scoreboard players set $if_b dl.tmp $(b) +$data modify storage datalib:engine _dispatch.func set value "$(func)" +execute if score $if_a dl.tmp > $if_b dl.tmp run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_gte.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_gte.mcfunction new file mode 100644 index 0000000..4b397f6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_gte.mcfunction @@ -0,0 +1,4 @@ +$scoreboard players set $if_a dl.tmp $(a) +$scoreboard players set $if_b dl.tmp $(b) +$data modify storage datalib:engine _dispatch.func set value "$(func)" +execute if score $if_a dl.tmp >= $if_b dl.tmp run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_lt.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_lt.mcfunction new file mode 100644 index 0000000..48fe3c9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_lt.mcfunction @@ -0,0 +1,4 @@ +$scoreboard players set $if_a dl.tmp $(a) +$scoreboard players set $if_b dl.tmp $(b) +$data modify storage datalib:engine _dispatch.func set value "$(func)" +execute if score $if_a dl.tmp < $if_b dl.tmp run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_lte.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_lte.mcfunction new file mode 100644 index 0000000..f57e24f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_lte.mcfunction @@ -0,0 +1,4 @@ +$scoreboard players set $if_a dl.tmp $(a) +$scoreboard players set $if_b dl.tmp $(b) +$data modify storage datalib:engine _dispatch.func set value "$(func)" +execute if score $if_a dl.tmp <= $if_b dl.tmp run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_not_eq.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_not_eq.mcfunction new file mode 100644 index 0000000..cd677ec --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/logic/if_not_eq.mcfunction @@ -0,0 +1,4 @@ +$scoreboard players set $if_a dl.tmp $(a) +$scoreboard players set $if_b dl.tmp $(b) +$data modify storage datalib:engine _dispatch.func set value "$(func)" +execute unless score $if_a dl.tmp = $if_b dl.tmp run function #datalib:internal/dispatch diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/abs.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/abs.mcfunction new file mode 100644 index 0000000..901e216 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/abs.mcfunction @@ -0,0 +1,4 @@ +$scoreboard players set $abs_v dl.tmp $(value) +scoreboard players set $abs_neg dl.tmp -1 +execute if score $abs_v dl.tmp matches ..-1 run scoreboard players operation $abs_v dl.tmp *= $abs_neg dl.tmp +execute store result storage datalib:output result int 1 run scoreboard players get $abs_v dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/atan2.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/atan2.mcfunction new file mode 100644 index 0000000..9cfbe07 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/atan2.mcfunction @@ -0,0 +1,185 @@ +# datalib:systems/math/atan2 [MACRO] +# Integer atan2 — returns angle in degrees × 1000 (range: -180000..180000) +# Uses octant decomposition + lookup table (same scale as sin/cos: ×1000) +# +# INPUT: $(y), $(x) — integer coordinates (scaled consistently) +# OUTPUT: datalib:output result — degrees × 1000 +# +# EXAMPLE: +# function datalib:systems/math/atan2 {y:500, x:500} +# → result = 45000 (45.000°) +# +# NOTES: +# - Both x and y zero → result = 0 +# - Result matches standard math convention (CCW from +X axis) + +$scoreboard players set $a2_y dl.tmp $(y) +$scoreboard players set $a2_x dl.tmp $(x) + +# Determine quadrant sign flags +scoreboard players set $a2_sx dl.tmp 1 +scoreboard players set $a2_sy dl.tmp 1 +execute if score $a2_x dl.tmp matches ..-1 run scoreboard players set $a2_sx dl.tmp -1 +execute if score $a2_y dl.tmp matches ..-1 run scoreboard players set $a2_sy dl.tmp -1 + +# Work in absolute values +scoreboard players set $a2_ax dl.tmp 0 +scoreboard players set $a2_ay dl.tmp 0 +execute store result score $a2_ax dl.tmp run scoreboard players get $a2_x dl.tmp +execute if score $a2_ax dl.tmp matches ..-1 run scoreboard players operation $a2_ax dl.tmp *= $a2_sx dl.tmp +execute store result score $a2_ay dl.tmp run scoreboard players get $a2_y dl.tmp +execute if score $a2_ay dl.tmp matches ..-1 run scoreboard players operation $a2_ay dl.tmp *= $a2_sy dl.tmp + +# Handle degenerate cases +execute if score $a2_ax dl.tmp matches 0 if score $a2_ay dl.tmp matches 0 run data modify storage datalib:output result set value 0 +execute if score $a2_ax dl.tmp matches 0 if score $a2_ay dl.tmp matches 0 run return 0 + +execute if score $a2_ax dl.tmp matches 0 if score $a2_sy dl.tmp matches 1 run data modify storage datalib:output result set value 90000 +execute if score $a2_ax dl.tmp matches 0 if score $a2_sy dl.tmp matches 1 run return 0 +execute if score $a2_ax dl.tmp matches 0 if score $a2_sy dl.tmp matches -1 run data modify storage datalib:output result set value -90000 +execute if score $a2_ax dl.tmp matches 0 if score $a2_sy dl.tmp matches -1 run return 0 + +execute if score $a2_ay dl.tmp matches 0 if score $a2_sx dl.tmp matches 1 run data modify storage datalib:output result set value 0 +execute if score $a2_ay dl.tmp matches 0 if score $a2_sx dl.tmp matches 1 run return 0 +execute if score $a2_ay dl.tmp matches 0 if score $a2_sx dl.tmp matches -1 run data modify storage datalib:output result set value 180000 +execute if score $a2_ay dl.tmp matches 0 if score $a2_sx dl.tmp matches -1 run return 0 + +# Compute ratio = (min/max) × 100 → 0..100 mapped to 0..45° +# Swap so we always divide smaller by larger (→ octant 0..45°) +scoreboard players set $a2_swap dl.tmp 0 +execute if score $a2_ay dl.tmp > $a2_ax dl.tmp run scoreboard players set $a2_swap dl.tmp 1 +execute if score $a2_swap dl.tmp matches 1 run scoreboard players operation $a2_ax dl.tmp >< $a2_ay dl.tmp + +# ratio = ay*100 / ax (ay ≤ ax here) +scoreboard players set $a2_100 dl.tmp 100 +scoreboard players operation $a2_ay dl.tmp *= $a2_100 dl.tmp +scoreboard players operation $a2_ay dl.tmp /= $a2_ax dl.tmp + +# Lookup table: ratio 0-100 → atan(ratio/100) × 1000 in degrees +execute if score $a2_ay dl.tmp matches 0 run scoreboard players set $a2_r dl.tmp 0 +execute if score $a2_ay dl.tmp matches 1 run scoreboard players set $a2_r dl.tmp 573 +execute if score $a2_ay dl.tmp matches 2 run scoreboard players set $a2_r dl.tmp 1146 +execute if score $a2_ay dl.tmp matches 3 run scoreboard players set $a2_r dl.tmp 1718 +execute if score $a2_ay dl.tmp matches 4 run scoreboard players set $a2_r dl.tmp 2291 +execute if score $a2_ay dl.tmp matches 5 run scoreboard players set $a2_r dl.tmp 2862 +execute if score $a2_ay dl.tmp matches 6 run scoreboard players set $a2_r dl.tmp 3433 +execute if score $a2_ay dl.tmp matches 7 run scoreboard players set $a2_r dl.tmp 4004 +execute if score $a2_ay dl.tmp matches 8 run scoreboard players set $a2_r dl.tmp 4574 +execute if score $a2_ay dl.tmp matches 9 run scoreboard players set $a2_r dl.tmp 5143 +execute if score $a2_ay dl.tmp matches 10 run scoreboard players set $a2_r dl.tmp 5711 +execute if score $a2_ay dl.tmp matches 11 run scoreboard players set $a2_r dl.tmp 6279 +execute if score $a2_ay dl.tmp matches 12 run scoreboard players set $a2_r dl.tmp 6843 +execute if score $a2_ay dl.tmp matches 13 run scoreboard players set $a2_r dl.tmp 7407 +execute if score $a2_ay dl.tmp matches 14 run scoreboard players set $a2_r dl.tmp 7969 +execute if score $a2_ay dl.tmp matches 15 run scoreboard players set $a2_r dl.tmp 8531 +execute if score $a2_ay dl.tmp matches 16 run scoreboard players set $a2_r dl.tmp 9090 +execute if score $a2_ay dl.tmp matches 17 run scoreboard players set $a2_r dl.tmp 9649 +execute if score $a2_ay dl.tmp matches 18 run scoreboard players set $a2_r dl.tmp 10205 +execute if score $a2_ay dl.tmp matches 19 run scoreboard players set $a2_r dl.tmp 10760 +execute if score $a2_ay dl.tmp matches 20 run scoreboard players set $a2_r dl.tmp 11310 +execute if score $a2_ay dl.tmp matches 21 run scoreboard players set $a2_r dl.tmp 11860 +execute if score $a2_ay dl.tmp matches 22 run scoreboard players set $a2_r dl.tmp 12407 +execute if score $a2_ay dl.tmp matches 23 run scoreboard players set $a2_r dl.tmp 12951 +execute if score $a2_ay dl.tmp matches 24 run scoreboard players set $a2_r dl.tmp 13495 +execute if score $a2_ay dl.tmp matches 25 run scoreboard players set $a2_r dl.tmp 14036 +execute if score $a2_ay dl.tmp matches 26 run scoreboard players set $a2_r dl.tmp 14574 +execute if score $a2_ay dl.tmp matches 27 run scoreboard players set $a2_r dl.tmp 15111 +execute if score $a2_ay dl.tmp matches 28 run scoreboard players set $a2_r dl.tmp 15643 +execute if score $a2_ay dl.tmp matches 29 run scoreboard players set $a2_r dl.tmp 16174 +execute if score $a2_ay dl.tmp matches 30 run scoreboard players set $a2_r dl.tmp 16699 +execute if score $a2_ay dl.tmp matches 31 run scoreboard players set $a2_r dl.tmp 17223 +execute if score $a2_ay dl.tmp matches 32 run scoreboard players set $a2_r dl.tmp 17744 +execute if score $a2_ay dl.tmp matches 33 run scoreboard players set $a2_r dl.tmp 18263 +execute if score $a2_ay dl.tmp matches 34 run scoreboard players set $a2_r dl.tmp 18778 +execute if score $a2_ay dl.tmp matches 35 run scoreboard players set $a2_r dl.tmp 19290 +execute if score $a2_ay dl.tmp matches 36 run scoreboard players set $a2_r dl.tmp 19799 +execute if score $a2_ay dl.tmp matches 37 run scoreboard players set $a2_r dl.tmp 20304 +execute if score $a2_ay dl.tmp matches 38 run scoreboard players set $a2_r dl.tmp 20806 +execute if score $a2_ay dl.tmp matches 39 run scoreboard players set $a2_r dl.tmp 21304 +execute if score $a2_ay dl.tmp matches 40 run scoreboard players set $a2_r dl.tmp 21801 +execute if score $a2_ay dl.tmp matches 41 run scoreboard players set $a2_r dl.tmp 22292 +execute if score $a2_ay dl.tmp matches 42 run scoreboard players set $a2_r dl.tmp 22782 +execute if score $a2_ay dl.tmp matches 43 run scoreboard players set $a2_r dl.tmp 23268 +execute if score $a2_ay dl.tmp matches 44 run scoreboard players set $a2_r dl.tmp 23749 +execute if score $a2_ay dl.tmp matches 45 run scoreboard players set $a2_r dl.tmp 24228 +execute if score $a2_ay dl.tmp matches 46 run scoreboard players set $a2_r dl.tmp 24703 +execute if score $a2_ay dl.tmp matches 47 run scoreboard players set $a2_r dl.tmp 25174 +execute if score $a2_ay dl.tmp matches 48 run scoreboard players set $a2_r dl.tmp 25642 +execute if score $a2_ay dl.tmp matches 49 run scoreboard players set $a2_r dl.tmp 26105 +execute if score $a2_ay dl.tmp matches 50 run scoreboard players set $a2_r dl.tmp 26565 +execute if score $a2_ay dl.tmp matches 51 run scoreboard players set $a2_r dl.tmp 27021 +execute if score $a2_ay dl.tmp matches 52 run scoreboard players set $a2_r dl.tmp 27473 +execute if score $a2_ay dl.tmp matches 53 run scoreboard players set $a2_r dl.tmp 27922 +execute if score $a2_ay dl.tmp matches 54 run scoreboard players set $a2_r dl.tmp 28367 +execute if score $a2_ay dl.tmp matches 55 run scoreboard players set $a2_r dl.tmp 28808 +execute if score $a2_ay dl.tmp matches 56 run scoreboard players set $a2_r dl.tmp 29145 +execute if score $a2_ay dl.tmp matches 57 run scoreboard players set $a2_r dl.tmp 29678 +execute if score $a2_ay dl.tmp matches 58 run scoreboard players set $a2_r dl.tmp 30107 +execute if score $a2_ay dl.tmp matches 59 run scoreboard players set $a2_r dl.tmp 30531 +execute if score $a2_ay dl.tmp matches 60 run scoreboard players set $a2_r dl.tmp 30964 +execute if score $a2_ay dl.tmp matches 61 run scoreboard players set $a2_r dl.tmp 31333 +execute if score $a2_ay dl.tmp matches 62 run scoreboard players set $a2_r dl.tmp 31759 +execute if score $a2_ay dl.tmp matches 63 run scoreboard players set $a2_r dl.tmp 32175 +execute if score $a2_ay dl.tmp matches 64 run scoreboard players set $a2_r dl.tmp 32619 +execute if score $a2_ay dl.tmp matches 65 run scoreboard players set $a2_r dl.tmp 33001 +execute if score $a2_ay dl.tmp matches 66 run scoreboard players set $a2_r dl.tmp 33401 +execute if score $a2_ay dl.tmp matches 67 run scoreboard players set $a2_r dl.tmp 33801 +execute if score $a2_ay dl.tmp matches 68 run scoreboard players set $a2_r dl.tmp 34200 +execute if score $a2_ay dl.tmp matches 69 run scoreboard players set $a2_r dl.tmp 34596 +execute if score $a2_ay dl.tmp matches 70 run scoreboard players set $a2_r dl.tmp 34992 +execute if score $a2_ay dl.tmp matches 71 run scoreboard players set $a2_r dl.tmp 35384 +execute if score $a2_ay dl.tmp matches 72 run scoreboard players set $a2_r dl.tmp 35757 +execute if score $a2_ay dl.tmp matches 73 run scoreboard players set $a2_r dl.tmp 36161 +execute if score $a2_ay dl.tmp matches 74 run scoreboard players set $a2_r dl.tmp 36541 +execute if score $a2_ay dl.tmp matches 75 run scoreboard players set $a2_r dl.tmp 36920 +execute if score $a2_ay dl.tmp matches 76 run scoreboard players set $a2_r dl.tmp 37297 +execute if score $a2_ay dl.tmp matches 77 run scoreboard players set $a2_r dl.tmp 37672 +execute if score $a2_ay dl.tmp matches 78 run scoreboard players set $a2_r dl.tmp 38045 +execute if score $a2_ay dl.tmp matches 79 run scoreboard players set $a2_r dl.tmp 38416 +execute if score $a2_ay dl.tmp matches 80 run scoreboard players set $a2_r dl.tmp 38785 +execute if score $a2_ay dl.tmp matches 81 run scoreboard players set $a2_r dl.tmp 39151 +execute if score $a2_ay dl.tmp matches 82 run scoreboard players set $a2_r dl.tmp 39516 +execute if score $a2_ay dl.tmp matches 83 run scoreboard players set $a2_r dl.tmp 39878 +execute if score $a2_ay dl.tmp matches 84 run scoreboard players set $a2_r dl.tmp 40236 +execute if score $a2_ay dl.tmp matches 85 run scoreboard players set $a2_r dl.tmp 40593 +execute if score $a2_ay dl.tmp matches 86 run scoreboard players set $a2_r dl.tmp 40948 +execute if score $a2_ay dl.tmp matches 87 run scoreboard players set $a2_r dl.tmp 41301 +execute if score $a2_ay dl.tmp matches 88 run scoreboard players set $a2_r dl.tmp 41634 +execute if score $a2_ay dl.tmp matches 89 run scoreboard players set $a2_r dl.tmp 41996 +execute if score $a2_ay dl.tmp matches 90 run scoreboard players set $a2_r dl.tmp 42274 +execute if score $a2_ay dl.tmp matches 91 run scoreboard players set $a2_r dl.tmp 42620 +execute if score $a2_ay dl.tmp matches 92 run scoreboard players set $a2_r dl.tmp 42965 +execute if score $a2_ay dl.tmp matches 93 run scoreboard players set $a2_r dl.tmp 43307 +execute if score $a2_ay dl.tmp matches 94 run scoreboard players set $a2_r dl.tmp 43648 +execute if score $a2_ay dl.tmp matches 95 run scoreboard players set $a2_r dl.tmp 43565 +execute if score $a2_ay dl.tmp matches 96 run scoreboard players set $a2_r dl.tmp 44321 +execute if score $a2_ay dl.tmp matches 97 run scoreboard players set $a2_r dl.tmp 44659 +execute if score $a2_ay dl.tmp matches 98 run scoreboard players set $a2_r dl.tmp 44996 +execute if score $a2_ay dl.tmp matches 99 run scoreboard players set $a2_r dl.tmp 44731 +execute if score $a2_ay dl.tmp matches 100 run scoreboard players set $a2_r dl.tmp 45000 + +# Undo swap: if swapped, angle = 90000 - angle +execute if score $a2_swap dl.tmp matches 1 run scoreboard players set $a2_90 dl.tmp 90000 +execute if score $a2_swap dl.tmp matches 1 run scoreboard players operation $a2_90 dl.tmp -= $a2_r dl.tmp +execute if score $a2_swap dl.tmp matches 1 run scoreboard players operation $a2_r dl.tmp = $a2_90 dl.tmp + +# Apply quadrant offsets +# Q2 (x<0, y≥0): angle = 180000 - angle +execute if score $a2_sx dl.tmp matches -1 if score $a2_sy dl.tmp matches 1 run scoreboard players set $a2_180 dl.tmp 180000 +execute if score $a2_sx dl.tmp matches -1 if score $a2_sy dl.tmp matches 1 run scoreboard players operation $a2_180 dl.tmp -= $a2_r dl.tmp +execute if score $a2_sx dl.tmp matches -1 if score $a2_sy dl.tmp matches 1 run scoreboard players operation $a2_r dl.tmp = $a2_180 dl.tmp + +# Q3 (x<0, y<0): angle = -(180000 - angle) → angle - 180000 +execute if score $a2_sx dl.tmp matches -1 if score $a2_sy dl.tmp matches -1 run scoreboard players set $a2_180 dl.tmp 180000 +execute if score $a2_sx dl.tmp matches -1 if score $a2_sy dl.tmp matches -1 run scoreboard players operation $a2_180 dl.tmp -= $a2_r dl.tmp +execute if score $a2_sx dl.tmp matches -1 if score $a2_sy dl.tmp matches -1 run scoreboard players set $a2_neg dl.tmp 0 +execute if score $a2_sx dl.tmp matches -1 if score $a2_sy dl.tmp matches -1 run scoreboard players operation $a2_neg dl.tmp -= $a2_180 dl.tmp +execute if score $a2_sx dl.tmp matches -1 if score $a2_sy dl.tmp matches -1 run scoreboard players operation $a2_r dl.tmp = $a2_neg dl.tmp + +# Q4 (x≥0, y<0): angle = -angle +execute if score $a2_sx dl.tmp matches 1 if score $a2_sy dl.tmp matches -1 run scoreboard players set $a2_neg dl.tmp 0 +execute if score $a2_sx dl.tmp matches 1 if score $a2_sy dl.tmp matches -1 run scoreboard players operation $a2_neg dl.tmp -= $a2_r dl.tmp +execute if score $a2_sx dl.tmp matches 1 if score $a2_sy dl.tmp matches -1 run scoreboard players operation $a2_r dl.tmp = $a2_neg dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $a2_r dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/atan2 ","color":"aqua"},{"text":"y=$(y) x=$(x) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"},{"text":"/1000°","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/average.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/average.mcfunction new file mode 100644 index 0000000..52231e1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/average.mcfunction @@ -0,0 +1,34 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/average +# Computes the integer average of up to 8 values. +# Input : $(v0)..(v7) → integer values +# $(count) → how many values (1-8) +# Output: datalib:output result → floor(sum / count) +# +# Example: +# data modify storage datalib:input v0 set value 10 +# data modify storage datalib:input v1 set value 20 +# data modify storage datalib:input v2 set value 30 +# data modify storage datalib:input count set value 3 +# function datalib:systems/math/average with storage datalib:input {} +# # datalib:output result = 20 +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $avg_c dl.tmp $(count) + +execute if score $avg_c dl.tmp matches ..0 run data modify storage datalib:output result set value 0 +execute if score $avg_c dl.tmp matches ..0 run return 0 + +$scoreboard players set $avg_s dl.tmp $(v0) +$execute if score $avg_c dl.tmp matches 2.. run scoreboard players add $avg_s dl.tmp $(v1) +$execute if score $avg_c dl.tmp matches 3.. run scoreboard players add $avg_s dl.tmp $(v2) +$execute if score $avg_c dl.tmp matches 4.. run scoreboard players add $avg_s dl.tmp $(v3) +$execute if score $avg_c dl.tmp matches 5.. run scoreboard players add $avg_s dl.tmp $(v4) +$execute if score $avg_c dl.tmp matches 6.. run scoreboard players add $avg_s dl.tmp $(v5) +$execute if score $avg_c dl.tmp matches 7.. run scoreboard players add $avg_s dl.tmp $(v6) +$execute if score $avg_c dl.tmp matches 8.. run scoreboard players add $avg_s dl.tmp $(v7) + +scoreboard players operation $avg_s dl.tmp /= $avg_c dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $avg_s dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/average ","color":"aqua"},{"text":"count=$(count) ","color":"gray"},{"text":"→ ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/ceil_div.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/ceil_div.mcfunction new file mode 100644 index 0000000..7ecd6a5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/ceil_div.mcfunction @@ -0,0 +1,11 @@ +$scoreboard players set $cdv_a dl.tmp $(a) +$scoreboard players set $cdv_b dl.tmp $(b) + +scoreboard players operation $cdv_t dl.tmp = $cdv_b dl.tmp +scoreboard players remove $cdv_t dl.tmp 1 + +scoreboard players operation $cdv_a dl.tmp += $cdv_t dl.tmp + +scoreboard players operation $cdv_a dl.tmp /= $cdv_b dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $cdv_a dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/clamp.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/clamp.mcfunction new file mode 100644 index 0000000..c53ac02 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/clamp.mcfunction @@ -0,0 +1,8 @@ +$scoreboard players set $clamp_v dl.tmp $(value) +$scoreboard players set $clamp_lo dl.tmp $(min) +$scoreboard players set $clamp_hi dl.tmp $(max) + +execute if score $clamp_v dl.tmp < $clamp_lo dl.tmp run scoreboard players operation $clamp_v dl.tmp = $clamp_lo dl.tmp +execute if score $clamp_v dl.tmp > $clamp_hi dl.tmp run scoreboard players operation $clamp_v dl.tmp = $clamp_hi dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $clamp_v dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/cos.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/cos.mcfunction new file mode 100644 index 0000000..ade2f05 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/cos.mcfunction @@ -0,0 +1,110 @@ +# cos(x) = sin(x + 90) +$scoreboard players set $cos_d dl.tmp $(deg) +scoreboard players add $cos_d dl.tmp 90 +scoreboard players set $cos_360 dl.tmp 360 +scoreboard players operation $cos_d dl.tmp %= $cos_360 dl.tmp +execute if score $cos_d dl.tmp matches ..-1 run scoreboard players operation $cos_d dl.tmp += $cos_360 dl.tmp + +scoreboard players set $cos_nf dl.tmp 1 +execute if score $cos_d dl.tmp matches 180..359 run scoreboard players set $cos_nf dl.tmp -1 +execute if score $cos_d dl.tmp matches 180..359 run scoreboard players remove $cos_d dl.tmp 180 + +scoreboard players set $cos_180 dl.tmp 180 +execute if score $cos_d dl.tmp matches 91..179 run scoreboard players operation $cos_180 dl.tmp -= $cos_d dl.tmp +execute if score $cos_d dl.tmp matches 91..179 run scoreboard players operation $cos_d dl.tmp = $cos_180 dl.tmp + +execute if score $cos_d dl.tmp matches 0 run scoreboard players set $cos_r dl.tmp 0 +execute if score $cos_d dl.tmp matches 1 run scoreboard players set $cos_r dl.tmp 17 +execute if score $cos_d dl.tmp matches 2 run scoreboard players set $cos_r dl.tmp 35 +execute if score $cos_d dl.tmp matches 3 run scoreboard players set $cos_r dl.tmp 52 +execute if score $cos_d dl.tmp matches 4 run scoreboard players set $cos_r dl.tmp 70 +execute if score $cos_d dl.tmp matches 5 run scoreboard players set $cos_r dl.tmp 87 +execute if score $cos_d dl.tmp matches 6 run scoreboard players set $cos_r dl.tmp 105 +execute if score $cos_d dl.tmp matches 7 run scoreboard players set $cos_r dl.tmp 122 +execute if score $cos_d dl.tmp matches 8 run scoreboard players set $cos_r dl.tmp 139 +execute if score $cos_d dl.tmp matches 9 run scoreboard players set $cos_r dl.tmp 156 +execute if score $cos_d dl.tmp matches 10 run scoreboard players set $cos_r dl.tmp 174 +execute if score $cos_d dl.tmp matches 11 run scoreboard players set $cos_r dl.tmp 191 +execute if score $cos_d dl.tmp matches 12 run scoreboard players set $cos_r dl.tmp 208 +execute if score $cos_d dl.tmp matches 13 run scoreboard players set $cos_r dl.tmp 225 +execute if score $cos_d dl.tmp matches 14 run scoreboard players set $cos_r dl.tmp 242 +execute if score $cos_d dl.tmp matches 15 run scoreboard players set $cos_r dl.tmp 259 +execute if score $cos_d dl.tmp matches 16 run scoreboard players set $cos_r dl.tmp 276 +execute if score $cos_d dl.tmp matches 17 run scoreboard players set $cos_r dl.tmp 292 +execute if score $cos_d dl.tmp matches 18 run scoreboard players set $cos_r dl.tmp 309 +execute if score $cos_d dl.tmp matches 19 run scoreboard players set $cos_r dl.tmp 326 +execute if score $cos_d dl.tmp matches 20 run scoreboard players set $cos_r dl.tmp 342 +execute if score $cos_d dl.tmp matches 21 run scoreboard players set $cos_r dl.tmp 358 +execute if score $cos_d dl.tmp matches 22 run scoreboard players set $cos_r dl.tmp 375 +execute if score $cos_d dl.tmp matches 23 run scoreboard players set $cos_r dl.tmp 391 +execute if score $cos_d dl.tmp matches 24 run scoreboard players set $cos_r dl.tmp 407 +execute if score $cos_d dl.tmp matches 25 run scoreboard players set $cos_r dl.tmp 423 +execute if score $cos_d dl.tmp matches 26 run scoreboard players set $cos_r dl.tmp 438 +execute if score $cos_d dl.tmp matches 27 run scoreboard players set $cos_r dl.tmp 454 +execute if score $cos_d dl.tmp matches 28 run scoreboard players set $cos_r dl.tmp 469 +execute if score $cos_d dl.tmp matches 29 run scoreboard players set $cos_r dl.tmp 485 +execute if score $cos_d dl.tmp matches 30 run scoreboard players set $cos_r dl.tmp 500 +execute if score $cos_d dl.tmp matches 31 run scoreboard players set $cos_r dl.tmp 515 +execute if score $cos_d dl.tmp matches 32 run scoreboard players set $cos_r dl.tmp 530 +execute if score $cos_d dl.tmp matches 33 run scoreboard players set $cos_r dl.tmp 545 +execute if score $cos_d dl.tmp matches 34 run scoreboard players set $cos_r dl.tmp 559 +execute if score $cos_d dl.tmp matches 35 run scoreboard players set $cos_r dl.tmp 574 +execute if score $cos_d dl.tmp matches 36 run scoreboard players set $cos_r dl.tmp 588 +execute if score $cos_d dl.tmp matches 37 run scoreboard players set $cos_r dl.tmp 602 +execute if score $cos_d dl.tmp matches 38 run scoreboard players set $cos_r dl.tmp 616 +execute if score $cos_d dl.tmp matches 39 run scoreboard players set $cos_r dl.tmp 629 +execute if score $cos_d dl.tmp matches 40 run scoreboard players set $cos_r dl.tmp 643 +execute if score $cos_d dl.tmp matches 41 run scoreboard players set $cos_r dl.tmp 656 +execute if score $cos_d dl.tmp matches 42 run scoreboard players set $cos_r dl.tmp 669 +execute if score $cos_d dl.tmp matches 43 run scoreboard players set $cos_r dl.tmp 682 +execute if score $cos_d dl.tmp matches 44 run scoreboard players set $cos_r dl.tmp 695 +execute if score $cos_d dl.tmp matches 45 run scoreboard players set $cos_r dl.tmp 707 +execute if score $cos_d dl.tmp matches 46 run scoreboard players set $cos_r dl.tmp 719 +execute if score $cos_d dl.tmp matches 47 run scoreboard players set $cos_r dl.tmp 731 +execute if score $cos_d dl.tmp matches 48 run scoreboard players set $cos_r dl.tmp 743 +execute if score $cos_d dl.tmp matches 49 run scoreboard players set $cos_r dl.tmp 755 +execute if score $cos_d dl.tmp matches 50 run scoreboard players set $cos_r dl.tmp 766 +execute if score $cos_d dl.tmp matches 51 run scoreboard players set $cos_r dl.tmp 777 +execute if score $cos_d dl.tmp matches 52 run scoreboard players set $cos_r dl.tmp 788 +execute if score $cos_d dl.tmp matches 53 run scoreboard players set $cos_r dl.tmp 799 +execute if score $cos_d dl.tmp matches 54 run scoreboard players set $cos_r dl.tmp 809 +execute if score $cos_d dl.tmp matches 55 run scoreboard players set $cos_r dl.tmp 819 +execute if score $cos_d dl.tmp matches 56 run scoreboard players set $cos_r dl.tmp 829 +execute if score $cos_d dl.tmp matches 57 run scoreboard players set $cos_r dl.tmp 839 +execute if score $cos_d dl.tmp matches 58 run scoreboard players set $cos_r dl.tmp 848 +execute if score $cos_d dl.tmp matches 59 run scoreboard players set $cos_r dl.tmp 857 +execute if score $cos_d dl.tmp matches 60 run scoreboard players set $cos_r dl.tmp 866 +execute if score $cos_d dl.tmp matches 61 run scoreboard players set $cos_r dl.tmp 875 +execute if score $cos_d dl.tmp matches 62 run scoreboard players set $cos_r dl.tmp 883 +execute if score $cos_d dl.tmp matches 63 run scoreboard players set $cos_r dl.tmp 891 +execute if score $cos_d dl.tmp matches 64 run scoreboard players set $cos_r dl.tmp 899 +execute if score $cos_d dl.tmp matches 65 run scoreboard players set $cos_r dl.tmp 906 +execute if score $cos_d dl.tmp matches 66 run scoreboard players set $cos_r dl.tmp 914 +execute if score $cos_d dl.tmp matches 67 run scoreboard players set $cos_r dl.tmp 921 +execute if score $cos_d dl.tmp matches 68 run scoreboard players set $cos_r dl.tmp 927 +execute if score $cos_d dl.tmp matches 69 run scoreboard players set $cos_r dl.tmp 934 +execute if score $cos_d dl.tmp matches 70 run scoreboard players set $cos_r dl.tmp 940 +execute if score $cos_d dl.tmp matches 71 run scoreboard players set $cos_r dl.tmp 946 +execute if score $cos_d dl.tmp matches 72 run scoreboard players set $cos_r dl.tmp 951 +execute if score $cos_d dl.tmp matches 73 run scoreboard players set $cos_r dl.tmp 956 +execute if score $cos_d dl.tmp matches 74 run scoreboard players set $cos_r dl.tmp 961 +execute if score $cos_d dl.tmp matches 75 run scoreboard players set $cos_r dl.tmp 966 +execute if score $cos_d dl.tmp matches 76 run scoreboard players set $cos_r dl.tmp 970 +execute if score $cos_d dl.tmp matches 77 run scoreboard players set $cos_r dl.tmp 974 +execute if score $cos_d dl.tmp matches 78 run scoreboard players set $cos_r dl.tmp 978 +execute if score $cos_d dl.tmp matches 79 run scoreboard players set $cos_r dl.tmp 982 +execute if score $cos_d dl.tmp matches 80 run scoreboard players set $cos_r dl.tmp 985 +execute if score $cos_d dl.tmp matches 81 run scoreboard players set $cos_r dl.tmp 988 +execute if score $cos_d dl.tmp matches 82 run scoreboard players set $cos_r dl.tmp 990 +execute if score $cos_d dl.tmp matches 83 run scoreboard players set $cos_r dl.tmp 993 +execute if score $cos_d dl.tmp matches 84 run scoreboard players set $cos_r dl.tmp 995 +execute if score $cos_d dl.tmp matches 85 run scoreboard players set $cos_r dl.tmp 996 +execute if score $cos_d dl.tmp matches 86 run scoreboard players set $cos_r dl.tmp 998 +execute if score $cos_d dl.tmp matches 87 run scoreboard players set $cos_r dl.tmp 999 +execute if score $cos_d dl.tmp matches 88 run scoreboard players set $cos_r dl.tmp 999 +execute if score $cos_d dl.tmp matches 89 run scoreboard players set $cos_r dl.tmp 1000 +execute if score $cos_d dl.tmp matches 90 run scoreboard players set $cos_r dl.tmp 1000 + +scoreboard players operation $cos_r dl.tmp *= $cos_nf dl.tmp +execute store result storage datalib:output result int 1 run scoreboard players get $cos_r dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/cos ","color":"aqua"},{"text":"deg=$(deg) ","color":"gray"},{"text":"→ ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"},{"text":"/1000","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/distance2d.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/distance2d.mcfunction new file mode 100644 index 0000000..8a9a233 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/distance2d.mcfunction @@ -0,0 +1,33 @@ +$scoreboard players set $d2d_x1 dl.tmp $(x1) +$scoreboard players set $d2d_z1 dl.tmp $(z1) +$scoreboard players set $d2d_x2 dl.tmp $(x2) +$scoreboard players set $d2d_z2 dl.tmp $(z2) + +scoreboard players operation $d2d_dx dl.tmp = $d2d_x2 dl.tmp +scoreboard players operation $d2d_dx dl.tmp -= $d2d_x1 dl.tmp + +scoreboard players operation $d2d_dz dl.tmp = $d2d_z2 dl.tmp +scoreboard players operation $d2d_dz dl.tmp -= $d2d_z1 dl.tmp + +# Overflow prevention: 2 * 32767² = 2,147,354,578 ≤ INT_MAX (2,147,483,647) +execute if score $d2d_dx dl.tmp matches 32768.. run scoreboard players set $d2d_dx dl.tmp 32767 +execute if score $d2d_dx dl.tmp matches ..-32768 run scoreboard players set $d2d_dx dl.tmp -32767 +execute if score $d2d_dz dl.tmp matches 32768.. run scoreboard players set $d2d_dz dl.tmp 32767 +execute if score $d2d_dz dl.tmp matches ..-32768 run scoreboard players set $d2d_dz dl.tmp -32767 + +scoreboard players operation $d2d_dx dl.tmp *= $d2d_dx dl.tmp +scoreboard players operation $d2d_dz dl.tmp *= $d2d_dz dl.tmp +scoreboard players operation $d2d_sq dl.tmp = $d2d_dx dl.tmp +scoreboard players operation $d2d_sq dl.tmp += $d2d_dz dl.tmp + +execute if score $d2d_sq dl.tmp matches 0 run data modify storage datalib:output result set value 0 +execute if score $d2d_sq dl.tmp matches 0 run return 0 + +scoreboard players operation $sqrt_n dl.tmp = $d2d_sq dl.tmp +scoreboard players set $sqrt_lo dl.tmp 0 +scoreboard players operation $sqrt_hi dl.tmp = $sqrt_n dl.tmp +execute if score $sqrt_hi dl.tmp matches 46342.. run scoreboard players set $sqrt_hi dl.tmp 46341 +scoreboard players set $sqrt_itr dl.tmp 16 +function datalib:core/internal/systems/math/sqrt_step + +execute store result storage datalib:output result int 1 run scoreboard players get $sqrt_lo dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/distance3d.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/distance3d.mcfunction new file mode 100644 index 0000000..a833f6f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/distance3d.mcfunction @@ -0,0 +1,42 @@ +$scoreboard players set $d3d_x1 dl.tmp $(x1) +$scoreboard players set $d3d_y1 dl.tmp $(y1) +$scoreboard players set $d3d_z1 dl.tmp $(z1) +$scoreboard players set $d3d_x2 dl.tmp $(x2) +$scoreboard players set $d3d_y2 dl.tmp $(y2) +$scoreboard players set $d3d_z2 dl.tmp $(z2) + +scoreboard players operation $d3d_dx dl.tmp = $d3d_x2 dl.tmp +scoreboard players operation $d3d_dx dl.tmp -= $d3d_x1 dl.tmp + +scoreboard players operation $d3d_dy dl.tmp = $d3d_y2 dl.tmp +scoreboard players operation $d3d_dy dl.tmp -= $d3d_y1 dl.tmp + +scoreboard players operation $d3d_dz dl.tmp = $d3d_z2 dl.tmp +scoreboard players operation $d3d_dz dl.tmp -= $d3d_z1 dl.tmp + +# Overflow prevention: 3 * 26754² = 2,147,329,548 ≤ INT_MAX (2,147,483,647) +execute if score $d3d_dx dl.tmp matches 26755.. run scoreboard players set $d3d_dx dl.tmp 26754 +execute if score $d3d_dx dl.tmp matches ..-26755 run scoreboard players set $d3d_dx dl.tmp -26754 +execute if score $d3d_dy dl.tmp matches 26755.. run scoreboard players set $d3d_dy dl.tmp 26754 +execute if score $d3d_dy dl.tmp matches ..-26755 run scoreboard players set $d3d_dy dl.tmp -26754 +execute if score $d3d_dz dl.tmp matches 26755.. run scoreboard players set $d3d_dz dl.tmp 26754 +execute if score $d3d_dz dl.tmp matches ..-26755 run scoreboard players set $d3d_dz dl.tmp -26754 + +scoreboard players operation $d3d_dx dl.tmp *= $d3d_dx dl.tmp +scoreboard players operation $d3d_dy dl.tmp *= $d3d_dy dl.tmp +scoreboard players operation $d3d_dz dl.tmp *= $d3d_dz dl.tmp +scoreboard players operation $d3d_sq dl.tmp = $d3d_dx dl.tmp +scoreboard players operation $d3d_sq dl.tmp += $d3d_dy dl.tmp +scoreboard players operation $d3d_sq dl.tmp += $d3d_dz dl.tmp + +execute if score $d3d_sq dl.tmp matches 0 run data modify storage datalib:output result set value 0 +execute if score $d3d_sq dl.tmp matches 0 run return 0 + +scoreboard players operation $sqrt_n dl.tmp = $d3d_sq dl.tmp +scoreboard players set $sqrt_lo dl.tmp 0 +scoreboard players operation $sqrt_hi dl.tmp = $sqrt_n dl.tmp +execute if score $sqrt_hi dl.tmp matches 46342.. run scoreboard players set $sqrt_hi dl.tmp 46341 +scoreboard players set $sqrt_itr dl.tmp 16 +function datalib:core/internal/systems/math/sqrt_step + +execute store result storage datalib:output result int 1 run scoreboard players get $sqrt_lo dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/divmod.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/divmod.mcfunction new file mode 100644 index 0000000..63f9e38 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/divmod.mcfunction @@ -0,0 +1,16 @@ +$scoreboard players set $dvm_v dl.tmp $(value) +$scoreboard players set $dvm_d dl.tmp $(divisor) + +execute if score $dvm_d dl.tmp matches ..0 run data modify storage datalib:output quotient set value 0 +execute if score $dvm_d dl.tmp matches ..0 run data modify storage datalib:output remainder set value 0 +execute if score $dvm_d dl.tmp matches ..0 run return 0 + +scoreboard players operation $dvm_q dl.tmp = $dvm_v dl.tmp +scoreboard players operation $dvm_q dl.tmp /= $dvm_d dl.tmp +execute store result storage datalib:output quotient int 1 run scoreboard players get $dvm_q dl.tmp + +scoreboard players operation $dvm_v dl.tmp %= $dvm_d dl.tmp +execute if score $dvm_v dl.tmp matches ..-1 run scoreboard players operation $dvm_v dl.tmp += $dvm_d dl.tmp +execute store result storage datalib:output remainder int 1 run scoreboard players get $dvm_v dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/divmod ","color":"aqua"},{"text":"($(value)/$(divisor))","color":"gray"},{"text":" → ","color":"#555555"},{"text":"q=","color":"gray"},{"storage":"datalib:output","nbt":"quotient","color":"green"},{"text":" r=","color":"gray"},{"storage":"datalib:output","nbt":"remainder","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/factorial.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/factorial.mcfunction new file mode 100644 index 0000000..90e54bf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/factorial.mcfunction @@ -0,0 +1,44 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/factorial +# Computes n! for integer n in range 0–12. +# Values outside this range are clamped: +# n < 0 → result = 0 (undefined) +# n > 12 → result = 0 (would overflow INT32) +# +# Input : $(n) → non-negative integer +# Output: datalib:output result → n! +# +# Lookup table approach — avoids recursion overhead and is safe +# against scoreboard overflow (12! = 479001600 < 2147483647). +# +# Example: +# function datalib:systems/math/factorial {n:5} +# # datalib:output result = 120 +# function datalib:systems/math/factorial {n:0} +# # datalib:output result = 1 +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $fact_n dl.tmp $(n) + +# Out-of-range guard +execute if score $fact_n dl.tmp matches ..-1 run data modify storage datalib:output result set value 0 +execute if score $fact_n dl.tmp matches ..-1 run return 0 +execute if score $fact_n dl.tmp matches 13.. run data modify storage datalib:output result set value 0 +execute if score $fact_n dl.tmp matches 13.. run return 0 + +# Lookup table 0! – 12! +execute if score $fact_n dl.tmp matches 0 run data modify storage datalib:output result set value 1 +execute if score $fact_n dl.tmp matches 1 run data modify storage datalib:output result set value 1 +execute if score $fact_n dl.tmp matches 2 run data modify storage datalib:output result set value 2 +execute if score $fact_n dl.tmp matches 3 run data modify storage datalib:output result set value 6 +execute if score $fact_n dl.tmp matches 4 run data modify storage datalib:output result set value 24 +execute if score $fact_n dl.tmp matches 5 run data modify storage datalib:output result set value 120 +execute if score $fact_n dl.tmp matches 6 run data modify storage datalib:output result set value 720 +execute if score $fact_n dl.tmp matches 7 run data modify storage datalib:output result set value 5040 +execute if score $fact_n dl.tmp matches 8 run data modify storage datalib:output result set value 40320 +execute if score $fact_n dl.tmp matches 9 run data modify storage datalib:output result set value 362880 +execute if score $fact_n dl.tmp matches 10 run data modify storage datalib:output result set value 3628800 +execute if score $fact_n dl.tmp matches 11 run data modify storage datalib:output result set value 39916800 +execute if score $fact_n dl.tmp matches 12 run data modify storage datalib:output result set value 479001600 + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/factorial ","color":"aqua"},{"text":"$(n)! = ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/gcd.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/gcd.mcfunction new file mode 100644 index 0000000..5c757ae --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/gcd.mcfunction @@ -0,0 +1,30 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/gcd +# Computes GCD using the Euclidean algorithm. +# Input : $(a), $(b) → integers (may be negative) +# Output: datalib:output result → GCD(|a|, |b|) +# +# Example: +# data modify storage datalib:input a set value 48 +# data modify storage datalib:input b set value 18 +# function datalib:systems/math/gcd with storage datalib:input {} +# # datalib:output result = 6 +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $gcd_a dl.tmp $(a) +$scoreboard players set $gcd_b dl.tmp $(b) + +# Take absolute value +scoreboard players set $gcd_neg dl.tmp -1 +execute if score $gcd_a dl.tmp matches ..-1 run scoreboard players operation $gcd_a dl.tmp *= $gcd_neg dl.tmp +execute if score $gcd_b dl.tmp matches ..-1 run scoreboard players operation $gcd_b dl.tmp *= $gcd_neg dl.tmp + +# b=0 → result is a +execute if score $gcd_b dl.tmp matches 0 run execute store result storage datalib:output result int 1 run scoreboard players get $gcd_a dl.tmp +execute if score $gcd_b dl.tmp matches 0 run return 0 + +# Euclidean loop (inner function) +function datalib:core/internal/systems/math/gcd_loop + +execute store result storage datalib:output result int 1 run scoreboard players get $gcd_a dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/gcd ","color":"aqua"},{"text":"($(a),$(b)) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/is_between.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/is_between.mcfunction new file mode 100644 index 0000000..e50a470 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/is_between.mcfunction @@ -0,0 +1,23 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/is_between +# Checks if value is in the inclusive range [min, max]. +# Input : $(value), $(min), $(max) +# Output: datalib:output result → 1b (true) or 0b (false) +# +# Example: +# data modify storage datalib:input value set value 15 +# data modify storage datalib:input min set value 10 +# data modify storage datalib:input max set value 20 +# function datalib:systems/math/is_between with storage datalib:input {} +# # datalib:output result = 1b +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $ib_v dl.tmp $(value) +$scoreboard players set $ib_lo dl.tmp $(min) +$scoreboard players set $ib_hi dl.tmp $(max) + +data modify storage datalib:output result set value 0b + +execute if score $ib_v dl.tmp >= $ib_lo dl.tmp run execute if score $ib_v dl.tmp <= $ib_hi dl.tmp run data modify storage datalib:output result set value 1b + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/is_between ","color":"aqua"},{"text":"$(value) in [$(min),$(max)] → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/lcm.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/lcm.mcfunction new file mode 100644 index 0000000..29e4b2a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/lcm.mcfunction @@ -0,0 +1,39 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/lcm +# EKOK (LCM) hesaplar: lcm(a,b) = |a*b| / gcd(a,b) +# Input : $(a), $(b) → integers +# Output: datalib:output result → LCM(a, b) +# NOTE : Overflow risk — result may exceed INT_MAX for large inputs. +# +# Example: +# data modify storage datalib:input a set value 12 +# data modify storage datalib:input b set value 8 +# function datalib:systems/math/lcm with storage datalib:input {} +# # datalib:output result = 24 +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $lcm_a dl.tmp $(a) +$scoreboard players set $lcm_b dl.tmp $(b) + +# Zero check +execute if score $lcm_a dl.tmp matches 0 run data modify storage datalib:output result set value 0 +execute if score $lcm_a dl.tmp matches 0 run return 0 +execute if score $lcm_b dl.tmp matches 0 run data modify storage datalib:output result set value 0 +execute if score $lcm_b dl.tmp matches 0 run return 0 + +# Absolute value +scoreboard players set $lcm_neg dl.tmp -1 +execute if score $lcm_a dl.tmp matches ..-1 run scoreboard players operation $lcm_a dl.tmp *= $lcm_neg dl.tmp +execute if score $lcm_b dl.tmp matches ..-1 run scoreboard players operation $lcm_b dl.tmp *= $lcm_neg dl.tmp + +# Compute GCD (lcm_a, lcm_b share gcd_a, gcd_b variables) +scoreboard players operation $gcd_a dl.tmp = $lcm_a dl.tmp +scoreboard players operation $gcd_b dl.tmp = $lcm_b dl.tmp +function datalib:core/internal/systems/math/gcd_loop + +# lcm = (a / gcd) * b (divide first to prevent overflow) +scoreboard players operation $lcm_a dl.tmp /= $gcd_a dl.tmp +scoreboard players operation $lcm_a dl.tmp *= $lcm_b dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $lcm_a dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/lcm ","color":"aqua"},{"text":"($(a),$(b)) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/lerp.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/lerp.mcfunction new file mode 100644 index 0000000..c79b4eb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/lerp.mcfunction @@ -0,0 +1,13 @@ +$scoreboard players set $lerp_a dl.tmp $(a) +$scoreboard players set $lerp_b dl.tmp $(b) +$scoreboard players set $lerp_t dl.tmp $(t) + +scoreboard players operation $lerp_r dl.tmp = $lerp_b dl.tmp +scoreboard players operation $lerp_r dl.tmp -= $lerp_a dl.tmp + +scoreboard players operation $lerp_r dl.tmp *= $lerp_t dl.tmp +scoreboard players set $lerp_100 dl.tmp 100 +scoreboard players operation $lerp_r dl.tmp /= $lerp_100 dl.tmp +scoreboard players operation $lerp_r dl.tmp += $lerp_a dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $lerp_r dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/lerp_clamped.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/lerp_clamped.mcfunction new file mode 100644 index 0000000..87e2aac --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/lerp_clamped.mcfunction @@ -0,0 +1,17 @@ +$scoreboard players set $lc_a dl.tmp $(a) +$scoreboard players set $lc_b dl.tmp $(b) +$scoreboard players set $lc_t dl.tmp $(t) + +execute if score $lc_t dl.tmp matches ..-1 run scoreboard players set $lc_t dl.tmp 0 +scoreboard players set $lc_100 dl.tmp 100 +execute if score $lc_t dl.tmp > $lc_100 dl.tmp run scoreboard players operation $lc_t dl.tmp = $lc_100 dl.tmp + +scoreboard players operation $lc_r dl.tmp = $lc_b dl.tmp +scoreboard players operation $lc_r dl.tmp -= $lc_a dl.tmp + +scoreboard players operation $lc_r dl.tmp *= $lc_t dl.tmp +scoreboard players operation $lc_r dl.tmp /= $lc_100 dl.tmp +scoreboard players operation $lc_r dl.tmp += $lc_a dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $lc_r dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/lerp_clamped ","color":"aqua"},{"text":"a=","color":"#555555"},{"text":"$(a)","color":"white"},{"text":" b=","color":"#555555"},{"text":"$(b)","color":"white"},{"text":" t=","color":"#555555"},{"text":"$(t)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/log2.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/log2.mcfunction new file mode 100644 index 0000000..68ff9a8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/log2.mcfunction @@ -0,0 +1,11 @@ +$scoreboard players set $lg2_v dl.tmp $(value) + +execute if score $lg2_v dl.tmp matches ..0 run data modify storage datalib:output result set value -1 +execute if score $lg2_v dl.tmp matches ..0 run return 0 + +scoreboard players set $lg2_r dl.tmp 0 +scoreboard players set $lg2_2 dl.tmp 2 + +function datalib:core/internal/systems/math/log2_loop + +execute store result storage datalib:output result int 1 run scoreboard players get $lg2_r dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/map.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/map.mcfunction new file mode 100644 index 0000000..9301a04 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/map.mcfunction @@ -0,0 +1,23 @@ +$scoreboard players set $map_v dl.tmp $(value) +$scoreboard players set $map_imin dl.tmp $(in_min) +$scoreboard players set $map_imax dl.tmp $(in_max) +$scoreboard players set $map_omin dl.tmp $(out_min) +$scoreboard players set $map_omax dl.tmp $(out_max) + +scoreboard players operation $map_ir dl.tmp = $map_imax dl.tmp +scoreboard players operation $map_ir dl.tmp -= $map_imin dl.tmp + +execute if score $map_ir dl.tmp matches 0 run execute store result storage datalib:output result int 1 run scoreboard players get $map_omin dl.tmp +execute if score $map_ir dl.tmp matches 0 run return 0 + +scoreboard players operation $map_or dl.tmp = $map_omax dl.tmp +scoreboard players operation $map_or dl.tmp -= $map_omin dl.tmp + +scoreboard players operation $map_off dl.tmp = $map_v dl.tmp +scoreboard players operation $map_off dl.tmp -= $map_imin dl.tmp + +scoreboard players operation $map_off dl.tmp *= $map_or dl.tmp +scoreboard players operation $map_off dl.tmp /= $map_ir dl.tmp +scoreboard players operation $map_off dl.tmp += $map_omin dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $map_off dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/max.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/max.mcfunction new file mode 100644 index 0000000..643513b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/max.mcfunction @@ -0,0 +1,6 @@ +$scoreboard players set $max_a dl.tmp $(a) +$scoreboard players set $max_b dl.tmp $(b) + +execute store result storage datalib:output result int 1 run scoreboard players get $max_a dl.tmp + +execute if score $max_b dl.tmp > $max_a dl.tmp run execute store result storage datalib:output result int 1 run scoreboard players get $max_b dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/min.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/min.mcfunction new file mode 100644 index 0000000..de5b0d6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/min.mcfunction @@ -0,0 +1,6 @@ +$scoreboard players set $min_a dl.tmp $(a) +$scoreboard players set $min_b dl.tmp $(b) + +execute store result storage datalib:output result int 1 run scoreboard players get $min_a dl.tmp + +execute if score $min_b dl.tmp < $min_a dl.tmp run execute store result storage datalib:output result int 1 run scoreboard players get $min_b dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/minmax.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/minmax.mcfunction new file mode 100644 index 0000000..5180fae --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/minmax.mcfunction @@ -0,0 +1,13 @@ +$scoreboard players set $mmx_a dl.tmp $(a) +$scoreboard players set $mmx_b dl.tmp $(b) + +scoreboard players operation $mmx_lo dl.tmp = $mmx_a dl.tmp +execute if score $mmx_b dl.tmp < $mmx_a dl.tmp run scoreboard players operation $mmx_lo dl.tmp = $mmx_b dl.tmp + +scoreboard players operation $mmx_hi dl.tmp = $mmx_a dl.tmp +execute if score $mmx_b dl.tmp > $mmx_a dl.tmp run scoreboard players operation $mmx_hi dl.tmp = $mmx_b dl.tmp + +execute store result storage datalib:output min int 1 run scoreboard players get $mmx_lo dl.tmp +execute store result storage datalib:output max int 1 run scoreboard players get $mmx_hi dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/minmax ","color":"aqua"},{"text":"($(a),$(b))","color":"gray"},{"text":" → ","color":"#555555"},{"text":"min=","color":"gray"},{"storage":"datalib:output","nbt":"min","color":"green"},{"text":" max=","color":"gray"},{"storage":"datalib:output","nbt":"max","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/mod.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/mod.mcfunction new file mode 100644 index 0000000..14de30e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/mod.mcfunction @@ -0,0 +1,11 @@ +$scoreboard players set $mod_v dl.tmp $(value) +$scoreboard players set $mod_d dl.tmp $(divisor) + +execute if score $mod_d dl.tmp matches ..0 run data modify storage datalib:output result set value 0 +execute if score $mod_d dl.tmp matches ..0 run return 0 + +scoreboard players operation $mod_v dl.tmp %= $mod_d dl.tmp + +execute if score $mod_v dl.tmp matches ..-1 run scoreboard players operation $mod_v dl.tmp += $mod_d dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $mod_v dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/mul_div.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/mul_div.mcfunction new file mode 100644 index 0000000..6be1563 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/mul_div.mcfunction @@ -0,0 +1,44 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/mul_div +# Computes floor(a * b / c) without 32-bit integer overflow. +# Uses the identity: floor(a*b/c) = (a/c)*b + (a%c)*b/c +# This avoids overflow when a*b would exceed ±2147483647. +# Input : $(a), $(b), $(c) → integers; c must not be 0 +# Output: datalib:output result → floor(a * b / c) +# +# Note: if (a % c) * b still overflows (e.g. huge b with c=1), +# the result is clamped by Java's 32-bit signed wrapping. +# For those cases, reduce inputs before calling. +# +# Example: +# data modify storage datalib:input a set value 1000000 +# data modify storage datalib:input b set value 1000000 +# data modify storage datalib:input c set value 500000 +# function datalib:systems/math/mul_div with storage datalib:input {} +# # datalib:output result = 2000000 +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $md_a dl.tmp $(a) +$scoreboard players set $md_b dl.tmp $(b) +$scoreboard players set $md_c dl.tmp $(c) + +# Guard: c = 0 → undefined, return 0 +execute if score $md_c dl.tmp matches 0 run data modify storage datalib:output result set value 0 +execute if score $md_c dl.tmp matches 0 run return 0 + +# q = a / c (integer quotient) +scoreboard players operation $md_q dl.tmp = $md_a dl.tmp +scoreboard players operation $md_q dl.tmp /= $md_c dl.tmp + +# r = a % c (remainder, Java truncated — may be negative) +scoreboard players operation $md_r dl.tmp = $md_a dl.tmp +scoreboard players operation $md_r dl.tmp %= $md_c dl.tmp + +# result = q * b + r * b / c +scoreboard players operation $md_q dl.tmp *= $md_b dl.tmp +scoreboard players operation $md_r dl.tmp *= $md_b dl.tmp +scoreboard players operation $md_r dl.tmp /= $md_c dl.tmp +scoreboard players operation $md_q dl.tmp += $md_r dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $md_q dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/mul_div ","color":"aqua"},{"text":"($(a)*$(b)/$(c)) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/pow.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/pow.mcfunction new file mode 100644 index 0000000..a9000af --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/pow.mcfunction @@ -0,0 +1,9 @@ +$scoreboard players set $pow_a dl.tmp $(a) +$scoreboard players set $pow_n dl.tmp $(n) +scoreboard players set $pow_r dl.tmp 1 + +execute if score $pow_n dl.tmp matches 0 run execute store result storage datalib:output result int 1 run scoreboard players get $pow_r dl.tmp +execute if score $pow_n dl.tmp matches 0 run return 0 + +function datalib:core/internal/systems/math/pow_loop +execute store result storage datalib:output result int 1 run scoreboard players get $pow_r dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/random.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/random.mcfunction new file mode 100644 index 0000000..522a5b5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/random.mcfunction @@ -0,0 +1,30 @@ +$scoreboard players set $rnd_min dl.tmp $(min) +$scoreboard players set $rnd_max dl.tmp $(max) + +scoreboard players operation $rnd_max dl.tmp -= $rnd_min dl.tmp +scoreboard players add $rnd_max dl.tmp 1 + +execute if data storage datalib:engine _rng_state run execute store result score $rnd dl.tmp run data get storage datalib:engine _rng_state +execute unless data storage datalib:engine _rng_state run execute store result score $rnd dl.tmp run scoreboard players get $epoch datalib.time +execute unless data storage datalib:engine _rng_state run scoreboard players add $rnd dl.tmp 57005 + +scoreboard players set $rnd_tick dl.tmp 31 +execute store result score $rnd_t dl.tmp run scoreboard players get $tick dl.tmp +scoreboard players operation $rnd_t dl.tmp *= $rnd_tick dl.tmp +scoreboard players operation $rnd dl.tmp += $rnd_t dl.tmp + +scoreboard players set $rnd_a dl.tmp 1664525 +scoreboard players operation $rnd dl.tmp *= $rnd_a dl.tmp +scoreboard players add $rnd dl.tmp 1013904223 + +execute store result storage datalib:engine _rng_state int 1 run scoreboard players get $rnd dl.tmp + +execute if score $rnd dl.tmp matches -2147483648 run scoreboard players set $rnd dl.tmp 2147483647 +execute if score $rnd dl.tmp matches ..-1 run scoreboard players set $rnd_neg dl.tmp -1 +execute if score $rnd dl.tmp matches ..-1 run scoreboard players operation $rnd dl.tmp *= $rnd_neg dl.tmp + +scoreboard players operation $rnd dl.tmp %= $rnd_max dl.tmp +execute if score $rnd dl.tmp matches ..-1 run scoreboard players operation $rnd dl.tmp += $rnd_max dl.tmp +scoreboard players operation $rnd dl.tmp += $rnd_min dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $rnd dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/round.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/round.mcfunction new file mode 100644 index 0000000..7c93fd7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/round.mcfunction @@ -0,0 +1,35 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/round +# Rounds a value to the nearest multiple of a given step. +# Integer division truncates toward zero; adding half the step before +# dividing gives standard rounding (0.5 rounds away from zero). +# +# INPUT : $(value) → integer to round +# $(step) → rounding step (must be > 0) +# OUTPUT: datalib:output result → rounded value +# +# EXAMPLE: +# function datalib:systems/math/round {value:37, step:10} +# → datalib:output result = 40 +# function datalib:systems/math/round {value:34, step:10} +# → datalib:output result = 30 +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set #rnd_v dl.tmp $(value) +$scoreboard players set #rnd_s dl.tmp $(step) + +execute if score #rnd_s dl.tmp matches ..0 run return fail + +# add half step for rounding (integer division: step=10 → half=5) +scoreboard players operation #rnd_half dl.tmp = #rnd_s dl.tmp +scoreboard players set #rnd_2 dl.tmp 2 +scoreboard players operation #rnd_half dl.tmp /= #rnd_2 dl.tmp + +execute if score #rnd_v dl.tmp matches 0.. run scoreboard players operation #rnd_v dl.tmp += #rnd_half dl.tmp +execute if score #rnd_v dl.tmp matches ..-1 run scoreboard players operation #rnd_v dl.tmp -= #rnd_half dl.tmp + +scoreboard players operation #rnd_v dl.tmp /= #rnd_s dl.tmp +scoreboard players operation #rnd_v dl.tmp *= #rnd_s dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get #rnd_v dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/round ","color":"aqua"},{"text":"$(value) step=$(step) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sign.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sign.mcfunction new file mode 100644 index 0000000..2d1181d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sign.mcfunction @@ -0,0 +1,4 @@ +$scoreboard players set $sign_v dl.tmp $(value) +execute if score $sign_v dl.tmp matches 1.. run data modify storage datalib:output result set value 1 +execute if score $sign_v dl.tmp matches 0 run data modify storage datalib:output result set value 0 +execute if score $sign_v dl.tmp matches ..-1 run data modify storage datalib:output result set value -1 diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sign_nonzero.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sign_nonzero.mcfunction new file mode 100644 index 0000000..bd25ada --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sign_nonzero.mcfunction @@ -0,0 +1,19 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/sign_nonzero +# Returns -1 for negative, +1 for zero-or-positive. +# Useful when you need a non-zero multiplier (e.g. direction vectors). +# +# INPUT : $(value) → integer +# OUTPUT: datalib:output result → 1 or -1 +# +# EXAMPLE: +# function datalib:systems/math/sign_nonzero {value:-5} +# → datalib:output result = -1 +# function datalib:systems/math/sign_nonzero {value:0} +# → datalib:output result = 1 +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set #snz_v dl.tmp $(value) +data modify storage datalib:output result set value 1 +execute if score #snz_v dl.tmp matches ..-1 run data modify storage datalib:output result set value -1 +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/sign_nonzero ","color":"aqua"},{"text":"$(value) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sin.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sin.mcfunction new file mode 100644 index 0000000..f505e39 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sin.mcfunction @@ -0,0 +1,115 @@ +$scoreboard players set $sin_d dl.tmp $(deg) + +# Wrap to range 0-359 +scoreboard players set $sin_360 dl.tmp 360 +scoreboard players operation $sin_d dl.tmp %= $sin_360 dl.tmp +execute if score $sin_d dl.tmp matches ..-1 run scoreboard players operation $sin_d dl.tmp += $sin_360 dl.tmp + +# Sign: 180-359 → negative +scoreboard players set $sin_nf dl.tmp 1 +execute if score $sin_d dl.tmp matches 180..359 run scoreboard players set $sin_nf dl.tmp -1 +# 180-359 → map down to 0-179 +execute if score $sin_d dl.tmp matches 180..359 run scoreboard players remove $sin_d dl.tmp 180 + +# 91-179 → symmetry: sin(deg) = sin(180-deg) +# tmp2 = 180 - sin_d (only for range 91-179) +scoreboard players set $sin_180 dl.tmp 180 +execute if score $sin_d dl.tmp matches 91..179 run scoreboard players operation $sin_180 dl.tmp -= $sin_d dl.tmp +execute if score $sin_d dl.tmp matches 91..179 run scoreboard players operation $sin_d dl.tmp = $sin_180 dl.tmp + +# Lookup table 0-90 → sin × 1000 +execute if score $sin_d dl.tmp matches 0 run scoreboard players set $sin_r dl.tmp 0 +execute if score $sin_d dl.tmp matches 1 run scoreboard players set $sin_r dl.tmp 17 +execute if score $sin_d dl.tmp matches 2 run scoreboard players set $sin_r dl.tmp 35 +execute if score $sin_d dl.tmp matches 3 run scoreboard players set $sin_r dl.tmp 52 +execute if score $sin_d dl.tmp matches 4 run scoreboard players set $sin_r dl.tmp 70 +execute if score $sin_d dl.tmp matches 5 run scoreboard players set $sin_r dl.tmp 87 +execute if score $sin_d dl.tmp matches 6 run scoreboard players set $sin_r dl.tmp 105 +execute if score $sin_d dl.tmp matches 7 run scoreboard players set $sin_r dl.tmp 122 +execute if score $sin_d dl.tmp matches 8 run scoreboard players set $sin_r dl.tmp 139 +execute if score $sin_d dl.tmp matches 9 run scoreboard players set $sin_r dl.tmp 156 +execute if score $sin_d dl.tmp matches 10 run scoreboard players set $sin_r dl.tmp 174 +execute if score $sin_d dl.tmp matches 11 run scoreboard players set $sin_r dl.tmp 191 +execute if score $sin_d dl.tmp matches 12 run scoreboard players set $sin_r dl.tmp 208 +execute if score $sin_d dl.tmp matches 13 run scoreboard players set $sin_r dl.tmp 225 +execute if score $sin_d dl.tmp matches 14 run scoreboard players set $sin_r dl.tmp 242 +execute if score $sin_d dl.tmp matches 15 run scoreboard players set $sin_r dl.tmp 259 +execute if score $sin_d dl.tmp matches 16 run scoreboard players set $sin_r dl.tmp 276 +execute if score $sin_d dl.tmp matches 17 run scoreboard players set $sin_r dl.tmp 292 +execute if score $sin_d dl.tmp matches 18 run scoreboard players set $sin_r dl.tmp 309 +execute if score $sin_d dl.tmp matches 19 run scoreboard players set $sin_r dl.tmp 326 +execute if score $sin_d dl.tmp matches 20 run scoreboard players set $sin_r dl.tmp 342 +execute if score $sin_d dl.tmp matches 21 run scoreboard players set $sin_r dl.tmp 358 +execute if score $sin_d dl.tmp matches 22 run scoreboard players set $sin_r dl.tmp 375 +execute if score $sin_d dl.tmp matches 23 run scoreboard players set $sin_r dl.tmp 391 +execute if score $sin_d dl.tmp matches 24 run scoreboard players set $sin_r dl.tmp 407 +execute if score $sin_d dl.tmp matches 25 run scoreboard players set $sin_r dl.tmp 423 +execute if score $sin_d dl.tmp matches 26 run scoreboard players set $sin_r dl.tmp 438 +execute if score $sin_d dl.tmp matches 27 run scoreboard players set $sin_r dl.tmp 454 +execute if score $sin_d dl.tmp matches 28 run scoreboard players set $sin_r dl.tmp 469 +execute if score $sin_d dl.tmp matches 29 run scoreboard players set $sin_r dl.tmp 485 +execute if score $sin_d dl.tmp matches 30 run scoreboard players set $sin_r dl.tmp 500 +execute if score $sin_d dl.tmp matches 31 run scoreboard players set $sin_r dl.tmp 515 +execute if score $sin_d dl.tmp matches 32 run scoreboard players set $sin_r dl.tmp 530 +execute if score $sin_d dl.tmp matches 33 run scoreboard players set $sin_r dl.tmp 545 +execute if score $sin_d dl.tmp matches 34 run scoreboard players set $sin_r dl.tmp 559 +execute if score $sin_d dl.tmp matches 35 run scoreboard players set $sin_r dl.tmp 574 +execute if score $sin_d dl.tmp matches 36 run scoreboard players set $sin_r dl.tmp 588 +execute if score $sin_d dl.tmp matches 37 run scoreboard players set $sin_r dl.tmp 602 +execute if score $sin_d dl.tmp matches 38 run scoreboard players set $sin_r dl.tmp 616 +execute if score $sin_d dl.tmp matches 39 run scoreboard players set $sin_r dl.tmp 629 +execute if score $sin_d dl.tmp matches 40 run scoreboard players set $sin_r dl.tmp 643 +execute if score $sin_d dl.tmp matches 41 run scoreboard players set $sin_r dl.tmp 656 +execute if score $sin_d dl.tmp matches 42 run scoreboard players set $sin_r dl.tmp 669 +execute if score $sin_d dl.tmp matches 43 run scoreboard players set $sin_r dl.tmp 682 +execute if score $sin_d dl.tmp matches 44 run scoreboard players set $sin_r dl.tmp 695 +execute if score $sin_d dl.tmp matches 45 run scoreboard players set $sin_r dl.tmp 707 +execute if score $sin_d dl.tmp matches 46 run scoreboard players set $sin_r dl.tmp 719 +execute if score $sin_d dl.tmp matches 47 run scoreboard players set $sin_r dl.tmp 731 +execute if score $sin_d dl.tmp matches 48 run scoreboard players set $sin_r dl.tmp 743 +execute if score $sin_d dl.tmp matches 49 run scoreboard players set $sin_r dl.tmp 755 +execute if score $sin_d dl.tmp matches 50 run scoreboard players set $sin_r dl.tmp 766 +execute if score $sin_d dl.tmp matches 51 run scoreboard players set $sin_r dl.tmp 777 +execute if score $sin_d dl.tmp matches 52 run scoreboard players set $sin_r dl.tmp 788 +execute if score $sin_d dl.tmp matches 53 run scoreboard players set $sin_r dl.tmp 799 +execute if score $sin_d dl.tmp matches 54 run scoreboard players set $sin_r dl.tmp 809 +execute if score $sin_d dl.tmp matches 55 run scoreboard players set $sin_r dl.tmp 819 +execute if score $sin_d dl.tmp matches 56 run scoreboard players set $sin_r dl.tmp 829 +execute if score $sin_d dl.tmp matches 57 run scoreboard players set $sin_r dl.tmp 839 +execute if score $sin_d dl.tmp matches 58 run scoreboard players set $sin_r dl.tmp 848 +execute if score $sin_d dl.tmp matches 59 run scoreboard players set $sin_r dl.tmp 857 +execute if score $sin_d dl.tmp matches 60 run scoreboard players set $sin_r dl.tmp 866 +execute if score $sin_d dl.tmp matches 61 run scoreboard players set $sin_r dl.tmp 875 +execute if score $sin_d dl.tmp matches 62 run scoreboard players set $sin_r dl.tmp 883 +execute if score $sin_d dl.tmp matches 63 run scoreboard players set $sin_r dl.tmp 891 +execute if score $sin_d dl.tmp matches 64 run scoreboard players set $sin_r dl.tmp 899 +execute if score $sin_d dl.tmp matches 65 run scoreboard players set $sin_r dl.tmp 906 +execute if score $sin_d dl.tmp matches 66 run scoreboard players set $sin_r dl.tmp 914 +execute if score $sin_d dl.tmp matches 67 run scoreboard players set $sin_r dl.tmp 921 +execute if score $sin_d dl.tmp matches 68 run scoreboard players set $sin_r dl.tmp 927 +execute if score $sin_d dl.tmp matches 69 run scoreboard players set $sin_r dl.tmp 934 +execute if score $sin_d dl.tmp matches 70 run scoreboard players set $sin_r dl.tmp 940 +execute if score $sin_d dl.tmp matches 71 run scoreboard players set $sin_r dl.tmp 946 +execute if score $sin_d dl.tmp matches 72 run scoreboard players set $sin_r dl.tmp 951 +execute if score $sin_d dl.tmp matches 73 run scoreboard players set $sin_r dl.tmp 956 +execute if score $sin_d dl.tmp matches 74 run scoreboard players set $sin_r dl.tmp 961 +execute if score $sin_d dl.tmp matches 75 run scoreboard players set $sin_r dl.tmp 966 +execute if score $sin_d dl.tmp matches 76 run scoreboard players set $sin_r dl.tmp 970 +execute if score $sin_d dl.tmp matches 77 run scoreboard players set $sin_r dl.tmp 974 +execute if score $sin_d dl.tmp matches 78 run scoreboard players set $sin_r dl.tmp 978 +execute if score $sin_d dl.tmp matches 79 run scoreboard players set $sin_r dl.tmp 982 +execute if score $sin_d dl.tmp matches 80 run scoreboard players set $sin_r dl.tmp 985 +execute if score $sin_d dl.tmp matches 81 run scoreboard players set $sin_r dl.tmp 988 +execute if score $sin_d dl.tmp matches 82 run scoreboard players set $sin_r dl.tmp 990 +execute if score $sin_d dl.tmp matches 83 run scoreboard players set $sin_r dl.tmp 993 +execute if score $sin_d dl.tmp matches 84 run scoreboard players set $sin_r dl.tmp 995 +execute if score $sin_d dl.tmp matches 85 run scoreboard players set $sin_r dl.tmp 996 +execute if score $sin_d dl.tmp matches 86 run scoreboard players set $sin_r dl.tmp 998 +execute if score $sin_d dl.tmp matches 87 run scoreboard players set $sin_r dl.tmp 999 +execute if score $sin_d dl.tmp matches 88 run scoreboard players set $sin_r dl.tmp 999 +execute if score $sin_d dl.tmp matches 89 run scoreboard players set $sin_r dl.tmp 1000 +execute if score $sin_d dl.tmp matches 90 run scoreboard players set $sin_r dl.tmp 1000 + +scoreboard players operation $sin_r dl.tmp *= $sin_nf dl.tmp +execute store result storage datalib:output result int 1 run scoreboard players get $sin_r dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/sin ","color":"aqua"},{"text":"deg=$(deg) ","color":"gray"},{"text":"→ ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"},{"text":"/1000","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sqrt.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sqrt.mcfunction new file mode 100644 index 0000000..19c2865 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sqrt.mcfunction @@ -0,0 +1,16 @@ +$scoreboard players set $sqrt_n dl.tmp $(value) + +execute if score $sqrt_n dl.tmp matches ..0 run data modify storage datalib:output result set value 0 +execute if score $sqrt_n dl.tmp matches ..0 run return 0 + +execute if score $sqrt_n dl.tmp matches 1 run data modify storage datalib:output result set value 1 +execute if score $sqrt_n dl.tmp matches 1 run return 0 + +scoreboard players set $sqrt_lo dl.tmp 0 +scoreboard players operation $sqrt_hi dl.tmp = $sqrt_n dl.tmp +execute if score $sqrt_hi dl.tmp matches 46342.. run scoreboard players set $sqrt_hi dl.tmp 46341 + +scoreboard players set $sqrt_itr dl.tmp 16 +function datalib:core/internal/systems/math/sqrt_step + +execute store result storage datalib:output result int 1 run scoreboard players get $sqrt_lo dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sum3.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sum3.mcfunction new file mode 100644 index 0000000..92337b4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/sum3.mcfunction @@ -0,0 +1,28 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/sum3 +# Adds three integers with INT_MAX overflow guard. +# Input : $(a), $(b), $(c) +# Output: datalib:output result → a + b + c (clamped to 2147483647) +# +# Example: +# data modify storage datalib:input a set value 100 +# data modify storage datalib:input b set value 200 +# data modify storage datalib:input c set value 300 +# function datalib:systems/math/sum3 with storage datalib:input {} +# # datalib:output result = 600 +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $s3_a dl.tmp $(a) +$scoreboard players set $s3_b dl.tmp $(b) +$scoreboard players set $s3_c dl.tmp $(c) + +scoreboard players operation $s3_a dl.tmp += $s3_b dl.tmp +# Overflow clamp after first add +execute if score $s3_a dl.tmp matches 2147483647.. run scoreboard players set $s3_a dl.tmp 2147483647 + +scoreboard players operation $s3_a dl.tmp += $s3_c dl.tmp +# Overflow clamp after second add +execute if score $s3_a dl.tmp matches 2147483647.. run scoreboard players set $s3_a dl.tmp 2147483647 + +execute store result storage datalib:output result int 1 run scoreboard players get $s3_a dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/sum3 ","color":"aqua"},{"text":"($(a)+$(b)+$(c)) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/add.mcfunction new file mode 100644 index 0000000..085554a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/add.mcfunction @@ -0,0 +1,9 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/vec/add +# Adds two 3D vectors. +# +# INPUT: ax, ay, az, bx, by, bz +# OUTPUT: datalib:output {x, y, z} +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/math/vec/add_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/angle_between.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/angle_between.mcfunction new file mode 100644 index 0000000..7cef14f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/angle_between.mcfunction @@ -0,0 +1,12 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/vec/angle_between +# Returns the angle between two vectors in degrees. +# cos(θ) = dot(A,B) / (|A| × |B|) → θ = arccos(...) +# Uses ×1000 fixed-point cos table for arccos. +# +# INPUT: ax, ay, az, bx, by, bz +# OUTPUT: datalib:output result (0–180, integer degrees) +# result=0 for zero vectors. +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/math/vec/angle_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/cross.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/cross.mcfunction new file mode 100644 index 0000000..6449e3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/cross.mcfunction @@ -0,0 +1,12 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/vec/cross +# Computes the cross product of two vectors. +# cx = ay*bz - az*by +# cy = az*bx - ax*bz +# cz = ax*by - ay*bx +# +# INPUT: ax, ay, az, bx, by, bz +# OUTPUT: datalib:output {x, y, z} +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/math/vec/cross_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/dot.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/dot.mcfunction new file mode 100644 index 0000000..3432274 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/dot.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/vec/dot +# Computes the dot product of two vectors. (ax*bx + ay*by + az*bz) +# Result is integer — no fractions. May overflow for large vectors. +# +# INPUT: ax, ay, az, bx, by, bz +# OUTPUT: datalib:output result (int) +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/math/vec/dot_exec with storage datalib:engine _vec_dot_tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/normalize.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/normalize.mcfunction new file mode 100644 index 0000000..248988a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/normalize.mcfunction @@ -0,0 +1,12 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/vec/normalize +# Scales vector to unit length (×1000 fixed-point). +# Length computed via math/distance3d (floor(√(x²+y²+z²))). +# Results are ×1000 — divide by 1000 before using as direction vector. +# +# INPUT: x, y, z +# OUTPUT: datalib:output {x, y, z, length} +# If length=0, zero vector — returns x,y,z=0. +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/math/vec/normalize_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/sub.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/sub.mcfunction new file mode 100644 index 0000000..2bd8993 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/vec/sub.mcfunction @@ -0,0 +1,9 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/math/vec/sub +# Subtracts vector B from vector A. (A - B) +# +# INPUT: ax, ay, az, bx, by, bz +# OUTPUT: datalib:output {x, y, z} +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/math/vec/sub_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/weighted_random.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/weighted_random.mcfunction new file mode 100644 index 0000000..4e15f6a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/weighted_random.mcfunction @@ -0,0 +1,59 @@ +$scoreboard players set $wr_total dl.tmp $(total) + +execute if score $wr_total dl.tmp matches ..0 run data modify storage datalib:output result set value -1 +execute if score $wr_total dl.tmp matches ..0 run return 0 + +# Draw random in range 0..total-1 +data modify storage datalib:engine _math_rnd_tmp.min set value 0 +scoreboard players remove $wr_total dl.tmp 1 +execute store result storage datalib:engine _math_rnd_tmp.max int 1 run scoreboard players get $wr_total dl.tmp +function datalib:systems/math/random with storage datalib:engine _math_rnd_tmp + +execute store result score $wr_roll dl.tmp run data get storage datalib:output result +execute store result storage datalib:output roll int 1 run scoreboard players get $wr_roll dl.tmp + +data modify storage datalib:output result set value -1 +scoreboard players set $wr_done dl.tmp 0 + +# Cumulative threshold check +$scoreboard players set $wr_acc dl.tmp $(w0) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 0 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$scoreboard players add $wr_acc dl.tmp $(w1) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 1 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$scoreboard players add $wr_acc dl.tmp $(w2) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 2 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$scoreboard players add $wr_acc dl.tmp $(w3) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 3 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$scoreboard players add $wr_acc dl.tmp $(w4) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 4 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$scoreboard players add $wr_acc dl.tmp $(w5) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 5 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$scoreboard players add $wr_acc dl.tmp $(w6) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 6 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$scoreboard players add $wr_acc dl.tmp $(w7) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 7 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$scoreboard players add $wr_acc dl.tmp $(w8) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 8 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$scoreboard players add $wr_acc dl.tmp $(w9) +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run data modify storage datalib:output result set value 9 +execute if score $wr_done dl.tmp matches 0 run execute if score $wr_roll dl.tmp < $wr_acc dl.tmp run scoreboard players set $wr_done dl.tmp 1 + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"math/weighted_random ","color":"aqua"},{"text":"total=$(total) roll=","color":"gray"},{"score":{"name":"$wr_roll","objective":"dl.tmp"},"color":"yellow"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/wrap.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/wrap.mcfunction new file mode 100644 index 0000000..69d1a10 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/math/wrap.mcfunction @@ -0,0 +1,19 @@ +$scoreboard players set $wrap_v dl.tmp $(value) +$scoreboard players set $wrap_min dl.tmp $(min) +$scoreboard players set $wrap_max dl.tmp $(max) + +scoreboard players operation $wrap_r dl.tmp = $wrap_max dl.tmp +scoreboard players operation $wrap_r dl.tmp -= $wrap_min dl.tmp + +execute if score $wrap_r dl.tmp matches ..0 run execute store result storage datalib:output result int 1 run scoreboard players get $wrap_min dl.tmp +execute if score $wrap_r dl.tmp matches ..0 run return 0 + +scoreboard players operation $wrap_off dl.tmp = $wrap_v dl.tmp +scoreboard players operation $wrap_off dl.tmp -= $wrap_min dl.tmp + +scoreboard players operation $wrap_off dl.tmp %= $wrap_r dl.tmp +execute if score $wrap_off dl.tmp matches ..-1 run scoreboard players operation $wrap_off dl.tmp += $wrap_r dl.tmp + +scoreboard players operation $wrap_off dl.tmp += $wrap_min dl.tmp + +execute store result storage datalib:output result int 1 run scoreboard players get $wrap_off dl.tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/append.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/append.mcfunction new file mode 100644 index 0000000..0b0d53d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/append.mcfunction @@ -0,0 +1,12 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/append +# Appends an element from another storage path to a list in storage. +# +# INPUT (storage datalib:input): +# dst_storage → destination storage +# dst_path → destination list path +# src_storage → source storage +# src_path → path of the value to append +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/append_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/clear.mcfunction new file mode 100644 index 0000000..a1928d0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/clear.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/clear +# Removes a specific path from storage. +# +# INPUT (storage datalib:input): +# storage → storage namespace +# path → path to remove +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/clear_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/copy.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/copy.mcfunction new file mode 100644 index 0000000..b19a941 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/copy.mcfunction @@ -0,0 +1,19 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/copy +# Copies a path between two storages or within the same storage. +# +# INPUT (storage datalib:input): +# src_storage → source storage namespace (e.g. "datalib:engine") +# src_path → source NBT path (e.g. "players.Steve") +# dst_storage → destination storage namespace +# dst_path → destination NBT path +# +# EXAMPLE: +# data modify storage datalib:input src_storage set value "datalib:engine" +# data modify storage datalib:input src_path set value "players.Steve" +# data modify storage datalib:input dst_storage set value "mypack:data" +# data modify storage datalib:input dst_path set value "backup.Steve" +# function datalib:systems/nbt/copy +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/copy_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/count.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/count.mcfunction new file mode 100644 index 0000000..c0d59c5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/count.mcfunction @@ -0,0 +1,12 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/count +# Returns the element count of a list in storage. +# +# INPUT (storage datalib:input): +# storage → storage namespace +# path → list path +# +# OUTPUT: datalib:output result (int) +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/count_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/exists.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/exists.mcfunction new file mode 100644 index 0000000..61b83f1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/exists.mcfunction @@ -0,0 +1,12 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/exists +# Checks whether a specific path exists in storage. +# +# INPUT (storage datalib:input): +# storage → storage namespace +# path → path to check +# +# OUTPUT: datalib:output result → 1b (exists) or 0b (not found) +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/exists_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/first.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/first.mcfunction new file mode 100644 index 0000000..338575f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/first.mcfunction @@ -0,0 +1,20 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/first +# Copies the first element [0] of a list at src_path into dst_path. +# If the list is empty or path does not exist, does nothing (silent fail). +# +# INPUT (storage datalib:input): +# src_storage → source storage namespace +# src_path → list path (element [0] will be read) +# dst_storage → destination storage namespace +# dst_path → destination path to write into +# +# EXAMPLE: +# data modify storage datalib:input src_storage set value "datalib:engine" +# data modify storage datalib:input src_path set value "event_queue" +# data modify storage datalib:input dst_storage set value "datalib:output" +# data modify storage datalib:input dst_path set value "result" +# function datalib:systems/nbt/first +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/first_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/merge.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/merge.mcfunction new file mode 100644 index 0000000..d24d86a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/merge.mcfunction @@ -0,0 +1,21 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/merge +# Merges a compound from src_storage:src_path into dst_storage:dst_path. +# Equivalent to: data modify merge from +# Existing keys in dst are overwritten by src values; missing keys added. +# +# INPUT (storage datalib:input): +# src_storage → source storage namespace (e.g. "datalib:engine") +# src_path → source compound path +# dst_storage → destination storage namespace +# dst_path → destination compound path +# +# EXAMPLE: +# data modify storage datalib:input src_storage set value "datalib:engine" +# data modify storage datalib:input src_path set value "players.Steve" +# data modify storage datalib:input dst_storage set value "mypack:data" +# data modify storage datalib:input dst_path set value "backup.Steve" +# function datalib:systems/nbt/merge +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/merge_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/move.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/move.mcfunction new file mode 100644 index 0000000..bd06781 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/move.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/move +# Moves a path within the same storage (copy + delete). +# +# INPUT (storage datalib:input): +# storage → storage namespace +# from_path → source path +# to_path → destination path +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/move_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/pop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/pop.mcfunction new file mode 100644 index 0000000..4a2616c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/pop.mcfunction @@ -0,0 +1,12 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/pop +# Copies the first element of a list to datalib:output result and removes it. +# +# INPUT (storage datalib:input): +# storage → storage namespace +# path → list path +# +# OUTPUT: datalib:output result (popped element) +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/pop_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/swap.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/swap.mcfunction new file mode 100644 index 0000000..5d862e9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/nbt/swap.mcfunction @@ -0,0 +1,11 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/nbt/swap +# Swaps the values of two paths within the same storage. +# +# INPUT (storage datalib:input): +# storage → storage namespace +# path_a → birinci path +# path_b → ikinci path +# ───────────────────────────────────────────────────────────────── + +function datalib:core/internal/systems/nbt/swap_exec with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/channel/check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/channel/check.mcfunction new file mode 100644 index 0000000..c49d961 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/channel/check.mcfunction @@ -0,0 +1,16 @@ +# datalib:systems/rate_limit/channel/check — Per-channel rate guard [MACRO] +# +# Prevents a tick channel's function from running too frequently even if +# the channel itself fires every tick. Place at the TOP of the channel function. +# +# Usage (inside your channel function): +# function datalib:systems/rate_limit/channel/check {id:"my_channel"} +# execute if data storage datalib:output {result:0b} run return 0 +# # ... rest of channel logic +# +# Rule must be registered via: +# function datalib:systems/rate_limit/channel/config {id:"my_channel",limit:5,window:20} +# +# Output → datalib:output result 1b=ALLOWED 0b=DENIED + +$function datalib:systems/rate_limit/check {key:"channel:$(id)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/check.mcfunction new file mode 100644 index 0000000..08c0aea --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/check.mcfunction @@ -0,0 +1,36 @@ +# datalib:systems/rate_limit/check — Sliding window check + consume [MACRO] +# +# The core API call. Checks whether the key is under its configured limit +# for the current sliding window, then records this hit. +# +# Output → datalib:output result +# 1b = ALLOWED (hit was recorded, call may proceed) +# 0b = DENIED (limit reached, hit NOT recorded) +# +# Usage: +# function datalib:systems/rate_limit/check {key:"global:my_event"} +# execute if data storage datalib:output {result:1b} run function my_ns:do_thing +# +# For per-player (build key in caller): +# $function datalib:systems/rate_limit/check {key:"player:shop:$(player)"} +# +# Rule must be pre-registered via datalib:systems/rate_limit/config. +# If no rule exists for the key → ALLOWED (fail-open; log warning). + +data modify storage datalib:output result set value 1b + +# Guard: rule must exist — try auto-create from player template first +# Key format "player::" → tpl is the second segment +# We attempt player_ensure unconditionally; it exits early if not a player key or no template +$data modify storage datalib:rl_work ensure_key set value "$(key)" +function datalib:core/internal/systems/rate_limit/player_check with storage datalib:rl_work + +$execute unless data storage datalib:engine rate_limit.rules.$(key) run function datalib:core/internal/systems/rate_limit/no_rule +$execute unless data storage datalib:engine rate_limit.rules.$(key) run return 0 + +# Copy rule into work storage with key context +$data modify storage datalib:rl_work rule set from storage datalib:engine rate_limit.rules.$(key) +$data modify storage datalib:rl_work rule.key set value "$(key)" + +# Run the sliding window evaluation +function datalib:core/internal/systems/rate_limit/evaluate with storage datalib:rl_work rule diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/config.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/config.mcfunction new file mode 100644 index 0000000..65adb04 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/config.mcfunction @@ -0,0 +1,23 @@ +# datalib:systems/rate_limit/config — Register or update a rate limit rule [MACRO] +# +# Creates or replaces a sliding window rule for any key. +# Rules survive reloads because they live in datalib:engine storage. +# +# Usage: +# function datalib:systems/rate_limit/config {key:"global:my_event",limit:5,window:100} +# function datalib:systems/rate_limit/config {key:"player:Steve:shop",limit:3,window:600} +# function datalib:systems/rate_limit/config {key:"channel:admin_systems",limit:10,window:20} +# +# Fields: +# key (string) — unique rule identifier; convention: +# "global:" → server-wide shared bucket +# "player::" → per-player bucket (use $(player)) +# "channel:" → tick-channel guard +# limit (int) — max number of hits allowed inside the window +# window (int) — sliding window width in ticks (20 = 1 second) +# +# Removing a rule: function datalib:systems/rate_limit/delete {key:"..."} +# Listing rules: function datalib:systems/rate_limit/list + +$data modify storage datalib:engine rate_limit.rules.$(key) set value {limit:$(limit),window:$(window),hits:[]} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"rate_limit/config ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(key)","color":"white"},{"text":" limit=","color":"#555555"},{"text":"$(limit)","color":"green"},{"text":" window=","color":"#555555"},{"text":"$(window)","color":"green"},{"text":"t","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/global/check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/global/check.mcfunction new file mode 100644 index 0000000..d47ed31 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/global/check.mcfunction @@ -0,0 +1,14 @@ +# datalib:systems/rate_limit/global/check — Global sliding window check [MACRO] +# +# Convenience wrapper for global (server-wide) rate limits. +# All players share the same bucket under this key. +# +# Usage: +# function datalib:systems/rate_limit/global/check {key:"boss_spawn"} +# +# Rule must be registered via: +# function datalib:systems/rate_limit/global/config {key:"boss_spawn",limit:1,window:24000} +# +# Output → datalib:output result 1b=ALLOWED 0b=DENIED + +$function datalib:systems/rate_limit/check {key:"global:$(key)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/global/config.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/global/config.mcfunction new file mode 100644 index 0000000..7c460a4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/global/config.mcfunction @@ -0,0 +1,9 @@ +# datalib:systems/rate_limit/global/config — Register a global (server-wide) rate limit [MACRO] +# +# Usage: +# function datalib:systems/rate_limit/global/config {key:"boss_spawn",limit:1,window:24000} +# +# Equivalent to: +# function datalib:systems/rate_limit/config {key:"global:boss_spawn",limit:1,window:24000} + +$function datalib:systems/rate_limit/config {key:"global:$(key)",limit:$(limit),window:$(window)} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/player/check.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/player/check.mcfunction new file mode 100644 index 0000000..7d76fac --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/player/check.mcfunction @@ -0,0 +1,18 @@ +# datalib:systems/rate_limit/player/check — Per-player sliding window check [MACRO] +# +# Builds the compound key "player::" and ensures the bucket exists. +# If no bucket exists yet for this player, auto-creates from the player_template. +# +# Usage: +# $function datalib:systems/rate_limit/player/check {key:"shop",player:"$(player)"} +# +# Rule template must be registered via: +# function datalib:systems/rate_limit/player/config {key:"shop",limit:3,window:600} +# +# Output → datalib:output result 1b=ALLOWED 0b=DENIED + +# Auto-seed: if bucket for this player+key doesn't exist, create from template +$execute unless data storage datalib:engine "rate_limit.rules.player:$(key):$(player)" run function datalib:core/internal/systems/rate_limit/player/ensure {tpl:"$(key)",full:"player:$(key):$(player)"} + +# Delegate to generic check with full compound key +$function datalib:systems/rate_limit/check {key:"player:$(key):$(player)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/player/config.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/player/config.mcfunction new file mode 100644 index 0000000..3e2a74d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/rate_limit/player/config.mcfunction @@ -0,0 +1,17 @@ +# datalib:systems/rate_limit/player/config — Register per-player rate limit rule [MACRO] +# +# Creates one template rule. The player bucket key is "player::". +# This function registers the TEMPLATE rule used for ALL players under this key. +# Individual player buckets are auto-created on first check. +# +# Usage: +# function datalib:systems/rate_limit/player/config {key:"shop",limit:3,window:600} +# +# This allows: $function datalib:systems/rate_limit/player/check {key:"shop",player:"$(player)"} +# +# Note: each player gets their own independent sliding window bucket. +# To register a SHARED (global) rule use datalib:systems/rate_limit/config directly. + +# Store template rule — concrete player buckets inherit limit+window on first hit +$data modify storage datalib:engine rate_limit.player_templates.$(key) set value {limit:$(limit),window:$(window)} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"rate_limit/player/config ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"player:$(key):","color":"white"},{"text":" limit=","color":"#555555"},{"text":"$(limit)","color":"green"},{"text":" window=","color":"#555555"},{"text":"$(window)","color":"green"},{"text":"t","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/security/menu.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/security/menu.mcfunction new file mode 100644 index 0000000..e4cdef5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/security/menu.mcfunction @@ -0,0 +1,18 @@ +# datalib:systems/security/menu [1.21.6 OVERLAY] +# Dialog-based security menu. Replaces tellraw version on 1.21.6+. +# Requires: dl.perm_level >= security.admin_min_level +# +# NOTE: Dialog cannot read storage/score natively — values are injected +# via macro ($) in menu_build.mcfunction. +execute unless function datalib:debug/tools/utils/perm_check run return 0 + +# Collect dynamic values into datalib:input for macro interpolation +data modify storage datalib:input sandbox set from storage datalib:engine sandbox +data modify storage datalib:input trust_players set from storage datalib:engine security.trust_players +data modify storage datalib:input cmd_min_level set from storage datalib:engine security.cmd_min_level +data modify storage datalib:input sandbox_lvl set from storage datalib:engine security.sandbox_cmd_min_level +data modify storage datalib:input admin_min_level set from storage datalib:engine security.admin_min_level +data modify storage datalib:input admin_override set from storage datalib:engine security.admin_can_override +execute store result storage datalib:input perm_level int 1 run scoreboard players get @s dl.perm_level + +function datalib:systems/security/menu_build with storage datalib:input {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/security/menu_build.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/security/menu_build.mcfunction new file mode 100644 index 0000000..5dc3a18 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/security/menu_build.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/security/menu_build [1.21.6 OVERLAY — MACRO] +# Called by menu.mcfunction with storage datalib:input {}. +# Builds the dialog with runtime values injected via macro ($). +# +# INPUT (macro args from datalib:input): +# $(sandbox) — 0b / 1b +# $(trust_players) — 0b / 1b +# $(cmd_min_level) — int +# $(sandbox_lvl) — int +# $(admin_min_level) — int +# $(admin_override) — 0b / 1b +# $(perm_level) — int (caller's dl.perm_level) +data modify storage datalib:engine dialog.DIALOG set value {type:"minecraft:multi_action",title:{text:"DL Security",color:"#00AAAA",bold:1b},body:{type:"minecraft:plain_message",contents:"sandbox: $(sandbox) trust_players: $(trust_players)cmd_min_level: $(cmd_min_level) sandbox_level: $(sandbox_lvl)admin_min_level: $(admin_min_level) admin_override: $(admin_override)Your perm_level: $(perm_level)"},inputs:[{type:"minecraft:boolean",key:"sb",label:"Sandbox",initial:1b,on_true:"1b",on_false:"0b"}],actions:[{label:{text:"Refresh",color:"aqua",italic:0b},action:{type:"minecraft:run_command",command:"/function datalib:systems/security/menu"}}],pause:0b,can_close_with_escape:1b,after_action:"none"} +$data modify storage datalib:engine dialog.DIALOG.actions append value {label:{text:"Toggle Sandbox",color:"green",italic:0b},action:{type:"minecraft:dynamic/run_command",template:"/data modify storage dataLib sandbox set value $(sb)"}} +function datalib:api/dialog/load \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/sound/play.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/sound/play.mcfunction new file mode 100644 index 0000000..d3ff9c5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/sound/play.mcfunction @@ -0,0 +1,21 @@ +# datalib:systems/sound/play +# Entity-targeted playsound wrapper. +# Runs at the executor's position — call inside execute as at @s if +# positional accuracy matters (e.g. per-player distance checks). +# +# Input (datalib:input sound): +# sound — sound event ID e.g. "minecraft:entity.player.levelup" +# category — source category master|music|record|weather|block| +# hostile|neutral|player|ambient|voice +# target — selector string e.g. "@a" "@s" "@p" +# volume — float ≥ 0 1.0 = full volume, >1 increases range +# pitch — float 0.0–2.0 1.0 = normal pitch +# +# Usage: +# data modify storage datalib:input sound set value \ +# {sound:"minecraft:entity.player.levelup",category:"player",\ +# target:"@a",volume:1.0f,pitch:1.0f} +# function datalib:systems/sound/play with storage datalib:input sound + +$playsound $(sound) $(category) $(target) ~ ~ ~ $(volume) $(pitch) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"sound/play ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(sound)","color":"white"},{"text":" [","color":"#555555"},{"text":"$(category)","color":"green"},{"text":"]","color":"#555555"},{"text":" vol:","color":"#555555"},{"text":"$(volume)","color":"yellow"},{"text":" pitch:","color":"#555555"},{"text":"$(pitch)","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/sound/play_at.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/sound/play_at.mcfunction new file mode 100644 index 0000000..39a31bc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/sound/play_at.mcfunction @@ -0,0 +1,20 @@ +# datalib:systems/sound/play_at +# Coordinate-targeted playsound. Anyone within range of (x,y,z) hears it. +# Use for world-position sounds (explosions, ambient effects, etc.). +# +# Input (datalib:input sound): +# sound — sound event ID +# category — source category +# x, y, z — world coordinates (int or double) +# volume — float ≥ 0 (controls audible radius: radius = 16*volume blocks) +# pitch — float 0.0–2.0 +# min_volume — float 0.0–1.0 (audibility outside radius; 0.0 = silent outside) +# +# Usage: +# data modify storage datalib:input sound set value \ +# {sound:"minecraft:block.note_block.bell",category:"block",\ +# x:0,y:64,z:0,volume:1.0f,pitch:1.0f,min_volume:0.0f} +# function datalib:systems/sound/play_at with storage datalib:input sound + +$playsound $(sound) $(category) @a $(x) $(y) $(z) $(volume) $(pitch) $(min_volume) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"sound/play_at ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(sound)","color":"white"},{"text":" @ ","color":"#555555"},{"text":"$(x) $(y) $(z)","color":"#AAAAAA"},{"text":" vol:","color":"#555555"},{"text":"$(volume)","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/sound/stop.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/sound/stop.mcfunction new file mode 100644 index 0000000..29e05d7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/sound/stop.mcfunction @@ -0,0 +1,15 @@ +# datalib:systems/sound/stop +# Stops a specific sound (and category) on a target selector. +# +# Input (datalib:input sound): +# target — selector string e.g. "@a" "@s" +# category — source category (use "*" to match all categories) +# sound — sound event ID (use "*" to stop all sounds in category) +# +# Usage: +# data modify storage datalib:input sound set value \ +# {target:"@a",category:"*",sound:"*"} +# function datalib:systems/sound/stop with storage datalib:input sound + +$stopsound $(target) $(category) $(sound) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"sound/stop ","color":"aqua"},{"text":"→ ","color":"#555555"},{"text":"$(target)","color":"white"},{"text":" [","color":"#555555"},{"text":"$(category)","color":"green"},{"text":"] ","color":"#555555"},{"text":"$(sound)","color":"#AAAAAA"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/announce.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/announce.mcfunction new file mode 100644 index 0000000..86c054e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/announce.mcfunction @@ -0,0 +1 @@ +$tellraw @a {"text":"$(message)","color":"$(color)"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/announce_prefix.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/announce_prefix.mcfunction new file mode 100644 index 0000000..dabb7cb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/announce_prefix.mcfunction @@ -0,0 +1 @@ +$tellraw @a [{"text":"$(prefix) ","color":"$(prefix_color)","bold":true},{"text":"$(message)","color":"$(color)","bold":false}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/format_coords.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/format_coords.mcfunction new file mode 100644 index 0000000..20fd7fb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/format_coords.mcfunction @@ -0,0 +1,39 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/string/format_coords +# Stores three integer coordinates in datalib:output and exposes +# them for use in tellraw components. +# +# Input : $(x) → X coordinate (integer) +# $(y) → Y coordinate (integer) +# $(z) → Z coordinate (integer) +# +# Output: datalib:output x → X int +# datalib:output y → Y int +# datalib:output z → Z int +# +# USAGE — embed the stored values directly in a tellraw: +# function datalib:systems/string/format_coords {x:100,y:64,z:-200} +# tellraw @a ["", +# {"text":"(","color":"gray"}, +# {"storage":"datalib:output","nbt":"x","color":"green"}, +# {"text":", ","color":"gray"}, +# {"storage":"datalib:output","nbt":"y","color":"green"}, +# {"text":", ","color":"gray"}, +# {"storage":"datalib:output","nbt":"z","color":"green"}, +# {"text":")","color":"gray"} +# ] +# → (100, 64, -200) +# +# NOTE: datalib:output is shared — copy x/y/z to your own storage +# before making other datalib calls if you need them later. +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $fc_x dl.tmp $(x) +$scoreboard players set $fc_y dl.tmp $(y) +$scoreboard players set $fc_z dl.tmp $(z) + +execute store result storage datalib:output x int 1 run scoreboard players get $fc_x dl.tmp +execute store result storage datalib:output y int 1 run scoreboard players get $fc_y dl.tmp +execute store result storage datalib:output z int 1 run scoreboard players get $fc_z dl.tmp + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"string/format_coords ","color":"aqua"},{"text":"(","color":"#555555"},{"storage":"datalib:output","nbt":"x","color":"#aaffaa"},{"text":", ","color":"#555555"},{"storage":"datalib:output","nbt":"y","color":"#aaffaa"},{"text":", ","color":"#555555"},{"storage":"datalib:output","nbt":"z","color":"#aaffaa"},{"text":")","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/format_number.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/format_number.mcfunction new file mode 100644 index 0000000..dcbefe2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/format_number.mcfunction @@ -0,0 +1,46 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/string/format_number +# Converts large numbers to readable abbreviations. +# Input : $(value) → integer +# Output: datalib:output text → abbreviated text (storage string) +# datalib:output value → original value +# datalib:output suffix → k / M / B / "" suffix +# datalib:output short → abbreviated integer part +# +# Examples: +# 500 → "500" +# 1500 → "1.5k" +# 1000000 → "1M" +# 2500000 → "2.5M" +# 1000000000 → "1B" +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $fn_v dl.tmp $(value) +execute store result storage datalib:output value int 1 run scoreboard players get $fn_v dl.tmp + +# < 1000 → plain number +execute if score $fn_v dl.tmp matches ..999 run data modify storage datalib:output suffix set value "" +execute if score $fn_v dl.tmp matches ..999 run execute store result storage datalib:output short int 1 run scoreboard players get $fn_v dl.tmp +execute if score $fn_v dl.tmp matches ..999 run return 0 + +# 1000 – 999999 → k +execute if score $fn_v dl.tmp matches 1000..999999 run data modify storage datalib:output suffix set value "k" +execute if score $fn_v dl.tmp matches 1000..999999 run scoreboard players set $fn_div dl.tmp 100 +execute if score $fn_v dl.tmp matches 1000..999999 run scoreboard players operation $fn_v dl.tmp /= $fn_div dl.tmp +execute if score $fn_v dl.tmp matches 1000..999999 run execute store result storage datalib:output short int 1 run scoreboard players get $fn_v dl.tmp +execute if score $fn_v dl.tmp matches 1000..999999 run return 0 + +# 1_000_000 – 999_999_999 → M +execute if score $fn_v dl.tmp matches 1000000..999999999 run data modify storage datalib:output suffix set value "M" +execute if score $fn_v dl.tmp matches 1000000..999999999 run scoreboard players set $fn_div dl.tmp 100000 +execute if score $fn_v dl.tmp matches 1000000..999999999 run scoreboard players operation $fn_v dl.tmp /= $fn_div dl.tmp +execute if score $fn_v dl.tmp matches 1000000..999999999 run execute store result storage datalib:output short int 1 run scoreboard players get $fn_v dl.tmp +execute if score $fn_v dl.tmp matches 1000000..999999999 run return 0 + +# >= 1_000_000_000 → B +execute if score $fn_v dl.tmp matches 1000000000.. run data modify storage datalib:output suffix set value "B" +execute if score $fn_v dl.tmp matches 1000000000.. run scoreboard players set $fn_div dl.tmp 100000000 +execute if score $fn_v dl.tmp matches 1000000000.. run scoreboard players operation $fn_v dl.tmp /= $fn_div dl.tmp +execute if score $fn_v dl.tmp matches 1000000000.. run execute store result storage datalib:output short int 1 run scoreboard players get $fn_v dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"string/format_number ","color":"aqua"},{"text":"$(value) → ","color":"gray"},{"storage":"datalib:output","nbt":"short","color":"green"},{"storage":"datalib:output","nbt":"suffix","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/format_ticks.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/format_ticks.mcfunction new file mode 100644 index 0000000..fd514ab --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/format_ticks.mcfunction @@ -0,0 +1,18 @@ +$scoreboard players set $ft_t dl.tmp $(ticks) + +scoreboard players set $ft_20 dl.tmp 20 +scoreboard players operation $ft_s dl.tmp = $ft_t dl.tmp +scoreboard players operation $ft_s dl.tmp /= $ft_20 dl.tmp + +execute store result storage datalib:output total_seconds int 1 run scoreboard players get $ft_s dl.tmp + +scoreboard players set $ft_60 dl.tmp 60 +scoreboard players operation $ft_m dl.tmp = $ft_s dl.tmp +scoreboard players operation $ft_m dl.tmp /= $ft_60 dl.tmp + +scoreboard players operation $ft_s dl.tmp %= $ft_60 dl.tmp + +execute store result storage datalib:output minutes int 1 run scoreboard players get $ft_m dl.tmp +execute store result storage datalib:output seconds int 1 run scoreboard players get $ft_s dl.tmp + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"string/format_ticks ","color":"aqua"},{"text":"$(ticks)t","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"minutes","color":"green"},{"text":"m ","color":"#555555"},{"storage":"datalib:output","nbt":"seconds","color":"green"},{"text":"s","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/header.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/header.mcfunction new file mode 100644 index 0000000..a0d5c05 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/header.mcfunction @@ -0,0 +1 @@ +$tellraw $(target) [{"text":"◆── ","color":"$(color)"},{"text":"$(text)","color":"$(color)","bold":true},{"text":" ──◆","color":"$(color)"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/hover_text.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/hover_text.mcfunction new file mode 100644 index 0000000..48f301d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/hover_text.mcfunction @@ -0,0 +1 @@ +$tellraw $(target) {"text":"$(text)","color":"$(color)","hover_event":{"action":"show_text","value":{"text":"$(hover)","color":"$(hover_color)"}}} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/ordinal.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/ordinal.mcfunction new file mode 100644 index 0000000..daf6371 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/ordinal.mcfunction @@ -0,0 +1,49 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/string/ordinal +# Determines the English ordinal suffix for a positive integer. +# Handles the 11th/12th/13th exception correctly. +# +# Input : $(n) → positive integer (1-based) +# Output: datalib:output n → original value (int) +# datalib:output suffix → "st" / "nd" / "rd" / "th" +# +# To display "3rd place" in chat: +# function datalib:systems/string/ordinal {n:3} +# tellraw @a ["", +# {"storage":"datalib:output","nbt":"n"}, +# {"storage":"datalib:output","nbt":"suffix","color":"gold"}, +# {"text":" place"}] +# +# Examples: +# {n:1} → suffix="st" {n:11} → suffix="th" +# {n:2} → suffix="nd" {n:12} → suffix="th" +# {n:3} → suffix="rd" {n:13} → suffix="th" +# {n:4} → suffix="th" {n:21} → suffix="st" +# {n:22} → suffix="nd" {n:103}→ suffix="rd" +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set $ord_n dl.tmp $(n) +execute store result storage datalib:output n int 1 run scoreboard players get $ord_n dl.tmp + +# last-two-digits mod 100 (teen detection) +scoreboard players operation $ord_h dl.tmp = $ord_n dl.tmp +scoreboard players set $ord_100 dl.tmp 100 +scoreboard players operation $ord_h dl.tmp %= $ord_100 dl.tmp + +# last digit mod 10 (suffix selection) +scoreboard players operation $ord_d dl.tmp = $ord_n dl.tmp +scoreboard players set $ord_10 dl.tmp 10 +scoreboard players operation $ord_d dl.tmp %= $ord_10 dl.tmp + +# Default: th +data modify storage datalib:output suffix set value "th" + +# Apply last-digit rules +execute if score $ord_d dl.tmp matches 1 run data modify storage datalib:output suffix set value "st" +execute if score $ord_d dl.tmp matches 2 run data modify storage datalib:output suffix set value "nd" +execute if score $ord_d dl.tmp matches 3 run data modify storage datalib:output suffix set value "rd" + +# Teen override — 11, 12, 13 must always be "th" +execute if score $ord_h dl.tmp matches 11..13 run data modify storage datalib:output suffix set value "th" + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"string/ordinal ","color":"aqua"},{"text":"$(n)","color":"white"},{"text":" → ","color":"#555555"},{"storage":"datalib:output","nbt":"suffix","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/pad_left.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/pad_left.mcfunction new file mode 100644 index 0000000..a1e35bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/pad_left.mcfunction @@ -0,0 +1,29 @@ +$scoreboard players set $pl_v dl.tmp $(value) +$scoreboard players set $pl_w dl.tmp $(width) + +scoreboard players set $pl_neg dl.tmp -1 +execute if score $pl_v dl.tmp matches ..-1 run scoreboard players operation $pl_v dl.tmp *= $pl_neg dl.tmp + +scoreboard players set $pl_digits dl.tmp 1 +execute if score $pl_v dl.tmp matches 10.. run scoreboard players set $pl_digits dl.tmp 2 +execute if score $pl_v dl.tmp matches 100.. run scoreboard players set $pl_digits dl.tmp 3 +execute if score $pl_v dl.tmp matches 1000.. run scoreboard players set $pl_digits dl.tmp 4 +execute if score $pl_v dl.tmp matches 10000.. run scoreboard players set $pl_digits dl.tmp 5 +execute if score $pl_v dl.tmp matches 100000.. run scoreboard players set $pl_digits dl.tmp 6 +execute if score $pl_v dl.tmp matches 1000000.. run scoreboard players set $pl_digits dl.tmp 7 +execute if score $pl_v dl.tmp matches 10000000.. run scoreboard players set $pl_digits dl.tmp 8 + +scoreboard players operation $pl_pad dl.tmp = $pl_w dl.tmp +scoreboard players operation $pl_pad dl.tmp -= $pl_digits dl.tmp + +data modify storage datalib:output result set value "" + +execute if score $pl_pad dl.tmp matches 1.. run data modify storage datalib:output result set value "0" +execute if score $pl_pad dl.tmp matches 2.. run data modify storage datalib:output result set value "00" +execute if score $pl_pad dl.tmp matches 3.. run data modify storage datalib:output result set value "000" +execute if score $pl_pad dl.tmp matches 4.. run data modify storage datalib:output result set value "0000" +execute if score $pl_pad dl.tmp matches 5.. run data modify storage datalib:output result set value "00000" +execute if score $pl_pad dl.tmp matches 6.. run data modify storage datalib:output result set value "000000" +execute if score $pl_pad dl.tmp matches 7.. run data modify storage datalib:output result set value "0000000" + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"string/pad_left ","color":"aqua"},{"text":"$(value) w=$(width) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"},{"text":"[NUM]","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/player_raw.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/player_raw.mcfunction new file mode 100644 index 0000000..fefa830 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/player_raw.mcfunction @@ -0,0 +1 @@ +$tellraw $(target) $(json) diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/pluralize.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/pluralize.mcfunction new file mode 100644 index 0000000..88b53e5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/pluralize.mcfunction @@ -0,0 +1,26 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/string/pluralize +# Stores the singular or plural form of a word based on count. +# Simple English rule: count == 1 → singular, else → plural. +# +# INPUT : $(count) → integer count +# $(singular) → singular form (e.g. "item") +# $(plural) → plural form (e.g. "items") +# OUTPUT: datalib:output result → chosen string +# datalib:output count → original count +# +# EXAMPLE: +# function datalib:systems/string/pluralize {count:3,singular:"apple",plural:"apples"} +# → datalib:output result = "apples" +# ───────────────────────────────────────────────────────────────── + +$scoreboard players set #plr_c dl.tmp $(count) +execute store result storage datalib:output count int 1 run scoreboard players get #plr_c dl.tmp + +$data modify storage datalib:engine _plr_singular set value $(singular) +$data modify storage datalib:engine _plr_plural set value $(plural) + +data modify storage datalib:output result set from storage datalib:engine _plr_plural +execute if score #plr_c dl.tmp matches 1 run data modify storage datalib:output result set from storage datalib:engine _plr_singular + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"string/pluralize ","color":"aqua"},{"text":"count=$(count) → ","color":"gray"},{"storage":"datalib:output","nbt":"result","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/progress_bar.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/progress_bar.mcfunction new file mode 100644 index 0000000..f6548f1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/progress_bar.mcfunction @@ -0,0 +1,24 @@ +$scoreboard players set $pb1_seg dl.tmp $(current) +$scoreboard players set $pb1_max dl.tmp $(max) + +execute if score $pb1_max dl.tmp matches ..0 run return fail + +scoreboard players set $pb1_ten dl.tmp 10 +scoreboard players operation $pb1_seg dl.tmp *= $pb1_ten dl.tmp +scoreboard players operation $pb1_seg dl.tmp /= $pb1_max dl.tmp + +execute if score $pb1_seg dl.tmp matches ..0 run scoreboard players set $pb1_seg dl.tmp 0 +execute if score $pb1_seg dl.tmp matches 10.. run scoreboard players set $pb1_seg dl.tmp 10 + +$execute if score $pb1_seg dl.tmp matches 0 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) ░░░░░░░░░░"} +$execute if score $pb1_seg dl.tmp matches 1 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) █░░░░░░░░░"} +$execute if score $pb1_seg dl.tmp matches 2 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) ██░░░░░░░░"} +$execute if score $pb1_seg dl.tmp matches 3 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) ███░░░░░░░"} +$execute if score $pb1_seg dl.tmp matches 4 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) ████░░░░░░"} +$execute if score $pb1_seg dl.tmp matches 5 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) █████░░░░░"} +$execute if score $pb1_seg dl.tmp matches 6 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) ██████░░░░"} +$execute if score $pb1_seg dl.tmp matches 7 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) ███████░░░"} +$execute if score $pb1_seg dl.tmp matches 8 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) ████████░░"} +$execute if score $pb1_seg dl.tmp matches 9 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) █████████░"} +$execute if score $pb1_seg dl.tmp matches 10 run title @a[name=$(player),limit=1] actionbar {"text":"$(label) ██████████"} +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"string/progress_bar ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(label)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/progress_bar_self.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/progress_bar_self.mcfunction new file mode 100644 index 0000000..e111324 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/progress_bar_self.mcfunction @@ -0,0 +1,23 @@ +$scoreboard players set $pbs_max dl.tmp $(pb_max) +execute if score $pbs_max dl.tmp matches ..0 run return fail + +$execute store result score $pbs_seg dl.tmp run scoreboard players get @s $(pb_obj) + +scoreboard players set $pbs_ten dl.tmp 10 +scoreboard players operation $pbs_seg dl.tmp *= $pbs_ten dl.tmp +scoreboard players operation $pbs_seg dl.tmp /= $pbs_max dl.tmp + +execute if score $pbs_seg dl.tmp matches ..0 run scoreboard players set $pbs_seg dl.tmp 0 +execute if score $pbs_seg dl.tmp matches 10.. run scoreboard players set $pbs_seg dl.tmp 10 + +$execute if score $pbs_seg dl.tmp matches 0 run title @s actionbar {"text":"$(pb_label) ░░░░░░░░░░"} +$execute if score $pbs_seg dl.tmp matches 1 run title @s actionbar {"text":"$(pb_label) █░░░░░░░░░"} +$execute if score $pbs_seg dl.tmp matches 2 run title @s actionbar {"text":"$(pb_label) ██░░░░░░░░"} +$execute if score $pbs_seg dl.tmp matches 3 run title @s actionbar {"text":"$(pb_label) ███░░░░░░░"} +$execute if score $pbs_seg dl.tmp matches 4 run title @s actionbar {"text":"$(pb_label) ████░░░░░░"} +$execute if score $pbs_seg dl.tmp matches 5 run title @s actionbar {"text":"$(pb_label) █████░░░░░"} +$execute if score $pbs_seg dl.tmp matches 6 run title @s actionbar {"text":"$(pb_label) ██████░░░░"} +$execute if score $pbs_seg dl.tmp matches 7 run title @s actionbar {"text":"$(pb_label) ███████░░░"} +$execute if score $pbs_seg dl.tmp matches 8 run title @s actionbar {"text":"$(pb_label) ████████░░"} +$execute if score $pbs_seg dl.tmp matches 9 run title @s actionbar {"text":"$(pb_label) █████████░"} +$execute if score $pbs_seg dl.tmp matches 10 run title @s actionbar {"text":"$(pb_label) ██████████"} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/repeat.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/repeat.mcfunction new file mode 100644 index 0000000..3973e49 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/repeat.mcfunction @@ -0,0 +1,33 @@ +# datalib:systems/string/repeat +# Repeats a single character (char) exactly `count` times (1–16). +# Params: char (single character), count (integer 1–16) +# Output: datalib:output result = repeated string +# Note: count is clamped to 1–16. Larger repeats should be assembled by the caller. +# +# Implementation: static dispatch to internal/repeat_N which sets the literal string. +# Each internal file uses a single $data modify line with N $(char) expansions. + +data modify storage datalib:output result set value "" + +$scoreboard players set $sr_n dl.tmp $(count) +execute if score $sr_n dl.tmp matches ..0 run scoreboard players set $sr_n dl.tmp 1 +execute if score $sr_n dl.tmp matches 17.. run scoreboard players set $sr_n dl.tmp 16 + +execute if score $sr_n dl.tmp matches 1 run function datalib:core/internal/systems/string/repeat_1 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 2 run function datalib:core/internal/systems/string/repeat_2 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 3 run function datalib:core/internal/systems/string/repeat_3 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 4 run function datalib:core/internal/systems/string/repeat_4 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 5 run function datalib:core/internal/systems/string/repeat_5 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 6 run function datalib:core/internal/systems/string/repeat_6 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 7 run function datalib:core/internal/systems/string/repeat_7 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 8 run function datalib:core/internal/systems/string/repeat_8 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 9 run function datalib:core/internal/systems/string/repeat_9 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 10 run function datalib:core/internal/systems/string/repeat_10 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 11 run function datalib:core/internal/systems/string/repeat_11 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 12 run function datalib:core/internal/systems/string/repeat_12 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 13 run function datalib:core/internal/systems/string/repeat_13 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 14 run function datalib:core/internal/systems/string/repeat_14 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 15 run function datalib:core/internal/systems/string/repeat_15 with storage datalib:input {} +execute if score $sr_n dl.tmp matches 16 run function datalib:core/internal/systems/string/repeat_16 with storage datalib:input {} + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"string/repeat ","color":"aqua"},{"text":"'$(char)'","color":"yellow"},{"text":" × $(count) → ","color":"#555555"},{"storage":"datalib:output","nbt":"result","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/score_display.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/score_display.mcfunction new file mode 100644 index 0000000..7cdcfc4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/score_display.mcfunction @@ -0,0 +1,20 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/string/score_display +# Sends a formatted label: value line from a scoreboard objective. +# Input : $(target) → selector to receive the message +# $(label) → display label (e.g. "Points") +# $(player) → scoreboard player name (e.g. "@s", "") +# $(objective) → scoreboard objective name +# $(color) → value color (e.g. "green", "gold") +# +# Example: +# data modify storage datalib:input target set value "@s" +# data modify storage datalib:input label set value "Points" +# data modify storage datalib:input player set value "@s" +# data modify storage datalib:input objective set value "myPoints" +# data modify storage datalib:input color set value "green" +# function datalib:systems/string/score_display with storage datalib:input {} +# # Output: "Points 42" (42 from scoreboard) +# ───────────────────────────────────────────────────────────────── + +$tellraw $(target) ["",{"text":"$(label)","color":"gray"},{"text":" ","color":"#555555"},{"score":{"name":"$(player)","objective":"$(objective)"},"color":"$(color)","bold":true}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/separator.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/separator.mcfunction new file mode 100644 index 0000000..a08af51 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/separator.mcfunction @@ -0,0 +1,19 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/string/separator +# Sends a decorative horizontal separator line. +# Input : $(target) → selector +# $(color) → line color (e.g. "gray", "aqua", "#555555") +# $(label) → optional center label (use "" for plain line) +# +# Example (plain line): +# data modify storage datalib:input target set value "@s" +# data modify storage datalib:input color set value "gray" +# data modify storage datalib:input label set value "" +# function datalib:systems/string/separator with storage datalib:input {} +# +# Example (labeled): +# data modify storage datalib:input label set value " Settings " +# function datalib:systems/string/separator with storage datalib:input {} +# ───────────────────────────────────────────────────────────────── + +$tellraw $(target) ["",{"text":"──────────","color":"$(color)"},{"text":"$(label)","color":"$(color)","bold":true},{"text":"──────────","color":"$(color)"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/tag_badge.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/tag_badge.mcfunction new file mode 100644 index 0000000..f6428aa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/tag_badge.mcfunction @@ -0,0 +1,17 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/string/tag_badge +# Sends a styled [TAG] badge with optional hover text. +# Input : $(target) → selector +# $(tag) → badge label (e.g. "ADMIN", "VIP") +# $(color) → badge color (e.g. "red", "gold") +# $(hover) → hover tooltip text +# +# Example: +# data modify storage datalib:input target set value "@s" +# data modify storage datalib:input tag set value "ADMIN" +# data modify storage datalib:input color set value "red" +# data modify storage datalib:input hover set value "Server Administrator" +# function datalib:systems/string/tag_badge with storage datalib:input {} +# ───────────────────────────────────────────────────────────────── + +$tellraw $(target) ["",{"text":"[","color":"#555555","bold":false},{"text":"$(tag)","color":"$(color)","bold":true,"hover_event":{"action":"show_text","value":{"text":"$(hover)","color":"gray","italic":true}}},{"text":"]","color":"#555555","bold":false}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/tooltip_item.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/tooltip_item.mcfunction new file mode 100644 index 0000000..4500bc1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/tooltip_item.mcfunction @@ -0,0 +1 @@ +$tellraw $(target) {"text":"$(text)","color":"$(color)","hover_event":{"action":"show_item","value":{"id":"$(item)","count":1}}} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/truncate.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/truncate.mcfunction new file mode 100644 index 0000000..75270bc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/string/truncate.mcfunction @@ -0,0 +1,29 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:systems/string/truncate +# Displays text in the named player's actionbar, optionally with a +# suffix to indicate truncation. The caller decides whether the text +# needs truncating and passes truncated:1b or truncated:0b. +# Because mcfunction cannot measure string byte-length at runtime, +# length-checking must be done externally. +# +# INPUT : $(player) → player name +# $(text) → string to display +# $(suffix) → suffix shown when truncated (e.g. "...") +# $(truncated) → 1b = append suffix, 0b = show as-is +# OUTPUT: datalib:output text → stored original text +# +# EXAMPLE: +# function datalib:systems/string/truncate {player:"Steve",text:"Hello Wor",suffix:"...",truncated:1b} +# → actionbar: "Hello Wor..." +# ───────────────────────────────────────────────────────────────── + +$data modify storage datalib:output text set value $(text) +$data modify storage datalib:engine _trunc_t set value $(truncated) + +scoreboard players set #trunc_flag dl.tmp 0 +execute store result score #trunc_flag dl.tmp run data get storage datalib:engine _trunc_t + +$execute if score #trunc_flag dl.tmp matches 0 run title @a[name=$(player),limit=1] actionbar {"storage":"datalib:output","nbt":"text"} +$execute if score #trunc_flag dl.tmp matches 1.. run title @a[name=$(player),limit=1] actionbar ["",{"storage":"datalib:output","nbt":"text"},{"text":"$(suffix)","color":"gray"}] + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"string/truncate ","color":"aqua"},{"text":"$(player) truncated=$(truncated)","color":"gray"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/cache_clear.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/cache_clear.mcfunction new file mode 100644 index 0000000..d5f6d15 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/cache_clear.mcfunction @@ -0,0 +1,11 @@ +# ============================================================ +# datalib:systems/uuid/cache_clear +# Clears all cache (all entries saved with uuid/store) +# +# KULLANIM: +# function datalib:systems/uuid/cache_clear +# +# Warning: This operation is irreversible. All stored UUIDs are deleted. +# Typically used when resetting the world or when a player leaves. +# ============================================================ +data modify storage datalib:engine uuid_cache set value {} diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/forget.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/forget.mcfunction new file mode 100644 index 0000000..33e289a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/forget.mcfunction @@ -0,0 +1,12 @@ +# ============================================================ +# datalib:systems/uuid/forget +# Deletes a UUID entry from the cache +# +# KULLANIM: +# data modify storage datalib:input key set value "benim_anahtarim" +# function datalib:systems/uuid/forget +# +# INPUT: +# datalib:input key → name of the key to delete +# ============================================================ +function datalib:core/internal/systems/uuid/forget_key with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/from_array.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/from_array.mcfunction new file mode 100644 index 0000000..cfc4f20 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/from_array.mcfunction @@ -0,0 +1,27 @@ +# ============================================================ +# datalib:systems/uuid/from_array +# Converts int array in datalib:input value to UUID string +# +# KULLANIM: +# data modify storage datalib:input value set value [I; a, b, c, d] +# function datalib:systems/uuid/from_array +# +# INPUT: +# datalib:input value → [I; int0, int1, int2, int3] +# +# OUTPUT: +# datalib:input value → "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +# +# Output is written to datalib:input value (AME standard) +# ============================================================ + +# Read int[4] array directly from datalib:input value +execute store result score $uuid.0 dl.tmp run data get storage datalib:input value[0] +execute store result score $uuid.1 dl.tmp run data get storage datalib:input value[1] +execute store result score $uuid.2 dl.tmp run data get storage datalib:input value[2] +execute store result score $uuid.3 dl.tmp run data get storage datalib:input value[3] + +# Split into 16 bytes → convert to hex chars → concatenate UUID string +function datalib:core/internal/systems/uuid/extract_bytes +function datalib:core/internal/systems/uuid/get_hexes with storage datalib:uuid _tmp +function datalib:core/internal/systems/uuid/concat with storage datalib:uuid _tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/from_entity.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/from_entity.mcfunction new file mode 100644 index 0000000..4ae6ee1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/from_entity.mcfunction @@ -0,0 +1,28 @@ +# ============================================================ +# datalib:systems/uuid/from_entity +# Converts the current entity's (@s) UUID to a hex string +# +# KULLANIM: +# execute as run function datalib:systems/uuid/from_entity +# +# OUTPUT: +# datalib:input value → "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +# +# Output is written to datalib:input value (AME standard) +# Direct NBT read on each call — always up to date +# Negative byte error is fixed (see extract_bytes) +# ============================================================ + +# Copy entity UUID as int[4] to working storage +data modify storage datalib:uuid _work set from entity @s UUID + +# Load four ints to scoreboard (without writing scores to entity) +execute store result score $uuid.0 dl.tmp run data get storage datalib:uuid _work[0] +execute store result score $uuid.1 dl.tmp run data get storage datalib:uuid _work[1] +execute store result score $uuid.2 dl.tmp run data get storage datalib:uuid _work[2] +execute store result score $uuid.3 dl.tmp run data get storage datalib:uuid _work[3] + +# Split into 16 bytes → convert to hex chars → concatenate UUID string +function datalib:core/internal/systems/uuid/extract_bytes +function datalib:core/internal/systems/uuid/get_hexes with storage datalib:uuid _tmp +function datalib:core/internal/systems/uuid/concat with storage datalib:uuid _tmp diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/has.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/has.mcfunction new file mode 100644 index 0000000..a748af3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/has.mcfunction @@ -0,0 +1,17 @@ +# ============================================================ +# datalib:systems/uuid/has +# Checks whether the specified key exists in the cache +# +# EXAMPLE: +# data modify storage datalib:input key set value "my_key" +# execute if score $result dl.tmp matches 1 ... +# function datalib:systems/uuid/has +# +# INPUT: +# datalib:input key → name of the key to check +# +# OUTPUT: +# $uuid.has dl.tmp → 1 (found) or 0 (not found) +# ============================================================ +scoreboard players set $uuid.has dl.tmp 0 +function datalib:core/internal/systems/uuid/has_check with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/match.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/match.mcfunction new file mode 100644 index 0000000..f128834 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/match.mcfunction @@ -0,0 +1,27 @@ +# ============================================================ +# datalib:systems/uuid/match +# Compares @s entity's UUID with datalib:input value +# If matched, runs datalib:input func function +# +# KULLANIM: +# data modify storage datalib:input value set value "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +# data modify storage datalib:input func set value "mynamespace:my_function" +# execute as run function datalib:systems/uuid/match +# +# INPUT: +# datalib:input value → UUID string to compare (expected) +# datalib:input func → function to run if matched +# +# NOTE: func is run in the same entity context. +# ============================================================ + +# Save expected UUID string to temporary field +# (from_entity call overwrites datalib:input value) +data modify storage datalib:uuid _match_target set from storage datalib:input value + +# Convert @s UUID to string → datalib:input value +function datalib:systems/uuid/from_entity + +# Compare: if matched, run func +# Is the current UUID (datalib:input value) equal to the expected? +function datalib:core/internal/systems/uuid/match_check with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/recall.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/recall.mcfunction new file mode 100644 index 0000000..627bd6b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/recall.mcfunction @@ -0,0 +1,16 @@ +# ============================================================ +# datalib:systems/uuid/recall +# Retrieves UUID string from the cache +# +# KULLANIM: +# data modify storage datalib:input key set value "benim_anahtarim" +# function datalib:systems/uuid/recall +# +# INPUT: +# datalib:input key → key name used with uuid/store +# +# OUTPUT: +# datalib:input value → UUID hex string +# (value unchanged if key not found) +# ============================================================ +function datalib:core/internal/systems/uuid/recall_read with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/recall_array.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/recall_array.mcfunction new file mode 100644 index 0000000..e231614 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/recall_array.mcfunction @@ -0,0 +1,18 @@ +# ============================================================ +# datalib:systems/uuid/recall_array +# Retrieves UUID int array from the cache +# +# KULLANIM: +# data modify storage datalib:input key set value "benim_anahtarim" +# function datalib:systems/uuid/recall_array +# +# INPUT: +# datalib:input key → key name used with uuid/store +# +# OUTPUT: +# datalib:input value → UUID int array [I; a, b, c, d] +# (value unchanged if key not found) +# +# Use case: writing UUID to entity NBT (e.g. Owner field) +# ============================================================ +function datalib:core/internal/systems/uuid/recall_arr_read with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/store.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/store.mcfunction new file mode 100644 index 0000000..4dad4e7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/systems/uuid/store.mcfunction @@ -0,0 +1,26 @@ +# ============================================================ +# datalib:systems/uuid/store +# Caches @s entity's UUID as both string and int array +# +# KULLANIM: +# data modify storage datalib:input key set value "benim_anahtarim" +# execute as run function datalib:systems/uuid/store +# +# INPUT: +# datalib:input key → storage key name (e.g. "spawn_point_owner") +# +# OUTPUT (datalib:engine uuid_cache.): +# .str → UUID hex string +# .arr → UUID int array [I; a, b, c, d] +# +# Not available in GU — an advanced AME-specific function. +# ============================================================ + +# Build UUID string → datalib:input value +function datalib:systems/uuid/from_entity + +# Also save array form (from_entity already filled _work) +data modify storage datalib:uuid _store_arr set from storage datalib:uuid _work + +# Write both to cache (get key name via macro) +function datalib:core/internal/systems/uuid/store_write with storage datalib:input diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/tick.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/tick.mcfunction new file mode 100644 index 0000000..4f0b75f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/tick.mcfunction @@ -0,0 +1,17 @@ +execute unless entity @a run return 0 +execute unless data storage datalib:engine global{loaded:1b} run return 0 + +execute if score #m_time datalib.Flags matches 1 run function datalib:core/tick/time_systems +execute if score #m_time datalib.Flags matches 0 run function datalib:core/tick/disabled + +execute if score #m_queue datalib.Flags matches 1 run function datalib:core/tick/queue_systems +execute if score #m_queue datalib.Flags matches 0 run function datalib:core/tick/disabled + +execute if score #m_player datalib.Flags matches 1 run function datalib:core/tick/player_systems +execute if score #m_player datalib.Flags matches 0 run function datalib:core/tick/disabled + +execute if score #m_hud datalib.Flags matches 1 run function datalib:core/tick/hud_systems +execute if score #m_hud datalib.Flags matches 0 run function datalib:core/tick/disabled + +execute if score #m_admin datalib.Flags matches 1 run function datalib:core/tick/admin_systems +execute if score #m_admin datalib.Flags matches 0 run function datalib:core/tick/disabled \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/version.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/version.mcfunction new file mode 100644 index 0000000..0831b96 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/version.mcfunction @@ -0,0 +1,22 @@ +# ───────────────────────────────────────────── +# datalib:version +# Shows dataLib version info to the calling player. +# Usage: /function datalib:version +# ───────────────────────────────────────────── + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━ Version Info ","color":"aqua"},{"text":"━━━━━━━━━━━━━━","color":"#555555"}] + +tellraw @s ["",{"text":" ◈ ","color":"#00AAAA"},{"text":"dataLib","color":"white","bold":true}] + +execute if score #dl.pre dl.pre_version matches 1.. run tellraw @s ["",{"text":" ┃ ","color":"#555555"},{"text":"Version ","color":"gray"},{"text":"v","color":"#ffaa00"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"#ffaa00","bold":true},{"text":".","color":"#ffaa00"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"#ffaa00","bold":true},{"text":".","color":"#ffaa00"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"#ffaa00","bold":true},{"text":"-pre","color":"#ff8800"},{"score":{"name":"#dl.pre","objective":"dl.pre_version"},"color":"#ff8800","bold":true}] +execute if score #dl.pre dl.pre_version matches ..0 run tellraw @s ["",{"text":" ┃ ","color":"#555555"},{"text":"Version ","color":"gray"},{"text":"v","color":"#ffaa00"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"#ffaa00","bold":true},{"text":".","color":"#ffaa00"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"#ffaa00","bold":true},{"text":".","color":"#ffaa00"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"#ffaa00","bold":true}] + +tellraw @s ["",{"text":" ┃ ","color":"#555555"},{"text":"MC ","color":"gray"},{"text":"26.2","color":"#e3ff57"},{"text":" (pack_format 107.1)","color":"#555555"}] +tellraw @s ["",{"text":" ┃ ","color":"#555555"},{"text":"Author ","color":"gray"},{"text":"Legends11","color":"#00ff33"},{"text":" / ","color":"#555555"},{"text":"runtoolkit","color":"aqua","underlined":true}] + +tellraw @s ["",{"text":" ┃ ","color":"#555555"},{"text":"Source ","color":"gray"},{"text":"github.com/runtoolkit/DataLib-next","color":"#5555ff","underlined":true}] +# Check if loaded +execute if score #dl.ver_set dl.pre_version matches 1 run tellraw @s ["",{"text":" ┃ ","color":"#555555"},{"text":"Status ","color":"gray"},{"text":"● loaded","color":"green"}] +execute unless score #dl.ver_set dl.pre_version matches 1 run tellraw @s ["",{"text":" ┃ ","color":"#555555"},{"text":"Status ","color":"gray"},{"text":"✖ not initialized","color":"red"}] + +tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","color":"#555555"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/block_if.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/block_if.mcfunction new file mode 100644 index 0000000..64ce8c8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/block_if.mcfunction @@ -0,0 +1,2 @@ +$execute if block $(x) $(y) $(z) $(block) run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/block_if ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(block)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/block_unless.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/block_unless.mcfunction new file mode 100644 index 0000000..db91a8f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/block_unless.mcfunction @@ -0,0 +1,2 @@ +$execute unless block $(x) $(y) $(z) $(block) run $(invoke) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/block_unless ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(block)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/clone_to.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/clone_to.mcfunction new file mode 100644 index 0000000..4881db5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/clone_to.mcfunction @@ -0,0 +1,2 @@ +$clone $(x1) $(y1) $(z1) $(x2) $(y2) $(z2) $(dx) $(dy) $(dz) +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/clone_to ","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/clear_effects.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/clear_effects.mcfunction new file mode 100644 index 0000000..c96d4ca --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/clear_effects.mcfunction @@ -0,0 +1,10 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/entity/clear_effects +# Clears all active potion effects from entities matching type+tag. +# +# INPUT : $(type) → entity type selector (e.g. "minecraft:player") +# $(tag) → entity tag filter +# ───────────────────────────────────────────────────────────────── + +$effect clear @e[type=$(type),tag=$(tag)] +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/clear_effects ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)[tag=$(tag)]","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/count.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/count.mcfunction new file mode 100644 index 0000000..6967561 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/count.mcfunction @@ -0,0 +1,4 @@ +scoreboard players set $ent_count dl.tmp 0 +$execute as @e[type=$(type),tag=$(tag)] run scoreboard players add $ent_count dl.tmp 1 +execute store result storage datalib:output count int 1 run scoreboard players get $ent_count dl.tmp +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/count ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/damage.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/damage.mcfunction new file mode 100644 index 0000000..5069475 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/damage.mcfunction @@ -0,0 +1,2 @@ +$damage @e[type=$(type),tag=$(tag)] $(amount) $(damage_type) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/damage ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/for_each.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/for_each.mcfunction new file mode 100644 index 0000000..1155ed2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/for_each.mcfunction @@ -0,0 +1,3 @@ +$data modify storage datalib:engine _dispatch.func set value "$(func)" +$execute as @e[type=$(type),tag=$(tag)] at @s run function #datalib:internal/dispatch +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/for_each ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/for_each_in_radius.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/for_each_in_radius.mcfunction new file mode 100644 index 0000000..bfb74e4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/for_each_in_radius.mcfunction @@ -0,0 +1,17 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/entity/for_each_in_radius +# Runs a function as every entity of a given type within radius +# of the named player. +# +# INPUT : $(player) → player name (origin) +# $(type) → entity type (e.g. "minecraft:zombie") +# $(radius) → search radius in blocks +# $(func) → function to run as each entity (at its position) +# +# EXAMPLE: +# function datalib:world/entity/for_each_in_radius {player:"Steve",type:"minecraft:zombie",radius:10,func:"mypack:on_zombie"} +# ───────────────────────────────────────────────────────────────── + +$data modify storage datalib:engine _dispatch.func set value "$(func)" +$execute as @a[name=$(player),limit=1] at @s run execute as @e[type=$(type),distance=..$(radius)] at @s run function #datalib:internal/dispatch +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/for_each_in_radius ","color":"aqua"},{"text":"$(player) r=$(radius) → ","color":"gray"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/give_effect.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/give_effect.mcfunction new file mode 100644 index 0000000..da72d06 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/give_effect.mcfunction @@ -0,0 +1,2 @@ +$effect give @e[type=$(type),tag=$(tag)] $(effect) $(duration) $(amplifier) true +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/give_effect ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(effect)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/kill_tagged.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/kill_tagged.mcfunction new file mode 100644 index 0000000..e444364 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/kill_tagged.mcfunction @@ -0,0 +1,2 @@ +$kill @e[type=$(type),tag=$(tag)] +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/kill_tagged ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/nearest.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/nearest.mcfunction new file mode 100644 index 0000000..e15802b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/nearest.mcfunction @@ -0,0 +1,15 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/entity/nearest +# Finds the nearest entity of a given type to the named player and +# runs the given function as that entity (at its position). +# If no entity of the type exists within radius, does nothing. +# +# INPUT : $(player) → player name (origin) +# $(type) → entity type (e.g. "minecraft:zombie") +# $(radius) → search radius in blocks +# $(func) → function to run as the nearest entity +# ───────────────────────────────────────────────────────────────── + +$data modify storage datalib:engine _dispatch.func set value "$(func)" +$execute as @a[name=$(player),limit=1] at @s run execute as @e[type=$(type),sort=nearest,limit=1,distance=..$(radius)] at @s run function #datalib:internal/dispatch +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/nearest ","color":"aqua"},{"text":"$(player) → ","color":"gray"},{"text":"$(type) r=$(radius)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/random.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/random.mcfunction new file mode 100644 index 0000000..2204e23 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/random.mcfunction @@ -0,0 +1,44 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/entity/random +# Selects ONE random entity matching the given type and tag and +# runs the given function as that entity (at its position). +# If no matching entity exists, nothing happens. +# +# Uses /random value (available since 1.20.2) to pick a random +# index, then dispatches via sequential dl.rnd_idx assignment. +# This gives a true uniform distribution across matching entities. +# +# INPUT : $(type) → entity type (e.g. "minecraft:zombie") +# $(tag) → entity tag to match +# $(func) → function to run as the selected entity +# +# EXAMPLE: +# function datalib:world/entity/random {type:"minecraft:zombie",tag:"mob.active",func:"mypack:reward"} +# ───────────────────────────────────────────────────────────────── + +# Step 1 — count all matching entities +scoreboard players set $rnd_n dl.tmp 0 +$execute as @e[type=$(type),tag=$(tag)] run scoreboard players add $rnd_n dl.tmp 1 + +# No entities → nothing to do +execute if score $rnd_n dl.tmp matches 0 run return 0 + +# Step 2 — assign sequential dl.rnd_idx to each matching entity +# (random_assign runs AS each entity to maintain counter state) +scoreboard players set $rnd_i dl.tmp 0 +$execute as @e[type=$(type),tag=$(tag)] run function datalib:core/internal/world/entity/random_assign + +# Step 3 — compute max = count-1, store for the dispatch macro +scoreboard players remove $rnd_n dl.tmp 1 +execute store result storage datalib:engine _rnd.max int 1 run scoreboard players get $rnd_n dl.tmp +$data modify storage datalib:engine _rnd.func set value "$(func)" +$data modify storage datalib:engine _rnd.type set value "$(type)" +$data modify storage datalib:engine _rnd.tag set value "$(tag)" + +# Step 4 — roll /random value 0..max and run func as the winner +function datalib:core/internal/world/entity/random_dispatch with storage datalib:engine _rnd + +# Cleanup +data remove storage datalib:engine _rnd + +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/random ","color":"aqua"},{"text":"$(type)","color":"aqua"},{"text":" [$(tag)]","color":"gray"},{"text":" → ","color":"#555555"},{"text":"$(func)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/set_health.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/set_health.mcfunction new file mode 100644 index 0000000..89d7f26 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/set_health.mcfunction @@ -0,0 +1,20 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/entity/set_health +# Sets the health of entities matching type+tag by applying +# instant_health or instant_damage effects calibrated to the target amount. +# Note: direct NBT entity Health write was removed in 1.20.5. +# This implementation uses instant_health amplifier to fill HP; +# it first applies instant_damage level 255 (kills/zeros HP) then +# instant_health at the desired level to restore to target amount. +# +# amount → instant_health amplifier level (0-based; level 1 = +2 HP, level N = +2*(N+1) HP) +# To set exactly N half-hearts: amplifier = (N / 2) - 1, clamped to [0, 255]. +# +# INPUT : $(type) → entity type (e.g. "minecraft:player") +# $(tag) → entity tag filter +# $(amount) → target amplifier level for instant_health (int 0–255) +# ───────────────────────────────────────────────────────────────── + +$effect give @e[type=$(type),tag=$(tag)] minecraft:instant_damage 1 255 true +$effect give @e[type=$(type),tag=$(tag)] minecraft:instant_health 1 $(amount) true +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/set_health ","color":"aqua"},{"text":" → amplifier=$(amount) on ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/set_name.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/set_name.mcfunction new file mode 100644 index 0000000..2c88b2e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/set_name.mcfunction @@ -0,0 +1,26 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/entity/set_name +# Sets the display name (CustomName) on every entity matching the +# given tag. The name is read from datalib:input name — NOT passed +# as a macro argument — to avoid quote/apostrophe injection crashes +# and to support full JSON text components on all versions. +# +# INPUT : $(tag) → entity tag to match +# datalib:input name → JSON text component (caller sets this +# before calling this function) +# +# CALLER PATTERN: +# # Plain white text (works on all versions): +# data modify storage datalib:input name set value '"Dragon King"' +# +# # Colored component (works on all versions): +# data modify storage datalib:input name set value '{"text":"Dragon King","color":"red"}' +# +# function datalib:world/entity/set_name {tag:"myboss"} +# +# NOTE: data modify storage → CustomName works on all supported +# versions without version-specific syntax differences. +# ───────────────────────────────────────────────────────────────── + +$execute as @e[tag=$(tag)] run data modify entity @s CustomName set from storage datalib:input name +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/set_name ","color":"aqua"},{"text":"[$(tag)]","color":"gray"},{"text":" ← datalib:input name","color":"#555555"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/summon_at_player.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/summon_at_player.mcfunction new file mode 100644 index 0000000..f6c07f1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/summon_at_player.mcfunction @@ -0,0 +1,2 @@ +$execute as @a[name=$(player),limit=1] at @s run summon $(entity) ~ ~ ~ $(nbt) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/summon_at_player ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" → ","color":"#555555"},{"text":"$(entity)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/tag_add.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/tag_add.mcfunction new file mode 100644 index 0000000..efd9683 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/tag_add.mcfunction @@ -0,0 +1,2 @@ +$tag @e[type=$(type),tag=$(filter)] add $(new_tag) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/tag_add ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/tag_remove.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/tag_remove.mcfunction new file mode 100644 index 0000000..d7f32f7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/tag_remove.mcfunction @@ -0,0 +1,2 @@ +$tag @e[type=$(type),tag=$(filter)] remove $(remove_tag) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/tag_remove ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/tp_to.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/tp_to.mcfunction new file mode 100644 index 0000000..41dc9cb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/entity/tp_to.mcfunction @@ -0,0 +1,2 @@ +$tp @e[type=$(type),tag=$(tag)] $(x) $(y) $(z) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"entity/tp_to ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(type)","color":"aqua"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_hollow.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_hollow.mcfunction new file mode 100644 index 0000000..037ef21 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_hollow.mcfunction @@ -0,0 +1,2 @@ +$fill $(x1) $(y1) $(z1) $(x2) $(y2) $(z2) $(block) hollow +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/fill_hollow ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(block)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_keep.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_keep.mcfunction new file mode 100644 index 0000000..c20c4d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_keep.mcfunction @@ -0,0 +1,2 @@ +$fill $(x1) $(y1) $(z1) $(x2) $(y2) $(z2) $(block) keep +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/fill_keep ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(block)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_outline.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_outline.mcfunction new file mode 100644 index 0000000..8c42c44 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_outline.mcfunction @@ -0,0 +1,2 @@ +$fill $(x1) $(y1) $(z1) $(x2) $(y2) $(z2) $(block) outline +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/fill_outline ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(block)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_replace.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_replace.mcfunction new file mode 100644 index 0000000..41d825e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/fill_replace.mcfunction @@ -0,0 +1,2 @@ +$fill $(x1) $(y1) $(z1) $(x2) $(y2) $(z2) $(block) replace $(replace_with) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/fill_replace ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(block)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/get_time.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/get_time.mcfunction new file mode 100644 index 0000000..541d973 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/get_time.mcfunction @@ -0,0 +1,16 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/get_time +# Compatible with 26.2+ World Clocks (minecraft:overworld) +# +# OUTPUT: +# datalib:output.daytime → in-day time (0-23999) +# datalib:output.total → total world age (gametime) +# datalib:output.day → current day number +# ───────────────────────────────────────────────────────────────── + +execute store result storage datalib:output daytime int 1 run time of minecraft:overworld query day +execute store result storage datalib:output total int 1 run time query gametime +execute store result storage datalib:output day int 1 run time of minecraft:overworld query day repetition + +# Debug (optional) +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/get_time ","color":"aqua"},{"text":"day=","color":"gray"},{"storage":"datalib:output","nbt":"day","color":"green"},{"text":" daytime=","color":"gray"},{"storage":"datalib:output","nbt":"daytime","color":"green"},{"text":" total=","color":"gray"},{"storage":"datalib:output","nbt":"total","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/setblock_if.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/setblock_if.mcfunction new file mode 100644 index 0000000..852a92a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/setblock_if.mcfunction @@ -0,0 +1,2 @@ +$execute if block $(x) $(y) $(z) $(expected) run setblock $(x) $(y) $(z) $(new_block) $(mode) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/setblock_if ","color":"aqua"},{"text":" → ","color":"#555555"},{"text":"$(mode)","color":"aqua"}] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/function/world/time_phase.mcfunction b/dataLib-MOD/src/main/resources/data/datalib/function/world/time_phase.mcfunction new file mode 100644 index 0000000..3ae2d1c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/function/world/time_phase.mcfunction @@ -0,0 +1,39 @@ +# ───────────────────────────────────────────────────────────────── +# datalib:world/time_phase +# Time phase detection compatible with 26.1+ World Clocks +# +# OUTPUT: +# datalib:output.phase → "dawn" / "day" / "dusk" / "night" +# datalib:output.daytime → raw daytime tick (0–23999) +# datalib:output.is_day → 1b (daytime) +# datalib:output.is_night → 1b (nighttime) +# datalib:output.is_dawn → 1b (dawn) +# datalib:output.is_dusk → 1b (dusk) +# ───────────────────────────────────────────────────────────────── + +# Get in-day time (26.1+ correct syntax) +execute store result score $tp_t dl.tmp run time of minecraft:overworld query day + +# Write raw daytime to storage +execute store result storage datalib:output daytime int 1 run scoreboard players get $tp_t dl.tmp + +# Reset boolean flags +data modify storage datalib:output is_day set value 0b +data modify storage datalib:output is_night set value 0b +data modify storage datalib:output is_dawn set value 0b +data modify storage datalib:output is_dusk set value 0b + +# Set boolean values +execute if score $tp_t dl.tmp matches 0..12999 run data modify storage datalib:output is_day set value 1b +execute if score $tp_t dl.tmp matches 13000..23999 run data modify storage datalib:output is_night set value 1b +execute if score $tp_t dl.tmp matches 0..999 run data modify storage datalib:output is_dawn set value 1b +execute if score $tp_t dl.tmp matches 12000..13799 run data modify storage datalib:output is_dusk set value 1b + +# Determine phase name +execute if score $tp_t dl.tmp matches 0..999 run data modify storage datalib:output phase set value "dawn" +execute if score $tp_t dl.tmp matches 1000..11999 run data modify storage datalib:output phase set value "day" +execute if score $tp_t dl.tmp matches 12000..13799 run data modify storage datalib:output phase set value "dusk" +execute if score $tp_t dl.tmp matches 13800..23999 run data modify storage datalib:output phase set value "night" + +# Debug message (optional) +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"world/time_phase ","color":"aqua"},{"storage":"datalib:output","nbt":"phase","color":"green"},{"text":" t=","color":"gray"},{"storage":"datalib:output","nbt":"daytime","color":"white"}] diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/damage_random.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/damage_random.json new file mode 100644 index 0000000..78da5e2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/damage_random.json @@ -0,0 +1,8 @@ +{ + "function": "minecraft:set_damage", + "damage": { + "type": "minecraft:uniform", + "min": 0.1, + "max": 0.9 + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/enchant_randomly.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/enchant_randomly.json new file mode 100644 index 0000000..035803b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/enchant_randomly.json @@ -0,0 +1,3 @@ +{ + "function": "minecraft:enchant_randomly" +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/enchant_with_levels_30.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/enchant_with_levels_30.json new file mode 100644 index 0000000..700496a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/enchant_with_levels_30.json @@ -0,0 +1,4 @@ +{ + "function": "minecraft:enchant_with_levels", + "levels": 30 +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/enchant_with_levels_5.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/enchant_with_levels_5.json new file mode 100644 index 0000000..84bc305 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/enchant_with_levels_5.json @@ -0,0 +1,4 @@ +{ + "function": "minecraft:enchant_with_levels", + "levels": 5 +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/glint_add.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/glint_add.json new file mode 100644 index 0000000..6d27a62 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/glint_add.json @@ -0,0 +1,6 @@ +{ + "function": "minecraft:set_components", + "components": { + "minecraft:enchantment_glint_override": true + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/glint_remove.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/glint_remove.json new file mode 100644 index 0000000..17dfcff --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/glint_remove.json @@ -0,0 +1,6 @@ +{ + "function": "minecraft:set_components", + "components": { + "minecraft:enchantment_glint_override": false + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/hide_tooltip.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/hide_tooltip.json new file mode 100644 index 0000000..718b255 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/hide_tooltip.json @@ -0,0 +1,8 @@ +{ + "function": "minecraft:set_components", + "components": { + "minecraft:tooltip_display": { + "hide_tooltip": true + } + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/lore_add_custom.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/lore_add_custom.json new file mode 100644 index 0000000..1bc671b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/lore_add_custom.json @@ -0,0 +1,13 @@ +[ + { + "function": "minecraft:set_lore", + "lore": [ + { + "text": "✦ Custom Lore Line", + "italic": false, + "color": "aqua" + } + ], + "mode": "append" + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/lore_clear.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/lore_clear.json new file mode 100644 index 0000000..d384578 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/lore_clear.json @@ -0,0 +1,7 @@ +[ + { + "function": "minecraft:set_lore", + "lore": [], + "mode": "replace_all" + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/rename_to_custom.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/rename_to_custom.json new file mode 100644 index 0000000..5e11071 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/rename_to_custom.json @@ -0,0 +1,9 @@ +{ + "function": "minecraft:set_name", + "target": "item_name", + "name": { + "text": "Custom Item", + "italic": false, + "color": "gold" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/repair_full.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/repair_full.json new file mode 100644 index 0000000..1bc2062 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/repair_full.json @@ -0,0 +1,4 @@ +{ + "function": "minecraft:set_damage", + "damage": 0.0 +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/set_count_1.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/set_count_1.json new file mode 100644 index 0000000..4885a7b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/set_count_1.json @@ -0,0 +1,4 @@ +{ + "function": "minecraft:set_count", + "count": 1 +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/set_count_64.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/set_count_64.json new file mode 100644 index 0000000..f5098c0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/set_count_64.json @@ -0,0 +1,4 @@ +{ + "function": "minecraft:set_count", + "count": 64 +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/set_custom_model_data.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/set_custom_model_data.json new file mode 100644 index 0000000..9f3ee7f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/set_custom_model_data.json @@ -0,0 +1,14 @@ +[ + { + "_comment": "datalib:item_modifier/set_custom_model_data — Sets the minecraft:custom_model_data component (1.21.4+ format). Copy and edit the floats/strings/flags/colors arrays for your resource pack model overrides.", + "function": "minecraft:set_components", + "components": { + "minecraft:custom_model_data": { + "floats": [1.0], + "flags": [], + "strings": [], + "colors": [] + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/strip_enchants.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/strip_enchants.json new file mode 100644 index 0000000..6b0bc6d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/strip_enchants.json @@ -0,0 +1,7 @@ +[ + { + "function": "minecraft:set_enchantments", + "enchantments": {}, + "add": false + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/item_modifier/unbreakable.json b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/unbreakable.json new file mode 100644 index 0000000..2ea38d3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/item_modifier/unbreakable.json @@ -0,0 +1,6 @@ +{ + "function": "minecraft:set_components", + "components": { + "minecraft:unbreakable": {} + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/loot_table/player/head.json b/dataLib-MOD/src/main/resources/data/datalib/loot_table/player/head.json new file mode 100644 index 0000000..d301a16 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/loot_table/player/head.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:generic", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:player_head", + "functions": [ + { + "function": "minecraft:fill_player_head", + "entity": "this" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/loot_table/util/empty.json b/dataLib-MOD/src/main/resources/data/datalib/loot_table/util/empty.json new file mode 100644 index 0000000..673b614 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/loot_table/util/empty.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:empty", + "pools": [] +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/loot_table/util/self_drop.json b/dataLib-MOD/src/main/resources/data/datalib/loot_table/util/self_drop.json new file mode 100644 index 0000000..0446309 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/loot_table/util/self_drop.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:blocks/stone" + } + ] + } + ] +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/loot_table/util/xp_only.json b/dataLib-MOD/src/main/resources/data/datalib/loot_table/util/xp_only.json new file mode 100644 index 0000000..6d5675e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/loot_table/util/xp_only.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "pools": [] +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/has_empty_mainhand.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/has_empty_mainhand.json new file mode 100644 index 0000000..92f4471 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/has_empty_mainhand.json @@ -0,0 +1,15 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "count": { + "max": 0 + } + } + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/has_empty_offhand.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/has_empty_offhand.json new file mode 100644 index 0000000..04715f3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/has_empty_offhand.json @@ -0,0 +1,15 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "offhand": { + "count": { + "max": 0 + } + } + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/health_below_half.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/health_below_half.json new file mode 100644 index 0000000..763d87e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/health_below_half.json @@ -0,0 +1,11 @@ +[ + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "datalib.health": { + "max": 10 + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/in_end.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/in_end.json new file mode 100644 index 0000000..9d666c0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/in_end.json @@ -0,0 +1,8 @@ +[ + { + "condition": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:the_end" + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/in_nether.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/in_nether.json new file mode 100644 index 0000000..1d9149b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/in_nether.json @@ -0,0 +1,8 @@ +[ + { + "condition": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:the_nether" + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/in_overworld.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/in_overworld.json new file mode 100644 index 0000000..31cc0f5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/in_overworld.json @@ -0,0 +1,8 @@ +[ + { + "condition": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:overworld" + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_baby.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_baby.json new file mode 100644 index 0000000..9bc50a1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_baby.json @@ -0,0 +1,11 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_baby": true + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_burning.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_burning.json new file mode 100644 index 0000000..f5b2740 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_burning.json @@ -0,0 +1,11 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_creative.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_creative.json new file mode 100644 index 0000000..efafed0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_creative.json @@ -0,0 +1,12 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:entity_type": "minecraft:player", + "minecraft:type_specific/player": { + "game_mode": "creative" + } + } + } +] diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_daytime.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_daytime.json new file mode 100644 index 0000000..51c3c44 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_daytime.json @@ -0,0 +1,11 @@ +[ + { + "condition": "minecraft:time_check", + "clock": "minecraft:overworld", + "value": { + "min": 0, + "max": 12000 + }, + "period": 24000 + } +] diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_flying.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_flying.json new file mode 100644 index 0000000..d40bdda --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_flying.json @@ -0,0 +1,11 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_flying": true + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_full_health.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_full_health.json new file mode 100644 index 0000000..28deb4c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_full_health.json @@ -0,0 +1,10 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:entity_type": "minecraft:player", + "nbt": "{Health:20.0f}" + } + } +] diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_gliding.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_gliding.json new file mode 100644 index 0000000..333af01 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_gliding.json @@ -0,0 +1,16 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_flying": true + }, + "equipment": { + "chest": { + "items": "minecraft:elytra" + } + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_bow.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_bow.json new file mode 100644 index 0000000..5885201 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_bow.json @@ -0,0 +1,13 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": "minecraft:bow" + } + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_shield.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_shield.json new file mode 100644 index 0000000..d9feacf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_shield.json @@ -0,0 +1,13 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "offhand": { + "items": "minecraft:shield" + } + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_sword.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_sword.json new file mode 100644 index 0000000..5d2ca50 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_sword.json @@ -0,0 +1,13 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": "#minecraft:swords" + } + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_trident.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_trident.json new file mode 100644 index 0000000..dfcbb75 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_holding_trident.json @@ -0,0 +1,13 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": "minecraft:trident" + } + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_hungry.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_hungry.json new file mode 100644 index 0000000..02aa942 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_hungry.json @@ -0,0 +1,11 @@ +[ + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "datalib.food": { + "max": 19 + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_in_water.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_in_water.json new file mode 100644 index 0000000..2b8b7af --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_in_water.json @@ -0,0 +1,13 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "fluid": { + "tag": "minecraft:water" + } + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_on_ground.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_on_ground.json new file mode 100644 index 0000000..b46aafb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_on_ground.json @@ -0,0 +1,11 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_ground": true + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_raining.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_raining.json new file mode 100644 index 0000000..934568e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_raining.json @@ -0,0 +1,7 @@ +[ + { + "condition": "minecraft:weather_check", + "raining": true, + "thundering": false + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_sneaking.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_sneaking.json new file mode 100644 index 0000000..ad82349 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_sneaking.json @@ -0,0 +1,11 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_sneaking": true + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_sprinting.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_sprinting.json new file mode 100644 index 0000000..9438490 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_sprinting.json @@ -0,0 +1,11 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_sprinting": true + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_survival.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_survival.json new file mode 100644 index 0000000..bd24b44 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_survival.json @@ -0,0 +1,12 @@ +[ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:entity_type": "minecraft:player", + "minecraft:type_specific/player": { + "game_mode": "survival" + } + } + } +] diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/is_thundering.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_thundering.json new file mode 100644 index 0000000..f505bda --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/is_thundering.json @@ -0,0 +1,7 @@ +[ + { + "condition": "minecraft:weather_check", + "raining": true, + "thundering": true + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/predicate/weather_clear.json b/dataLib-MOD/src/main/resources/data/datalib/predicate/weather_clear.json new file mode 100644 index 0000000..4e5cacf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/predicate/weather_clear.json @@ -0,0 +1,7 @@ +[ + { + "condition": "minecraft:weather_check", + "raining": false, + "thundering": false + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/admin/menu.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/admin/menu.json new file mode 100644 index 0000000..61b36d0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/admin/menu.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "datalib:systems/security/menu" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/admin/run.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/admin/run.json new file mode 100644 index 0000000..45f41fd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/admin/run.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib:core/cmd/run" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_death.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_death.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_death.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_enchant.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_enchant.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_enchant.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_join.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_join.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_join.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_jump.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_jump.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_jump.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_lc.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_lc.json new file mode 100644 index 0000000..f72d209 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_lc.json @@ -0,0 +1,3 @@ +{ + "values": [] +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_load.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_load.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_load.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_open_gui.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_open_gui.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_open_gui.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_rc.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_rc.json new file mode 100644 index 0000000..f72d209 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_rc.json @@ -0,0 +1,3 @@ +{ + "values": [] +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_respawn.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_respawn.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_respawn.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_tick.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_tick.json new file mode 100644 index 0000000..ba9d3f4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/events/on_tick.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib:core/internal/api/cmd/freeze/tick" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/init.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/init.json new file mode 100644 index 0000000..8c71c08 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/init.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#datalib:events/on_load" + ] +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/init/pre_load.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/init/pre_load.json new file mode 100644 index 0000000..8252388 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/init/pre_load.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/internal/dispatch.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/internal/dispatch.json new file mode 100644 index 0000000..83ce24c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/internal/dispatch.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib:core/dispatch/run" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/datalib/tags/function/loop.json b/dataLib-MOD/src/main/resources/data/datalib/tags/function/loop.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/datalib/tags/function/loop.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/_.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/_.mcfunction new file mode 100644 index 0000000..d32609a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/_.mcfunction @@ -0,0 +1,29 @@ +# dl_load:_ — Stage 0 Load Entry Point +# +# This is the ONLY function registered in the minecraft:load function tag. +# It does NOT load dataLib directly. +# +# Instead it spawns a one-shot marker entity (to ensure a stable execution +# context regardless of server-startup state), delegates to the load gate, +# then kills itself. Nothing in datalib:engine storage is touched here. +# +# WHY MARKER ENTITY PATTERN: +# - Server startup context is unreliable for tellraw/clickEvent rendering. +# - Marker 'say' commands appear in the server log even with zero players online. +# - Gives a deterministic @s context (not @a, not @p, not server console). +# - One-shot: spawned here, killed by the end of the same function. +# +# WHY DEFERRED LOAD (GATE SYSTEM): +# - minecraft:load fires on /reload AND on world open. +# - If datalib:engine storage contains live data from a prior session +# (permissions, flags, wand binds, etc.), any unconditional storage write +# causes silent overwrites and nondeterministic engine state. +# - The gate requires explicit admin confirmation before any storage touch. +# +# CONFIRMING: /function dl_load:load/yes +# CANCELLING: /function dl_load:load/no +# AUTO-CANCEL: fires after 5 minutes if no response + +summon minecraft:marker ~ ~ ~ {Tags:["datalib.stage0"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.stage0,limit=1] run function dl_load:load/confirm +execute as @e[type=minecraft:marker,tag=datalib.stage0,limit=1] run kill @s \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/cleanup.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/cleanup.mcfunction new file mode 100644 index 0000000..3e75936 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/cleanup.mcfunction @@ -0,0 +1,141 @@ +schedule clear datalib:core/lib/sync_tick + +forceload remove -30000000 1600 +forceload remove 0 0 + +scoreboard players reset @a dl_menu +scoreboard players reset @a dl_run + +scoreboard players reset $tick dl.tmp +scoreboard players reset $pq_depth dl.tmp +# $epoch intentionally preserved — cooldown expiry times depend on it + +data remove storage datalib:engine queue +data remove storage datalib:engine events +data remove storage datalib:engine event_context +data remove storage datalib:engine _event_tmp +data remove storage datalib:engine cooldowns +data remove storage datalib:engine throttle +data remove storage datalib:engine players +data remove storage datalib:engine flags +data remove storage datalib:engine states +data remove storage datalib:engine schedules +data remove storage datalib:engine _input_stack +data remove storage datalib:engine _repeat +data remove storage datalib:engine _rng_state +data remove storage datalib:engine _felist_input +data remove storage datalib:engine _felist_state +data remove storage datalib:engine _felist_current +data remove storage datalib:engine _felist_i +data remove storage datalib:engine log_display +scoreboard players reset #dl.log_count dl.tmp +data remove storage datalib:engine trigger_binds +data remove storage datalib:engine _tc_binds +data remove storage datalib:engine _tc_current +data remove storage datalib:engine _tc_unbind +data remove storage datalib:engine _tc_uval +data remove storage datalib:engine interaction_binds +data remove storage datalib:engine _ia_iter +data remove storage datalib:engine _ia_cur +data remove storage datalib:engine _ia_ubinds +data remove storage datalib:engine _ia_ufilter +data remove storage datalib:engine _ia_ucur +data remove storage datalib:engine teams +data remove storage datalib:engine global +data remove storage datalib:output result + +# rate_limit module cleanup +data remove storage datalib:engine rate_limit + +scoreboard objectives remove dl.tmp +scoreboard objectives remove datalib.time +scoreboard objectives remove dl_menu +scoreboard objectives remove dl_run +scoreboard objectives remove dl_action +scoreboard objectives remove datalib.dialog_load +scoreboard objectives remove health +scoreboard objectives remove dl.pre_version + +scoreboard objectives remove datalib.Flags +scoreboard objectives remove datalib.hook_eat +scoreboard objectives remove datalib.hook_fish +scoreboard objectives remove datalib.state + +tag @a remove datalib.dialog_opened +tag @a remove datalib.dialog_closed +advancement revoke @a from datalib:hidden/root + +scoreboard objectives remove datalib.pid +scoreboard objectives remove datalib.rightClick +data remove storage datalib:engine wand_binds +data remove storage datalib:engine _wand_iter +data remove storage datalib:engine _wand_current +data remove storage datalib:engine _wand_unbinds +data remove storage datalib:engine _wand_filter_tag +data remove storage datalib:engine _wand_cur +data remove storage datalib:engine player_pids +data remove storage datalib:engine _pid_seq + +# Hook module cleanup +scoreboard objectives remove datalib.hook_online +scoreboard objectives remove datalib.hook_deaths +scoreboard objectives remove datalib.hook_placed +scoreboard objectives remove datalib.hook_lvl +scoreboard objectives remove datalib.hook_lvl_new +scoreboard objectives remove datalib.hook_sneak +scoreboard objectives remove datalib.hook_sprint +scoreboard objectives remove datalib.hook_elytra +tag @a remove datalib.hook_dead +tag @a remove datalib.hook_sneaking +tag @a remove datalib.hook_sprinting +tag @a remove datalib.hook_gliding +scoreboard objectives remove datalib.hook_tool_used +scoreboard objectives remove datalib.hook_item_used +scoreboard objectives remove datalib.hook_entity_killed +scoreboard objectives remove datalib.hook_using_item +scoreboard objectives remove datalib.hook_killed_by_arrow +scoreboard objectives remove datalib.hook_hero_of_the_village +scoreboard objectives remove datalib.hook_dim_changed +scoreboard objectives remove datalib.hook_traded +scoreboard objectives remove datalib.hook_jump +scoreboard objectives remove datalib.hook_open_chest +scoreboard objectives remove datalib.hook_drop +scoreboard objectives remove datalib.hook_target_hit +data remove storage datalib:engine hook_binds +data remove storage datalib:engine _hook_iter +data remove storage datalib:engine _hook_ctx +data remove storage datalib:engine _hook_fire_event +data remove storage datalib:engine _hook_fire_tmp +data remove storage datalib:engine _hook_unbinds +data remove storage datalib:engine _hook_filter_event + +# Fiber module cleanup +data remove storage datalib:engine fibers + +# Region watch cleanup +data remove storage datalib:engine region_watches + +# Batch module cleanup +data remove storage datalib:engine batches + +# Once-per-player cleanup +data remove storage datalib:engine once_per_player + +# UUID cache cleanup +data remove storage datalib:engine _uuid_cache + +# pid init temp cleanup +data remove storage datalib:engine _pid_init_tmp + +# Color API cleanup +# palette and gradients are intentionally preserved (pack-owned data). +# _names is rebuilt each load by systems/color/init. +# fork_warn flags are transient — cleared on clean unload. +data remove storage datalib:engine color._names +data remove storage datalib:engine fork_warn +data remove storage datalib:engine fork_warn_tick + +# BUGFIX v6.0.1: datalib.meta scoreboard (used by _rt_origin watermark check) +# was never removed on disable/cleanup, causing scoreboard pollution across reloads. +scoreboard objectives remove dl.perm_level +scoreboard objectives remove datalib.meta \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/finalize.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/finalize.mcfunction new file mode 100644 index 0000000..1ed5984 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/finalize.mcfunction @@ -0,0 +1,24 @@ +# dl_load:load/internal/finalize +# Final step — success message and debug info. + +# Debug: version info +execute if score #dl.pre dl.pre_version matches 1.. run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"ready · ","color":"#555555"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"aqua"},{"text":".","color":"#555555"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"aqua"},{"text":".","color":"#555555"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"aqua"},{"text":"-pre","color":"#ff8800"},{"score":{"name":"#dl.pre","objective":"dl.pre_version"},"color":"#ff8800"}] +execute if score #dl.pre dl.pre_version matches ..0 run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"ready · ","color":"#555555"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"aqua"},{"text":".","color":"#555555"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"aqua"},{"text":".","color":"#555555"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"aqua"}] + +# Fork warning — debug tier (summary) +execute if data storage datalib:engine {fork_warn:1b} run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"⚠ ","color":"yellow"},{"text":"Modified fork — _rt_origin not verified. ","color":"yellow"},{"text":"[details above]","color":"#555555","italic":true}] + +# Fork warning — admin tier (compact reminder) +execute if data storage datalib:engine {fork_warn:1b} run tellraw @a[tag=datalib.admin] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"⚠ ","color":"yellow"},{"text":"Loaded with fork warning active.","color":"yellow"}] + +# Success message — to all players +execute if score #dl.pre dl.pre_version matches 1.. run tellraw @a ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✔ ","color":"green"},{"text":"v","color":"aqua"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":".","color":"aqua"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":".","color":"aqua"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":"-pre","color":"#ff8800"},{"score":{"name":"#dl.pre","objective":"dl.pre_version"},"color":"#ff8800","bold":true},{"text":" loaded.","color":"green"}] +execute if score #dl.pre dl.pre_version matches ..0 run tellraw @a ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✔ ","color":"green"},{"text":"v","color":"aqua"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":".","color":"aqua"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":".","color":"aqua"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":" loaded.","color":"green"}] + +playsound datalib:load.success master @a ~ ~ ~ 0.6 1.2 + +data modify storage datalib:engine _log_add_tmp.message set value "[Load] finalize — engine ready" +function datalib:systems/log/add with storage datalib:engine _log_add_tmp +data remove storage datalib:engine _log_add_tmp.message + +tag @s remove datalib.loadFail diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/fork_warn.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/fork_warn.mcfunction new file mode 100644 index 0000000..edbaf2b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/fork_warn.mcfunction @@ -0,0 +1,35 @@ +# dl_load:load/internal/fork_warn +# Called when rt_origin_verified is absent at load time. +# Indicates _rt_origin.mcfunction was removed or pack is a modified fork. +# Load continues — this is a WARNING, not a hard block. +# +# Notification tiers: +# 1. datalib.debug tag → full technical detail +# 2. @a[tag=datalib.admin] → admin-level alert with action guidance +# 3. datalib:engine fork_warn → persistent flag for runtime checks + +# ── Persistent flag ────────────────────────────────────────────── +data modify storage datalib:engine fork_warn set value 1b +data modify storage datalib:engine fork_warn_tick set value 0 + +# ── Sound ──────────────────────────────────────────────────────── +playsound datalib:ui.warn master @a ~ ~ ~ 0.5 0.9 + +# ── Debug tier — full technical context ────────────────────────── +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"⚠ FORK ","color":"yellow","bold":true},{"text":"rt_origin_verified missing","color":"yellow"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":" cause ","color":"#555555"},{"text":"_rt_origin.mcfunction removed or overwritten","color":"#FFAA00"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":" action ","color":"#555555"},{"text":"Verify pack integrity. Compare against upstream.","color":"gray"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":" flag ","color":"#555555"},{"text":"datalib:engine fork_warn = 1b","color":"gray","italic":true}] + +# ── Admin tier — actionable alert with links ────────────────────── +tellraw @a[tag=datalib.admin] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"⚠ Fork Warning","color":"yellow","bold":true}] +tellraw @a[tag=datalib.admin] ["",{"text":" ","color":"#555555"},{"text":"This dataLib copy could not verify its origin.","color":"#FFCC00"}] +tellraw @a[tag=datalib.admin] ["",{"text":" ","color":"#555555"},{"text":"_rt_origin.mcfunction is missing or was altered.","color":"#FFCC00"}] +tellraw @a[tag=datalib.admin] ["",{"text":" ","color":"#555555"},{"text":"Load continues","color":"gray"},{"text":" — check pack integrity before trusting this build.","color":"#555555"}] +tellraw @a[tag=datalib.admin] ["",{"text":" ","color":"#555555"},{"text":"[view upstream]","color":"aqua","underlined":true,"click_event":{"action":"open_url","url":"https://github.com/runtoolkit/DataLib-next"}},{"text":" ","color":"#555555"},{"text":"[releases]","color":"gold","underlined":true,"click_event":{"action":"open_url","url":"https://github.com/runtoolkit/DataLib-next/releases"}},{"text":" ","color":"#555555"},{"text":"[issues]","color":"yellow","underlined":true,"click_event":{"action":"open_url","url":"https://github.com/runtoolkit/DataLib-next/issues"}}] + +# ── Log system entry ────────────────────────────────────────────── +data modify storage datalib:engine _log_warn_tmp set value {message:"[Load] fork_warn — rt_origin_verified not set, possible modified fork"} +function datalib:systems/log/warn with storage datalib:engine _log_warn_tmp + +tag @s add datalib.loadFail \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/validate.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/validate.mcfunction new file mode 100644 index 0000000..77edd69 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/validate.mcfunction @@ -0,0 +1,35 @@ +# dl_load:load/internal/validate +# Returns 1 → validation passed, load continues. +# Returns 0 → validation failed, load aborted. + +# ── Init storage if fresh ──────────────────────────────────────── +execute unless data storage datalib:engine global run data modify storage datalib:engine global set value {version:"v6.0.0"} +data modify storage datalib:engine global.version set value "v6.0.0" + +execute unless data storage datalib:engine log_display run data modify storage datalib:engine log_display set value [] +execute unless score #dl.log_count dl.tmp matches 0.. run scoreboard players set #dl.log_count dl.tmp 0 + +# ── Guard: already loaded ──────────────────────────────────────── +execute if data storage datalib:engine global{loaded:1b} run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"⚠ ","color":"yellow"},{"text":"Already loaded — skipping reload.","color":"yellow"}] +execute if data storage datalib:engine global{loaded:1b} run return 0 + +# ── Version check ──────────────────────────────────────────────── +scoreboard objectives add dl.pre_version dummy +scoreboard players set #dl.mismatch dl.pre_version 0 +execute if score #dl.ver_set dl.pre_version matches 1 run execute unless score #dl.major dl.pre_version matches 6 run scoreboard players set #dl.mismatch dl.pre_version 1 +execute if score #dl.ver_set dl.pre_version matches 1 run execute unless score #dl.minor dl.pre_version matches 0 run scoreboard players set #dl.mismatch dl.pre_version 1 +execute if score #dl.ver_set dl.pre_version matches 1 run execute unless score #dl.patch dl.pre_version matches 0 run scoreboard players set #dl.mismatch dl.pre_version 1 +execute if score #dl.ver_set dl.pre_version matches 1 run execute if score #dl.pre dl.pre_version matches 1.. run scoreboard players set #dl.mismatch dl.pre_version 1 +execute if score #dl.mismatch dl.pre_version matches 1 run function dl_load:core/internal/load/version_warn +execute if score #dl.mismatch dl.pre_version matches 1 run return 0 + +# ── Fork detection ─────────────────────────────────────────────── +# _rt_origin.mcfunction sets rt_origin_verified:1b at load time. +# Absence = file removed or pack is a modified fork. +# WARN only — load is not aborted, but admins are notified. +execute unless data storage datalib:engine global{rt_origin_verified:1b} run function dl_load:core/internal/load/fork_warn + +# ── StringLib dependency ───────────────────────────────────────── +execute unless score #StringLib.Init StringLib matches 1 run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"⚠ ","color":"yellow"},{"text":"StringLib not initialized — datalib:core/lib/string/* unavailable","color":"yellow"}] + +return 1 diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/version_set.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/version_set.mcfunction new file mode 100644 index 0000000..e89f978 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/version_set.mcfunction @@ -0,0 +1,5 @@ +scoreboard players set #dl.major dl.pre_version 6 +scoreboard players set #dl.minor dl.pre_version 0 +scoreboard players set #dl.patch dl.pre_version 0 +scoreboard players set #dl.pre dl.pre_version 0 +scoreboard players set #dl.ver_set dl.pre_version 1 diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/version_warn.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/version_warn.mcfunction new file mode 100644 index 0000000..6981853 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/core/internal/load/version_warn.mcfunction @@ -0,0 +1,13 @@ +# dl_load:core/internal/load/version_warn +# Called when dl.pre_version scores don't match expected (6.0.0). +# Fires error sound + plain error message, load aborted. + +playsound datalib:ui.error master @a ~ ~ ~ 0.7 0.8 + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ ","color":"red"},{"text":"Version mismatch — expected ","color":"red"},{"text":"v6.0.0","color":"aqua"},{"text":". Load aborted.","color":"red"}] +tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"DEBUG ","color":"aqua"},{"text":"expected: 6.0.0 · got: ","color":"#555555"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"yellow"},{"text":".","color":"#555555"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"yellow"},{"text":".","color":"#555555"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"yellow"}] + +data modify storage datalib:engine _log_error_tmp set value {message:"[Load] version_warn — version mismatch, load aborted"} +function datalib:systems/log/error with storage datalib:engine _log_error_tmp + +tag @s add datalib.loadFail \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/gate/exec/ban.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/exec/ban.mcfunction new file mode 100644 index 0000000..9fd0901 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/exec/ban.mcfunction @@ -0,0 +1,13 @@ +# dl_load:gate/exec/ban +# Executor for confirmed ban command. +# Called by dl_load:gate/yes via: function ... with storage datalib:engine pending_gate +# +# Macro fields required in datalib:engine pending_gate: +# player — target player name or UUID +# reason — ban reason string +# +# MACRO LINE RULES: every $ line must contain at least one $(key). +# No $ lines without $(key) — Minecraft crashes on that. + +$ban $(player) $(reason) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/ban ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" — reason: ","color":"gray"},{"text":"$(reason)","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/gate/exec/ban_ip.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/exec/ban_ip.mcfunction new file mode 100644 index 0000000..0ad12e0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/exec/ban_ip.mcfunction @@ -0,0 +1,10 @@ +# dl_load:gate/exec/ban_ip +# Executor for confirmed ban-ip command. +# Called by dl_load:gate/yes via: function ... with storage datalib:engine pending_gate +# +# Macro fields required in datalib:engine pending_gate: +# player — target player name or UUID (resolves to IP) +# reason — ban reason string + +$ban-ip $(player) $(reason) +$tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"cmd/ban_ip ","color":"aqua"},{"text":"$(player)","color":"white"},{"text":" — reason: ","color":"gray"},{"text":"$(reason)","color":"yellow"}] diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/gate/exec/disable.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/exec/disable.mcfunction new file mode 100644 index 0000000..cdd6356 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/exec/disable.mcfunction @@ -0,0 +1,13 @@ +# dl_load:gate/exec/disable +# Executor for confirmed engine disable. +# Called by dl_load:gate/yes when pending_gate{type:"disable"}. +# +# Runs the full cleanup pipeline then announces shutdown via marker. +# No macro parameters needed. + +function dl_load:core/internal/load/cleanup + +summon minecraft:marker ~ ~ ~ {Tags:["datalib.gate_disable"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.gate_disable,limit=1] run say [DL] Engine DISABLED. All scoreboards and storage removed. +execute as @e[type=minecraft:marker,tag=datalib.gate_disable,limit=1] run say [DL] To reinitialize: /reload or /function dl_load:_ +execute as @e[type=minecraft:marker,tag=datalib.gate_disable,limit=1] run kill @s diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/gate/no.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/no.mcfunction new file mode 100644 index 0000000..6f73d4e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/no.mcfunction @@ -0,0 +1,28 @@ +# dl_load:gate/no +# Cancel the pending dangerous command. +# +# Does NOT execute the pending action. Clears pending_gate from storage. +# Idempotent — safe to call multiple times. +# +# ALSO CALLED BY: dl_load:gate/timeout (auto-cancel after 30 seconds) + +# Guard: nothing pending +execute unless score #pending dl.gate matches 1 run return 0 + +# Close the gate window +scoreboard players set #pending dl.gate 0 +scoreboard players set #confirmed dl.gate 0 + +# Cancel the still-pending timeout if admin called /no explicitly +schedule clear dl_load:gate/timeout + +# Announce cancellation via marker +summon minecraft:marker ~ ~ ~ {Tags:["datalib.gate_no"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.gate_no,limit=1] run say [DL GATE] Dangerous command CANCELLED. Action was NOT executed. +execute as @e[type=minecraft:marker,tag=datalib.gate_no,limit=1] run kill @s + +# Discard pending context +data remove storage datalib:engine pending_gate +scoreboard players reset #pending dl.gate +scoreboard players reset #confirmed dl.gate +scoreboard objectives remove dl.gate \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/gate/request.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/request.mcfunction new file mode 100644 index 0000000..2fe2b35 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/request.mcfunction @@ -0,0 +1,41 @@ +# dl_load:gate/request +# Generic dangerous-command confirmation gate — request side. +# +# CALLER PROTOCOL +# --------------- +# Before calling this function, the caller MUST write a pending_gate +# compound to datalib:engine storage describing the action to confirm: +# +# data modify storage datalib:engine pending_gate set value {type:"ban", player:"...", reason:"..."} +# function dl_load:gate/request +# +# This function then: +# 1. Opens the dl.gate scoreboard window +# 2. Broadcasts confirmation instructions via marker say +# 3. Schedules a 30-second auto-cancel +# +# CONFIRMING: /function dl_load:gate/yes +# CANCELLING: /function dl_load:gate/no +# +# If another gate is already pending, this call is silently dropped to +# prevent multiple dangerous commands from racing in multiplayer. + +# Drop silently if a gate is already open (multiplayer safety) +scoreboard objectives add dl.gate dummy +execute if score #pending dl.gate matches 1 run return 0 + +# Open the gate window +scoreboard players set #pending dl.gate 0 +scoreboard players set #confirmed dl.gate 0 +scoreboard players set #pending dl.gate 1 + +# Broadcast via marker (server-startup safe, no player context needed) +summon minecraft:marker ~ ~ ~ {Tags:["datalib.gate_req"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.gate_req,limit=1] run say [DL GATE] Dangerous command pending — awaiting confirmation. +execute as @e[type=minecraft:marker,tag=datalib.gate_req,limit=1] run say [DL GATE] CONFIRM: /function dl_load:gate/yes +execute as @e[type=minecraft:marker,tag=datalib.gate_req,limit=1] run say [DL GATE] CANCEL: /function dl_load:gate/no +execute as @e[type=minecraft:marker,tag=datalib.gate_req,limit=1] run say [DL GATE] Auto-cancel fires in 30 seconds. +execute as @e[type=minecraft:marker,tag=datalib.gate_req,limit=1] run kill @s + +# Schedule 30-second auto-cancel for dangerous commands +schedule function dl_load:gate/timeout 30s replace \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/gate/timeout.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/timeout.mcfunction new file mode 100644 index 0000000..8c634e0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/timeout.mcfunction @@ -0,0 +1,12 @@ +# dl_load:gate/timeout +# Fires 30 seconds after dl_load:gate/request if no admin response. +# +# Delegates to dl_load:gate/no which is idempotent — if the gate was +# already closed by an explicit /yes or /no, the #pending guard in +# gate/no returns 0 and nothing happens. + +summon minecraft:marker ~ ~ ~ {Tags:["datalib.gtimeout"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.gtimeout,limit=1] run say [DL GATE] Dangerous command timeout (30s) — auto-cancelling. +execute as @e[type=minecraft:marker,tag=datalib.gtimeout,limit=1] run kill @s + +execute if score #pending dl.gate matches 1 run function dl_load:gate/no \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/gate/yes.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/yes.mcfunction new file mode 100644 index 0000000..2aa1cf3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/gate/yes.mcfunction @@ -0,0 +1,51 @@ +# dl_load:gate/yes +# Execute the pending dangerous command after admin confirmation. +# +# Reads the pending_gate compound from datalib:engine storage and dispatches +# to the correct executor based on the 'type' field. +# +# SUPPORTED TYPES +# --------------- +# "ban" → dl_load:gate/exec/ban (datalib: player, reason) +# "ban_ip" → dl_load:gate/exec/ban_ip (datalib: player, reason) +# "disable" → dl_load:gate/exec/disable (no macro params) +# +# Adding new types: write an executor in dl_load:gate/exec/, then add +# an 'execute if data' dispatch line here. + +# Guard: no gate open +execute unless score #pending dl.gate matches 1 run return 0 + +# Guard: already confirmed (double-call protection) +execute if score #confirmed dl.gate matches 1 run return 0 + +# Mark confirmed, close window +scoreboard players set #confirmed dl.gate 1 +scoreboard players set #pending dl.gate 0 + +# Cancel the 30-second timeout +schedule clear dl_load:gate/timeout + +# Announce execution via marker +summon minecraft:marker ~ ~ ~ {Tags:["datalib.gate_exec"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.gate_exec,limit=1] run say [DL GATE] Dangerous command CONFIRMED. Executing... +execute as @e[type=minecraft:marker,tag=datalib.gate_exec,limit=1] run kill @s + +# --- DISPATCH --- +# Each executor reads its own fields from datalib:engine pending_gate via datalib. +# The 'with storage' pattern passes pending_gate fields as $(macro) parameters. + +# ban: requires {type:"ban", player:"...", reason:"..."} +execute if data storage datalib:engine pending_gate{type:"ban"} run function dl_load:gate/exec/ban with storage datalib:engine pending_gate + +# ban_ip: requires {type:"ban_ip", player:"...", reason:"..."} +execute if data storage datalib:engine pending_gate{type:"ban_ip"} run function dl_load:gate/exec/ban_ip with storage datalib:engine pending_gate + +# disable: requires {type:"disable"} (no extra fields) +execute if data storage datalib:engine pending_gate{type:"disable"} run function dl_load:gate/exec/disable + +# --- CLEANUP --- +data remove storage datalib:engine pending_gate +scoreboard players reset #pending dl.gate +scoreboard players reset #confirmed dl.gate +scoreboard objectives remove dl.gate \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/all.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/all.mcfunction new file mode 100644 index 0000000..0087dc5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/all.mcfunction @@ -0,0 +1,72 @@ +# Load — entry point called from minecraft:load tag via datalib:load +forceload add -30000000 1600 + +# Stage 0 — Preparing +summon minecraft:marker ~ ~ ~ {Tags:["datalib.stage0prep"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.stage0prep,limit=1] run say [DL] Preparing... +execute as @e[type=minecraft:marker,tag=datalib.stage0prep,limit=1] run kill @s + +execute unless function dl_load:core/internal/load/validate run return 0 + +# Stage 1 debug +summon minecraft:marker ~ ~ ~ {Tags:["datalib.stage1"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.stage1,limit=1] run say Starting dataLib... +execute as @e[type=minecraft:marker,tag=datalib.stage1,limit=1] run kill @s + +data modify storage datalib:engine _log_add_tmp.level set value "D.L." +data modify storage datalib:engine _log_add_tmp.message set value "Starting..." +data modify storage datalib:engine _log_add_tmp.color set value "aqua" +function datalib:systems/log/add with storage datalib:engine _log_add_tmp + +# RT Origin — Gate 1: watermark doğrulama +function datalib:_rt_origin +execute unless data storage datalib:engine {global:{rt_origin_verified:1b}} run return run tellraw @s {"text":"Exit code: 1 — rt_origin verification failed","color":"red"} + +# RT Origin — Gate 2: fork kontrolü +# fork_verified field yoksa onay kapısını aç (1b=orijinal, 0b=fork onaylı, her ikisi de geçer) +execute unless data storage datalib:engine global.fork_verified run return run function dl_load:load/fork + +# Stage 2 debug +summon minecraft:marker ~ ~ ~ {Tags:["datalib.stage2"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.stage2,limit=1] run say Loading scoreboards... +execute as @e[type=minecraft:marker,tag=datalib.stage2,limit=1] run kill @s +function dl_load:load/scoreboards + +# Stage 3 debug +summon minecraft:marker ~ ~ ~ {Tags:["datalib.stage3"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.stage3,limit=1] run say Loading storages... +execute as @e[type=minecraft:marker,tag=datalib.stage3,limit=1] run kill @s +function dl_load:load/storages + +function dl_load:load/dev_settings + +function dl_load:load/other + +data modify storage datalib:engine global.loaded set value 1b + +function dl_load:core/internal/load/version_set + +# Lantern Load integration — set pack version in load.status +# Format: (major * 10000) + (minor * 100) + patch +# Example: v2.2.6 = 20206 +execute store result score #version_calc dl.tmp run scoreboard players get #dl.major dl.pre_version +scoreboard players operation #version_calc dl.tmp *= #10000 dl.tmp +execute store result score #temp dl.tmp run scoreboard players get #dl.minor dl.pre_version +scoreboard players operation #temp dl.tmp *= #100 dl.tmp +scoreboard players operation #version_calc dl.tmp += #temp dl.tmp +scoreboard players operation #version_calc dl.tmp += #dl.patch dl.pre_version +scoreboard players operation #dataLib load.status = #version_calc dl.tmp + +execute if score #dl.pre dl.pre_version matches 1.. run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"Loaded. ","color":"green"},[{"text":"v","color":"aqua"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":".","color":"aqua"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":".","color":"aqua"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":"-pre","color":"#ff8800"},{"score":{"name":"#dl.pre","objective":"dl.pre_version"},"color":"#ff8800","bold":true}]] +execute if score #dl.pre dl.pre_version matches ..0 run tellraw @a[tag=datalib.debug] ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"Loaded. ","color":"green"},[{"text":"v","color":"aqua"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":".","color":"aqua"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"aqua","bold":true},{"text":".","color":"aqua"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"aqua","bold":true}]] + +data modify storage datalib:engine _log_add_tmp.level set value "dataLib" +data modify storage datalib:engine _log_add_tmp.message set value "Loaded." +data modify storage datalib:engine _log_add_tmp.color set value "green" +function datalib:systems/log/add with storage datalib:engine _log_add_tmp + +# RT Origin verification +function datalib:_rt_origin +execute unless data storage datalib:engine {global:{rt_origin_verified:1b}} run return run tellraw @s {"text":"Exit code: 1 — rt_origin verification failed","color":"red"} + +function dl_load:core/internal/load/finalize \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/confirm.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/confirm.mcfunction new file mode 100644 index 0000000..8b6b3d0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/confirm.mcfunction @@ -0,0 +1,72 @@ +# dl_load:load/confirm +# DL Load Confirmation Gate — Stage 0 dispatcher +# Execution context: minecraft:marker (spawned by dl_load:_) +# +# PURPOSE +# ------- +# The minecraft:load tag fires on /reload AND on server/world open. +# If datalib:engine storage already holds live data from a previous session +# (permission maps, flag tables, wand binds, etc.), overwriting it +# immediately causes nondeterministic state and silent data loss. +# +# This function sets a scoreboard-based pending flag, broadcasts the +# confirmation instructions to the server log via marker say (immune to +# the server-startup tellraw / clickEvent rendering bug), and schedules +# an automatic cancel after 5 minutes. +# +# NOTHING in datalib:engine storage is touched here. +# Storage writes happen only after dl_load:load/yes is called. +# +# FLOW +# ---- +# dl_load:_ (stage0) +# └─ dl_load:load/confirm ← this file (runs as marker) +# ├─ broadcasts instructions +# └─ schedules dl_load:timeout (5m) +# +# Admin: /function dl_load:load/yes +# └─ dl_load:load/all → full init pipeline +# +# Admin: /function dl_load:load/no +# └─ abort — storage untouched +# +# 5 minutes elapse with no response: +# └─ dl_load:timeout → dl_load:load/no (auto-abort) + +# Create load-gate tracking objective +# Safe to call even if objective already exists (add is idempotent) +scoreboard objectives add dl.load dummy + +# Reset any stale state from a previous incomplete gate cycle +scoreboard players set #pending dl.load 0 +scoreboard players set #confirmed dl.load 0 +scoreboard players set #cancelled dl.load 0 + +# Open the gate window +scoreboard players set #pending dl.load 1 + +# Broadcast via marker say — works at server start, no clickEvent, no players required +say [DL GATE] ======================================== +say [DL GATE] dataLib load is PENDING. +say [DL GATE] Storage has NOT been modified yet. +say [DL GATE] ---------------------------------------- +say [DL GATE] CONFIRM: /function dl_load:load/yes +say [DL GATE] CANCEL: /function dl_load:load/no +say [DL GATE] ---------------------------------------- +say [DL GATE] Auto-cancel fires in 5 minutes if no response. +say [DL GATE] ======================================== + +# Schedule 5-minute auto-cancel +# 'replace' ensures repeated /reload does not stack multiple timeout schedules +schedule function dl_load:timeout 300s replace +# ───────────────────────────────────────────────────────────────── +# SANDBOX MODE — auto-confirm +# Enable: /data modify storage datalib:engine sandbox set value 1b +# Disable: /data modify storage datalib:engine sandbox set value 0b +# Storage persists across reloads — set once, active until cleared. +# NOTE: schedule is cleared inside load/yes. Do NOT remove dl.load +# objective here — load/yes guard checks #pending dl.load == 1. +# ───────────────────────────────────────────────────────────────── +execute if data storage datalib:engine {sandbox:1b} run say [DL GATE] SANDBOX MODE — auto-confirming load. +execute if data storage datalib:engine {sandbox:1b} run function dl_load:load/yes +execute if data storage datalib:engine {sandbox:1b} run return 0 \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/dev_settings.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/dev_settings.mcfunction new file mode 100644 index 0000000..adf94d6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/dev_settings.mcfunction @@ -0,0 +1,11 @@ +# dl_load:load/dev_settings +# Initializes datalib:engine dev_settings storage fields on first load. +# All writes are guarded with 'execute unless data' — existing values are preserved. +# +# Fields: +# dev_settings.devMode 0b = dev mode disabled (default) +# dev_settings.version version target: 116 | 117 | 118 | 119 | 120 (default: 120) + +execute unless data storage datalib:engine dev_settings run data modify storage datalib:engine dev_settings set value {devMode:0b,version:120} +execute unless data storage datalib:engine dev_settings.devMode run data modify storage datalib:engine dev_settings.devMode set value 0b +execute unless data storage datalib:engine dev_settings.version run data modify storage datalib:engine dev_settings.version set value 120 diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/fork.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/fork.mcfunction new file mode 100644 index 0000000..acf088c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/fork.mcfunction @@ -0,0 +1,32 @@ +# dl_load:load/fork +# Fork confirmation gate — called when fork_verified is not set. +# Player is prompted to confirm with /yes or /no. +# +# USAGE: +# /function dl_load:load/fork +# +# CONFIRM: /function dl_load:load/fork_yes +# CANCEL: /function dl_load:load/fork_no + +scoreboard objectives add dl.fork_gate dummy + +# Reset any stale state from a previous incomplete gate cycle. +# Without this, a #pending=1 left over from a prior session/reload +# (objectives add is idempotent and does NOT reset values) would +# permanently lock this gate: fork_yes/fork_no both guard on +# "#pending matches 1", and the early "drop if already open" check +# below would keep returning before ever re-arming the 30s timeout. +scoreboard players set #pending dl.fork_gate 0 +scoreboard players set #confirmed dl.fork_gate 0 + +scoreboard players set #pending dl.fork_gate 1 + +summon minecraft:marker ~ ~ ~ {Tags:["datalib.fork_gate"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.fork_gate,limit=1] run say [DL FORK GATE] This copy is not marked as a fork. +execute as @e[type=minecraft:marker,tag=datalib.fork_gate,limit=1] run say [DL FORK GATE] Do you want to continue? +execute as @e[type=minecraft:marker,tag=datalib.fork_gate,limit=1] run say [DL FORK GATE] YES: /function dl_load:load/fork_yes +execute as @e[type=minecraft:marker,tag=datalib.fork_gate,limit=1] run say [DL FORK GATE] NO: /function dl_load:load/fork_no +execute as @e[type=minecraft:marker,tag=datalib.fork_gate,limit=1] run say [DL FORK GATE] Auto-cancel fires in 30 seconds. +execute as @e[type=minecraft:marker,tag=datalib.fork_gate,limit=1] run kill @s + +schedule function dl_load:load/fork_no 30s replace diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/fork_no.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/fork_no.mcfunction new file mode 100644 index 0000000..2a79466 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/fork_no.mcfunction @@ -0,0 +1,39 @@ +# dl_load:load/fork_no +# Fork confirmation gate — /no response or 30s timeout. +# Runs normal load, fork_verified is not set. +# +# USAGE: +# /function dl_load:load/fork_no + +# Guard: gate must be open +execute unless score #pending dl.fork_gate matches 1 run return 0 + +# Guard: already confirmed +execute if score #confirmed dl.fork_gate matches 1 run return 0 + +scoreboard players set #pending dl.fork_gate 0 +scoreboard players set #confirmed dl.fork_gate 0 + +schedule clear dl_load:load/fork_no + +# BUGFIX: this was the only path through load/all.mcfunction that never +# set global.fork_verified. load/all's fork-gate check is +# "execute unless data storage datalib:engine global.fork_verified run +# return run function dl_load:load/fork" — it only treats the gate as +# resolved once the FIELD EXISTS (1b=original, 0b=confirmed fork, per +# load/all's own comment), not based on which choice was made. Since +# load/yes always reschedules load/all 1 tick later, leaving the field +# unset here meant every /no answer led straight back into load/all +# re-opening the same fork gate again — an infinite confirmation loop, +# reproduced live: fork_no fired repeatedly every few seconds without +# the operator doing anything, because load/yes -> load/all -> fork +# (field still unset) -> wait for input -> fork_no -> load/yes -> ... +# 1b marks this copy as "not a fork, operator dismissed the prompt" — +# distinct from fork_yes's 0b ("is a fork, operator confirmed it"). +data modify storage datalib:engine global.fork_verified set value 1b + +summon minecraft:marker ~ ~ ~ {Tags:["datalib.fork_no"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.fork_no,limit=1] run say [DL FORK GATE] Cancelled — continuing with normal load. +execute as @e[type=minecraft:marker,tag=datalib.fork_no,limit=1] run kill @s + +function dl_load:load/yes diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/fork_yes.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/fork_yes.mcfunction new file mode 100644 index 0000000..3121775 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/fork_yes.mcfunction @@ -0,0 +1,26 @@ +# dl_load:load/fork_yes +# Fork confirmation gate — /yes response. +# Runs safe_load and sets fork_verified to 0b. +# +# USAGE: +# /function dl_load:load/fork_yes + +# Guard: gate must be open +execute unless score #pending dl.fork_gate matches 1 run return 0 + +# Guard: already confirmed +execute if score #confirmed dl.fork_gate matches 1 run return 0 + +scoreboard players set #pending dl.fork_gate 0 + +schedule clear dl_load:load/fork_no + +summon minecraft:marker ~ ~ ~ {Tags:["datalib.fork_yes"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.fork_yes,limit=1] run say [DL FORK GATE] Confirmed — running safe_load. +execute as @e[type=minecraft:marker,tag=datalib.fork_yes,limit=1] run kill @s + +# fork_verified = 0b (fork, confirmed by operator) +data modify storage datalib:engine global.fork_verified set value 0b + +scoreboard players set #confirmed dl.fork_gate 1 +function dl_load:safe_load/yes diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/no.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/no.mcfunction new file mode 100644 index 0000000..9c12367 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/no.mcfunction @@ -0,0 +1,39 @@ +# dl_load:load/no +# Admin cancelled (or timeout fired) — DL load is ABORTED. +# +# datalib:engine storage is NOT touched at any point. +# The engine remains uninitialized and fully inert. +# +# IDEMPOTENT — safe to call multiple times. +# The #pending guard ensures this is a no-op if no gate is open. +# +# ALSO CALLED BY: dl_load:timeout (auto-cancel after 5 minutes) +# +# TO RETRY: run /reload OR /function dl_load:_ +# (calling dl_load:_ directly re-runs stage0 without a full /reload) + +# Guard: nothing pending +execute unless score #pending dl.load matches 1 run return 0 + +# Close the gate window +scoreboard players set #cancelled dl.load 1 +scoreboard players set #pending dl.load 0 +scoreboard players set #confirmed dl.load 0 + +# If admin called /no explicitly, cancel the still-pending timeout +schedule clear dl_load:timeout + +# Announce cancellation via marker (works with zero players online) +summon minecraft:marker ~ ~ ~ {Tags:["datalib.gate_no"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.gate_no,limit=1] run say [DL GATE] ======================================== +execute as @e[type=minecraft:marker,tag=datalib.gate_no,limit=1] run say [DL GATE] Load CANCELLED. datalib:engine storage was NOT modified. +execute as @e[type=minecraft:marker,tag=datalib.gate_no,limit=1] run say [DL GATE] Engine is NOT running. +execute as @e[type=minecraft:marker,tag=datalib.gate_no,limit=1] run say [DL GATE] To retry: /reload or /function dl_load:_ +execute as @e[type=minecraft:marker,tag=datalib.gate_no,limit=1] run say [DL GATE] ======================================== +execute as @e[type=minecraft:marker,tag=datalib.gate_no,limit=1] run kill @s + +# Tear down gate objective +scoreboard players reset #pending dl.load +scoreboard players reset #cancelled dl.load +scoreboard players reset #confirmed dl.load +scoreboard objectives remove dl.load \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/other.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/other.mcfunction new file mode 100644 index 0000000..7b7126a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/other.mcfunction @@ -0,0 +1,21 @@ +forceload add 0 0 +function datalib:_rt_origin + +data modify storage datalib:input func set value "datalib:core/lib/sync_tick" +data modify storage datalib:input interval set value 20 +data modify storage datalib:input key set value "sync_tick" +function datalib:core/lib/schedule with storage datalib:input {} +data remove storage datalib:input func +data remove storage datalib:input interval +data remove storage datalib:input key + +scoreboard players enable @a[tag=datalib.admin] dl_menu +scoreboard players enable @a[tag=datalib.admin] dl_run +scoreboard players enable @a[tag=datalib.admin] dl_action + +# Initialize tick channel config on first world load +function datalib:core/tick/init_channels + +# Assign pid for any players already online at load time +# (on_player_join won't fire for them after a /reload) +execute as @a run function datalib:core/internal/player/init_online \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/post_load.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/post_load.mcfunction new file mode 100644 index 0000000..ec44bce --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/post_load.mcfunction @@ -0,0 +1,7 @@ +# Stage 4 — post_load: schedule #datalib:init after DL finishes loading +# dl_load:load/all is scheduled at t+16 (from Stage 0 in dl_load:_). +# Firing #datalib:init at t+20 gives 4 ticks of margin after dataLib is fully ready. +summon minecraft:marker ~ ~ ~ {Tags:["datalib.stage4"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.stage4,limit=1] run say Scheduling #datalib:init (t+20)... +execute as @e[type=minecraft:marker,tag=datalib.stage4,limit=1] run schedule function #datalib:init 20t replace +execute as @e[type=minecraft:marker,tag=datalib.stage4,limit=1] run kill @s diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/scoreboards.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/scoreboards.mcfunction new file mode 100644 index 0000000..bf54843 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/scoreboards.mcfunction @@ -0,0 +1,86 @@ +scoreboard objectives add dl.tmp dummy +scoreboard objectives add datalib.time dummy +scoreboard objectives add dl_menu trigger +scoreboard objectives add dl_run trigger +scoreboard objectives add dl_action trigger +scoreboard objectives add datalib.dialog_load dummy +scoreboard objectives add health health {"text":"❤","color":"red"} +scoreboard objectives add dl.pre_version dummy +scoreboard objectives add datalib.pid dummy +scoreboard objectives add dl.freeze_id dummy +scoreboard objectives add datalib.onlinePlayers dummy +scoreboard objectives add datalib_settingsBook trigger +scoreboard objectives add datalib.meta dummy + +# Wand module — carrot_on_a_stick right-click tracker +scoreboard objectives add datalib.rightClick minecraft.used:minecraft.carrot_on_a_stick + +# Hook module scoreboards +scoreboard objectives add datalib.hook_online dummy +# BUGFIX: existing players should not re-trigger as new joins after reload +scoreboard players set @a datalib.hook_online 1 +scoreboard objectives add datalib.hook_deaths deathCount +# NOTE: placed_blocks is not a general statistic — must be used as dummy +scoreboard objectives add datalib.hook_placed dummy +scoreboard objectives add datalib.hook_lvl dummy +scoreboard objectives add datalib.hook_lvl_new dummy +# New hook scoreboards +scoreboard objectives add datalib.hook_sneak dummy +scoreboard objectives add datalib.hook_sprint dummy +scoreboard objectives add datalib.hook_elytra dummy +# block_break — item_durability_changed advancement-based +scoreboard objectives add datalib.hook_tool_used dummy +# item_use, entity_kill advancement-based +scoreboard objectives add datalib.hook_item_used dummy +scoreboard objectives add datalib.hook_entity_killed dummy +# using_item, killed_by_arrow, hero_of_the_village +scoreboard objectives add datalib.hook_using_item dummy +scoreboard objectives add datalib.hook_killed_by_arrow dummy +scoreboard objectives add datalib.hook_hero_of_the_village dummy + +# geo/region_watch — no scoreboard needed for enter/leave tracking (uses entity tags) + +# hook/dimension_change — changed_dimension advancement-based +scoreboard objectives add datalib.hook_dim_changed dummy + +# hook/trade — villager_trade advancement-based +scoreboard objectives add datalib.hook_traded dummy + +# Tick channel dispatch +scoreboard objectives add datalib.tick dummy +scoreboard objectives add datalib.Flags dummy + +# Player stat hooks +scoreboard objectives add datalib.hook_jump minecraft.custom:minecraft.jump +scoreboard objectives add datalib.hook_open_chest minecraft.custom:minecraft.open_chest +scoreboard objectives add datalib.hook_drop minecraft.custom:minecraft.drop +scoreboard objectives add datalib.hook_target_hit minecraft.custom:minecraft.target_hit + +# hook/eat — consume_item advancement-based +scoreboard objectives add datalib.hook_eat dummy +# hook/fish_caught — fishing_rod_hooked advancement-based +scoreboard objectives add datalib.hook_fish dummy + +# Version calculation constants (for Lantern Load integration) +scoreboard players set #10000 dl.tmp 10000 +scoreboard players set #100 dl.tmp 100 + +# Log level system: 0=off 1=error 2=warn 3=info 4=debug +scoreboard objectives add dl.log_level dummy +execute unless score #dl.log_level dl.log_level matches 0.. run scoreboard players set #dl.log_level dl.log_level 3 + +# Config scoreboard — fast integer config values (no storage lookup needed) +scoreboard objectives add datalib.config dummy + +# Gamerule module — scratch scoreboard for numeric range checks +scoreboard objectives add dl.gamerule dummy + +# State scoreboard — per-player state machine (0=idle 1=combat 2=menu ...) +scoreboard objectives add datalib.state dummy + +# Security module — per-player permission level +# 0=no access (default) 1=basic 2=standard 3=elevated($$(cmd)) 4=super +scoreboard objectives add dl.perm_level dummy + +# dev_settings module — per-player book page cursor +scoreboard objectives add dl.dev_pg2 dummy \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/storages.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/storages.mcfunction new file mode 100644 index 0000000..d3592f4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/storages.mcfunction @@ -0,0 +1,170 @@ +# dl_load:load/storages +# Initializes datalib:engine storage fields that do not yet exist. +# +# SAFETY DESIGN +# ------------- +# EVERY write here uses 'execute unless data storage ...' guards. +# This means: +# - Fields that already exist from a prior session are NOT overwritten. +# - Only fields missing from storage are initialized. +# - Nondeterministic overwrite behaviour is impossible in this file. +# +# Fields that are INTENTIONALLY cleared on each reload are listed with +# explicit comments explaining why. +# +# SCOREBOARD SAFETY +# ----------------- +# Epoch is preserved across reloads — cooldown expiry times depend on it. +# Tick counter is reset (irrelevant across reloads — just a monotonic counter). +# pq_depth is reset (queue state cannot survive reload safely). +# +# STORAGE VERSION GUARD +# --------------------- +# validate.mcfunction blocks a second load if global{loaded:1b} is set, +# so we only reach here when storage is either: +# (a) fresh / never initialized, or +# (b) was cleanly disabled via datalib:disable (cleanup removed global). +# In both cases, initializing with 'unless data' guards is safe. + +execute unless score $epoch datalib.time matches -2147483648..2147483647 run scoreboard players set $epoch datalib.time 0 +scoreboard players set $tick dl.tmp 0 + +scoreboard players set $pq_depth dl.tmp 0 + +scoreboard players set $pb_four dl.tmp 1 + +execute unless data storage datalib:engine throttle run data modify storage datalib:engine throttle set value {} + +execute unless data storage datalib:engine flags run data modify storage datalib:engine flags set value {} +execute unless data storage datalib:engine states run data modify storage datalib:engine states set value {} + +execute unless data storage datalib:engine permissions run data modify storage datalib:engine permissions set value {} + +execute unless data storage datalib:engine perm_triggers run data modify storage datalib:engine perm_triggers set value {} +execute unless data storage datalib:engine perm_trigger_names run data modify storage datalib:engine perm_trigger_names set value [] + +execute unless data storage datalib:engine trigger_binds run data modify storage datalib:engine trigger_binds set value [] + +execute unless data storage datalib:engine interaction_binds run data modify storage datalib:engine interaction_binds set value {attack:[], use:[]} + +execute unless data storage datalib:engine player_pids run data modify storage datalib:engine player_pids set value {} +execute unless data storage datalib:engine _pid_seq run data modify storage datalib:engine _pid_seq set value 0 + +# UUID module init +function datalib:core/internal/systems/uuid/init + +# once_per_player module init +execute unless data storage datalib:engine once_per_player run data modify storage datalib:engine once_per_player set value {} + +# Wand module init +execute unless data storage datalib:engine wand_binds run data modify storage datalib:engine wand_binds set value [] + +# Hook module init +execute unless data storage datalib:engine hook_binds run data modify storage datalib:engine hook_binds set value [] + +# lib/fiber module init +# BUGFIX: same issue as the queue note below — fibers was only ever +# cleared in cleanup.mcfunction (disable-only path, never /reload). +# A fiber record left over from before a reload would be orphaned now +# that queue is cleared below (nothing will ever resume it again), but +# clearing it explicitly here keeps the storage clean and matches what +# cleanup.mcfunction already does for the disable path. +data remove storage datalib:engine fibers +data modify storage datalib:engine fibers set value {} +# NOTE: fibers._pending no longer exists as of the resume_dispatch +# concurrency fix — resume targets now travel inside each queue entry +# (id/resume fields) instead of a separate shared FIFO list. + +# core/lib/process_queue module init +# BUGFIX: the header comment above ("pq_depth is reset — queue state +# cannot survive reload safely") describes intent that was never +# actually implemented. queue is only ever cleared in +# core/internal/load/cleanup.mcfunction, which is exclusively called +# from datalib:disable — never from the /reload path (load/all.mcfunction +# does not call it). A queue entry left over from before a reload (e.g. +# a fiber resume, a delayed function/command) would silently keep +# running against whatever state exists after the reload, including +# referencing fiber ids or functions that no longer exist. Clearing it +# here actually fulfills what the comment above already claimed was +# happening. +data remove storage datalib:engine queue + +# geo/region_watch module init +# Region watches are always cleared on reload — all packs must re-register +# their watches in the #datalib:init function tag. This is intentional: +# region watch registrations are transient and pack-owned. +data remove storage datalib:engine region_watches +data modify storage datalib:engine region_watches set value [] + +# lib/batch module init +# Incomplete batches are always cleared on reload — they cannot be safely +# resumed across a reload boundary (executing context is gone). +data remove storage datalib:engine batches +data modify storage datalib:engine batches set value {} + +# Wand cooldown module — separate storage (avoids collision with datalib:cooldown) +execute unless data storage datalib:engine wand_cooldowns run data modify storage datalib:engine wand_cooldowns set value {} + +# ───────────────────────────────────────────────────────────────── +# Security module init (v6.0.0+) +# BREAKING CHANGE: trust_players defaults to 0b — players must have +# dl.perm_level explicitly set. datalib.admin tag alone gives no access. +# +# Fields (all preserved across reloads via 'unless data' guards): +# trust_players 0b = players not trusted (default, breaking) +# cmd_min_level min dl.perm_level to trigger $$(cmd) [3] +# sandbox_cmd_min_level stricter $$(cmd) floor when sandbox:1b [4] +# admin_min_level min level for cmd/ functions (check_all) [2] +# admin_can_override 0b = admins cannot bypass security rules +# sandbox_allowlist list of allowed command prefixes in sandbox [] +# ───────────────────────────────────────────────────────────────── +execute unless data storage datalib:engine security run data modify storage datalib:engine security set value {trust_players:0b,cmd_min_level:3,sandbox_cmd_min_level:4,admin_min_level:2,admin_can_override:0b,sandbox_allowlist:{}} +# ───────────────────────────────────────────────────────────────── +# Security module v6.0.0+ additions +# BREAKING CHANGE: sandbox_allowlist is now a compound {} (was list []). +# Empty compound {} = all sandbox commands blocked. +# multi_type_allowlist: compound of permitted multiCommands.type values. +# multiCommands: tracks active multi-command execution context. +# ───────────────────────────────────────────────────────────────── +# Reset security to new compound format (migration: [] → {}) +execute if data storage datalib:engine security.sandbox_allowlist[] run data modify storage datalib:engine security.sandbox_allowlist set value {} +execute unless data storage datalib:engine security run data modify storage datalib:engine security set value {trust_players:0b,cmd_min_level:3,sandbox_cmd_min_level:4,admin_min_level:2,admin_can_override:0b,sandbox_allowlist:{}} +execute unless data storage datalib:engine security.sandbox_allowlist run data modify storage datalib:engine security.sandbox_allowlist set value {} +execute unless data storage datalib:engine security.multi_type_allowlist run data modify storage datalib:engine security.multi_type_allowlist set value {multi_cmd:1b,multi_cmd_adv:1b} + +# multiCommands context tracker (always reset on load — transient state) +data remove storage datalib:engine multiCommands +data modify storage datalib:engine multiCommands set value {type:"",active:0b} + +# ───────────────────────────────────────────────────────────────── +# Module toggle init (datalib:api/toggle) +# Each module defaults to enabled (1b) on first load. +# Preserved across reloads via 'unless data' guards — admin toggles survive /reload. +# Disable a module: /function datalib:api/toggle//false +# Enable a module: /function datalib:api/toggle//true +# List module states: /function datalib:api/toggle/list +# ───────────────────────────────────────────────────────────────── +execute unless data storage datalib:engine modules.hook run data modify storage datalib:engine modules.hook set value 1b +execute unless data storage datalib:engine modules.interaction run data modify storage datalib:engine modules.interaction set value 1b +execute unless data storage datalib:engine modules.perm run data modify storage datalib:engine modules.perm set value 1b +execute unless data storage datalib:engine modules.wand run data modify storage datalib:engine modules.wand set value 1b +execute unless data storage datalib:engine modules.geo run data modify storage datalib:engine modules.geo set value 1b + +# ───────────────────────────────────────────────────────────────── +# cb module init +# cb_queue is always cleared on reload — in-flight delayed commands +# cannot be safely resumed across a reload boundary. +# ───────────────────────────────────────────────────────────────── +data remove storage datalib:engine cb_queue +data modify storage datalib:engine cb_queue set value [] +data remove storage datalib:engine _cb_last +data remove storage datalib:engine _cb_work +data remove storage datalib:engine _cb_entry +execute unless data storage datalib:engine modules.cb run data modify storage datalib:engine modules.cb set value 1b + +# ───────────────────────────────────────────────────────────────── +# Color API init +# Populates named color lookup table and initializes color namespace. +# palette and gradients are preserved across reloads (unless data guards). +# ───────────────────────────────────────────────────────────────── +function datalib:systems/color/init diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/version_warn.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/version_warn.mcfunction new file mode 100644 index 0000000..7549773 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/version_warn.mcfunction @@ -0,0 +1,8 @@ +tellraw @a ["",{"text":"❌ ","color":"red"},{"text":"[DL] ","color":"aqua","bold":true},{"text":"Version conflict! ","color":"red","bold":true},{"text":"Expected ","color":"gray"},{"text":"v6.0.0","color":"yellow","bold":true},{"text":" — stored scores do not match.","color":"gray"}] +tellraw @a ["",{"text":" ↳ ","color":"#555555"},{"text":"Run ","color":"gray"},{"text":"/reload","color":"white","underlined":true,"click_event":{"action":"run_command","command":"/trigger dl.reload set 1"}},{"text":" to reinitialize dataLib.","color":"gray"}] + +tellraw @a[tag=datalib.debug] ["",{"text":"[DL/DEBUG] ","color":"aqua"},{"text":"dl.pre_version → ","color":"#555555"},{"text":"major=","color":"gray"},{"score":{"name":"#dl.major","objective":"dl.pre_version"},"color":"yellow"},{"text":" minor=","color":"gray"},{"score":{"name":"#dl.minor","objective":"dl.pre_version"},"color":"yellow"},{"text":" patch=","color":"gray"},{"score":{"name":"#dl.patch","objective":"dl.pre_version"},"color":"yellow"},{"text":" pre=","color":"gray"},{"score":{"name":"#dl.pre","objective":"dl.pre_version"},"color":"yellow"},{"text":" (expected: 6 0 0 pre=0)","color":"red"}] + +data modify storage datalib:engine _log_add_tmp.message set value "❌ Version mismatch — expected v6.0.0. Load aborted." +function datalib:systems/log/warn with storage datalib:engine _log_add_tmp +data remove storage datalib:engine _log_add_tmp.message diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/load/yes.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/load/yes.mcfunction new file mode 100644 index 0000000..52d7094 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/load/yes.mcfunction @@ -0,0 +1,47 @@ +# dl_load:load/yes +# Admin confirmed DL load. Triggers the full initialization pipeline. +# +# GUARDS +# ------ +# - Gate must be open (#pending dl.load == 1) +# - Already-confirmed calls are no-ops (idempotent) +# - If called with no gate pending, silently returns 0 +# +# WHAT HAPPENS +# ------------ +# 1. Mark confirmed, close the pending window +# 2. Cancel the 5-minute timeout schedule +# 3. Tear down the dl.load objective (not needed after this point) +# 4. Schedule dl_load:load/all at t+1 (clean tick boundary) +# +# The 1-tick delay lets the scoreboard objective removal settle before +# dl_load:load/scoreboards runs and recreates its own objectives. + +# Guard: no gate open +execute unless score #pending dl.load matches 1 run return 0 + +# Guard: already confirmed (double-call protection) +execute if score #confirmed dl.load matches 1 run return 0 + +# Mark confirmed — close window +scoreboard players set #confirmed dl.load 1 +scoreboard players set #pending dl.load 0 + +# Cancel auto-cancel timeout +schedule clear dl_load:timeout + +# Announce via marker (safe on all MC versions, no player context needed) +summon minecraft:marker ~ ~ ~ {Tags:["datalib.gate_yes"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.gate_yes,limit=1] run say [DL GATE] Load CONFIRMED by operator. Initializing dataLib... +execute as @e[type=minecraft:marker,tag=datalib.gate_yes,limit=1] run kill @s + +# Tear down gate scoreboard before load pipeline touches scoreboards +scoreboard players reset #pending dl.load +scoreboard players reset #confirmed dl.load +scoreboard players reset #cancelled dl.load +scoreboard objectives remove dl.load + +# Fire the actual load pipeline +# 1-tick delay gives scoreboard removal a clean tick boundary before +# dl_load:load/scoreboards recreates its objectives +schedule function dl_load:load/all 1t replace \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/reload/main.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/reload/main.mcfunction new file mode 100644 index 0000000..9753b01 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/reload/main.mcfunction @@ -0,0 +1,9 @@ +tellraw @s [{"text":"[DL]","color":"#ffe600","extra":[" "]},{"text":"Reloading..."}] + +#> Reload +reload +function dl_load:load/all + +#>Feedback +tag @s remove datalib.loadFail +tellraw @s [{"text":"[DL]","color":"#ffe600","extra":[" "]},{"text":"Engine reloaded successfully.","color":"green"}] diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/safe_load/no.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/safe_load/no.mcfunction new file mode 100644 index 0000000..f2a272c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/safe_load/no.mcfunction @@ -0,0 +1,23 @@ +# dl_load:safe_load/no +# Enhanced load cancellation with detailed logging. +# Use INSTEAD OF dl_load:load/no for audited environments. +# +# USAGE: +# /function dl_load:safe_load/no + +# Guard: gate must be open or pending +execute unless score #pending dl.load matches 1 run return 0 + +# Log via marker +summon minecraft:marker ~ ~ ~ {Tags:["datalib.safe_gate_no"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.safe_gate_no,limit=1] run say [DL SAFE GATE] safe_load/no — load CANCELLED by operator. +execute as @e[type=minecraft:marker,tag=datalib.safe_gate_no,limit=1] run say [DL SAFE GATE] Storage has NOT been modified. +execute if entity @s[type=minecraft:player] run execute as @e[type=minecraft:marker,tag=datalib.safe_gate_no,limit=1] run say [DL SAFE GATE] Cancelled by a player. +execute unless entity @s[type=minecraft:player] run execute as @e[type=minecraft:marker,tag=datalib.safe_gate_no,limit=1] run say [DL SAFE GATE] Cancelled by server/console. +execute as @e[type=minecraft:marker,tag=datalib.safe_gate_no,limit=1] run kill @s + +# Notify player if applicable +execute if entity @s[type=minecraft:player] run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"safe_load cancelled. Storage untouched.","color":"yellow"}] + +# Delegate to regular load/no +function dl_load:load/no diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/safe_load/yes.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/safe_load/yes.mcfunction new file mode 100644 index 0000000..a9d1446 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/safe_load/yes.mcfunction @@ -0,0 +1,62 @@ +# dl_load:safe_load/yes +# Enhanced load confirmation gate with additional security precautions. +# Use INSTEAD OF dl_load:load/yes when operating in a security-critical context. +# +# PRECAUTIONS (over load/yes): +# 1. Gate must be open (#pending == 1) +# 2. Player caller: must have datalib.admin tag +# 3. Player caller: must have dl.perm_level >= 4 (super-admin) +# 4. Verifies engine is NOT already loaded +# 5. Logs all checks to server output via marker +# +# Non-player callers (server console / other datapacks) are trusted and bypass +# the player checks — they are already op-gated by the server. +# +# USAGE: +# /function dl_load:safe_load/yes + +# Guard: gate must be open +execute unless score #pending dl.load matches 1 run return 0 + +# Guard: already confirmed +execute if score #confirmed dl.load matches 1 run return 0 + +# Non-player callers: trusted — delegate directly +execute unless entity @s[type=minecraft:player] run summon minecraft:marker ~ ~ ~ {Tags:["datalib.safe_gate"],CustomName:{"text":"DL"}} +execute unless entity @s[type=minecraft:player] run execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run say [DL SAFE GATE] Confirmed by server/console — delegating to load/yes. +execute unless entity @s[type=minecraft:player] run execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run kill @s +execute unless entity @s[type=minecraft:player] run function dl_load:load/yes +execute unless entity @s[type=minecraft:player] run return 0 + +# Player checks: datalib.admin tag required +execute unless entity @s[tag=datalib.admin] run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ safe_load/yes denied — datalib.admin tag required.","color":"red"}] +execute unless entity @s[tag=datalib.admin] run return 0 + +# Player checks: perm_level >= 4 required +execute unless score @s dl.perm_level matches 4.. run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ safe_load/yes denied — dl.perm_level >= 4 required.","color":"red"}] +execute unless score @s dl.perm_level matches 4.. run return 0 + +# Guard: engine must NOT be already loaded +execute if data storage datalib:engine global{loaded:1b} run tellraw @s ["",{"text":"[DL] ","color":"#00AAAA","bold":true},{"text":"✘ safe_load/yes denied — engine is already loaded.","color":"red"}] +execute if data storage datalib:engine global{loaded:1b} run return 0 + +# All checks passed — announce via marker +summon minecraft:marker ~ ~ ~ {Tags:["datalib.safe_gate"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run say [DL SAFE GATE] ============================================ +execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run say [DL SAFE GATE] safe_load/yes — all security checks PASSED. +execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run say [DL SAFE GATE] datalib.admin tag: OK +execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run say [DL SAFE GATE] perm_level >= 4: OK +execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run say [DL SAFE GATE] engine not loaded: OK +execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run say [DL SAFE GATE] Delegating to load/yes... +execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run say [DL SAFE GATE] ============================================ +execute as @e[type=minecraft:marker,tag=datalib.safe_gate,limit=1] run kill @s + +# Delegate to regular load/yes +function dl_load:load/yes + + +# Enable sandbox mode +data modify storage datalib:engine sandbox set value 1b + +# Leave players unsafe by default (v6.0.0 default is already 0b) +data modify storage datalib:engine security set value {trust_players:0b,cmd_min_level:3,sandbox_cmd_min_level:4,admin_min_level:2,admin_can_override:0b,sandbox_allowlist:{}} diff --git a/dataLib-MOD/src/main/resources/data/dl_load/function/timeout.mcfunction b/dataLib-MOD/src/main/resources/data/dl_load/function/timeout.mcfunction new file mode 100644 index 0000000..7044a51 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/dl_load/function/timeout.mcfunction @@ -0,0 +1,16 @@ +# dl_load:timeout +# Fires 5 minutes after dl_load:load/confirm if no admin response. +# +# Uses the marker say pattern so the log message appears even when +# zero players are online (unlike tellraw @a). +# +# Delegates to dl_load:load/no which is idempotent — if the admin +# already ran /yes or /no, the #pending guard in load/no returns 0 +# and nothing happens. + +summon minecraft:marker ~ ~ ~ {Tags:["datalib.timeout"],CustomName:{"text":"DL"}} +execute as @e[type=minecraft:marker,tag=datalib.timeout,limit=1] run say [DL GATE] Timeout — no admin response in 5 minutes. Auto-cancelling. +execute as @e[type=minecraft:marker,tag=datalib.timeout,limit=1] run kill @s + +# Delegate to load/no (idempotent — no-op if gate already closed) +execute if score #pending dl.load matches 1 run function dl_load:load/no \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/global/advancement/datalib.main.json b/dataLib-MOD/src/main/resources/data/global/advancement/datalib.main.json new file mode 100644 index 0000000..a11b57c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/global/advancement/datalib.main.json @@ -0,0 +1,29 @@ +{ + "display": { + "title": "IronCrest", + "description": "", + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "name": "IronCrest", + "properties": [ + { + "name": "textures", + "value": "ewogICJ0aW1lc3RhbXAiIDogMTc3ODQwMTU1MjY3OCwKICAicHJvZmlsZUlkIiA6ICI1ZWI0NGNjYzA4NTY0YTc5YWI3ZWRlYTA1ZmE4YzExNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJJcm9uY3Jlc3QiLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjA0YzRjNmZlY2Y1NDc1MDhjMjAxNDdhMmI4MzEyY2VjOGM4MzQ3NzIyNTljZmQ4MzBmMTBmZmVmM2RiZGJmMiIKICAgIH0KICB9Cn0=" + } + ] + } + } + }, + "show_toast": false, + "announce_to_chat": false, + "hidden": false + }, + "parent": "global:root", + "criteria": { + "trigger": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/global/advancement/root.json b/dataLib-MOD/src/main/resources/data/global/advancement/root.json new file mode 100644 index 0000000..9f77bb3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/global/advancement/root.json @@ -0,0 +1,18 @@ +{ + "display": { + "title": "Installed Datapacks", + "description": "", + "icon": { + "id": "minecraft:knowledge_book" + }, + "background": "minecraft:block/gray_concrete", + "show_toast": false, + "announce_to_chat": false, + "hidden": false + }, + "criteria": { + "trigger": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/load/function/_private/init.mcfunction b/dataLib-MOD/src/main/resources/data/load/function/_private/init.mcfunction new file mode 100644 index 0000000..6f239ff --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/load/function/_private/init.mcfunction @@ -0,0 +1,3 @@ +# Reset scoreboards so packs can set values accurate for current load. +scoreboard objectives add load.status dummy +scoreboard players reset * load.status diff --git a/dataLib-MOD/src/main/resources/data/load/tags/function/_private/init.json b/dataLib-MOD/src/main/resources/data/load/tags/function/_private/init.json new file mode 100644 index 0000000..50cbdf0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/load/tags/function/_private/init.json @@ -0,0 +1,5 @@ +{ + "values": [ + "load:_private/init" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/load/tags/function/_private/load.json b/dataLib-MOD/src/main/resources/data/load/tags/function/_private/load.json new file mode 100644 index 0000000..7db226d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/load/tags/function/_private/load.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#load:_private/init", + {"id": "#load:pre_load", "required": false}, + {"id": "#load:load", "required": false}, + {"id": "#load:post_load", "required": false} + ] +} diff --git a/dataLib-MOD/src/main/resources/data/load/tags/function/load.json b/dataLib-MOD/src/main/resources/data/load/tags/function/load.json new file mode 100644 index 0000000..19c0115 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/load/tags/function/load.json @@ -0,0 +1,7 @@ +{ + "values": [ + "stringlib:zprivate/load", + "datalib:load", + "#player_action:load" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/load/tags/function/post_load.json b/dataLib-MOD/src/main/resources/data/load/tags/function/post_load.json new file mode 100644 index 0000000..46d5e46 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/load/tags/function/post_load.json @@ -0,0 +1,5 @@ +{ + "values": [ + "dl_load:load/post_load" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/load/tags/function/pre_load.json b/dataLib-MOD/src/main/resources/data/load/tags/function/pre_load.json new file mode 100644 index 0000000..d9b5fa4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/load/tags/function/pre_load.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#datalib:init/pre_load" + ] +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/minecraft/tags/function/load.json b/dataLib-MOD/src/main/resources/data/minecraft/tags/function/load.json new file mode 100644 index 0000000..16948d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/minecraft/tags/function/load.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib.main:datalib/load" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/minecraft/tags/function/tick.json b/dataLib-MOD/src/main/resources/data/minecraft/tags/function/tick.json new file mode 100644 index 0000000..4914633 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/minecraft/tags/function/tick.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib.main:datalib/tick" + ] +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/attack_click_entity.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/attack_click_entity.json new file mode 100644 index 0000000..444f894 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/attack_click_entity.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "interact_click_entity": { + "trigger": "minecraft:player_hurt_entity", + "conditions": { + "entity": { + "minecraft:entity_type": "minecraft:interaction", + "nbt": "{Tags:[\"player_action.click_entity\"]}" + } + } + } + }, + "rewards": { + "function": "player_action:v1/internal/attack_click_entity" + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_anvil.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_anvil.json new file mode 100644 index 0000000..d126952 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_anvil.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:anvil" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_anvil" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_barrel.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_barrel.json new file mode 100644 index 0000000..7077428 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_barrel.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:barrel" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_barrel" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_beacon.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_beacon.json new file mode 100644 index 0000000..e4dc44a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_beacon.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:beacon" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_beaon" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_blast_furnace.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_blast_furnace.json new file mode 100644 index 0000000..b6a11bf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_blast_furnace.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:blast_furnace" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_blast_furnace" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_brewingstand.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_brewingstand.json new file mode 100644 index 0000000..0dfe72e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_brewingstand.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:brewing_stand" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_brewingstand" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_cake.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_cake.json new file mode 100644 index 0000000..e608055 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_cake.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:cake" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_cake" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_campfire.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_campfire.json new file mode 100644 index 0000000..1702ef1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_campfire.json @@ -0,0 +1,25 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:item_used_on_block", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:campfire", + "minecraft:soul_campfire" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_campfire" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_cartopgraphy_table.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_cartopgraphy_table.json new file mode 100644 index 0000000..5323ff3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_cartopgraphy_table.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:cartography_table" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_cartopgraphy_table" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_cauldron.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_cauldron.json new file mode 100644 index 0000000..c355ae9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_cauldron.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:item_used_on_block", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "#minecraft:cauldrons" + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_cauldron" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_chest.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_chest.json new file mode 100644 index 0000000..4c52365 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_chest.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:chest" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_chest" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_click_entity.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_click_entity.json new file mode 100644 index 0000000..99e276c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_click_entity.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "interact_click_entity": { + "trigger": "minecraft:player_interacted_with_entity", + "conditions": { + "entity": { + "minecraft:entity_type": "minecraft:interaction", + "nbt": "{Tags:[\"player_action.click_entity\"]}" + } + } + } + }, + "rewards": { + "function": "player_action:v1/internal/interact_click_entity" + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_crafting_table.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_crafting_table.json new file mode 100644 index 0000000..fefec21 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_crafting_table.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:crafting_table" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_crafting_table" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_dispenser.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_dispenser.json new file mode 100644 index 0000000..f4391f0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_dispenser.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:dispenser" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_dispenser" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_dropper.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_dropper.json new file mode 100644 index 0000000..185ae7d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_dropper.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:dropper" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_dropper" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_enderchest.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_enderchest.json new file mode 100644 index 0000000..7c20030 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_enderchest.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:ender_chest" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_enderchest" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_flower_pot.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_flower_pot.json new file mode 100644 index 0000000..9745479 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_flower_pot.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:flower_pot" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_flower_pot" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_furnace.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_furnace.json new file mode 100644 index 0000000..7877134 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_furnace.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:furnace" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_furnace" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_grindstone.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_grindstone.json new file mode 100644 index 0000000..1d0770b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_grindstone.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:grindstone" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_grindstone" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_hopper.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_hopper.json new file mode 100644 index 0000000..942b4bf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_hopper.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:hopper" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_hopper" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_jukebox.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_jukebox.json new file mode 100644 index 0000000..a09756a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_jukebox.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:jukebox" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_jukebox" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_lectern.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_lectern.json new file mode 100644 index 0000000..c103530 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_lectern.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:lectern" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_lectern" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_loom.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_loom.json new file mode 100644 index 0000000..0016853 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_loom.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:loom" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_loom" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_noteblock.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_noteblock.json new file mode 100644 index 0000000..452d285 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_noteblock.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:note_block" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_noteblock" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_shulker_box.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_shulker_box.json new file mode 100644 index 0000000..58c6980 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_shulker_box.json @@ -0,0 +1,40 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:shulker_box", + "minecraft:white_shulker_box", + "minecraft:orange_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:yellow_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:gray_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:cyan_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:green_shulker_box", + "minecraft:red_shulker_box", + "minecraft:black_shulker_box" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_shulker_box" + } + } \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_smithing_table.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_smithing_table.json new file mode 100644 index 0000000..86a9bbc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_smithing_table.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:smithing_table" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_smithing_table" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_smoker.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_smoker.json new file mode 100644 index 0000000..7b35b32 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_smoker.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:smoker" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_smoker" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_stonecutter.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_stonecutter.json new file mode 100644 index 0000000..898aa74 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_stonecutter.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:stonecutter" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_stonecutter" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_trapped_chest.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_trapped_chest.json new file mode 100644 index 0000000..d1b390f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_trapped_chest.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:trapped_chest" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_trapped_chest" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_vault.json b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_vault.json new file mode 100644 index 0000000..8af73aa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/advancement/v1/interact_vault.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "interact_anvil": { + "trigger": "minecraft:item_used_on_block", + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:vault" + ] + } + } + } + ] + } + } + }, + "rewards":{ + "function":"player_action:v1/internal/interact_vault" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/attack_click_entity.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/attack_click_entity.mcfunction new file mode 100644 index 0000000..bd20def --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/attack_click_entity.mcfunction @@ -0,0 +1,2 @@ + +execute if entity @s[tag=player_action.click_detection] run function #player_action:v1/internal/attack_click_entity diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_anvil.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_anvil.mcfunction new file mode 100644 index 0000000..8eb875e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_anvil.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_anvil diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_barrel.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_barrel.mcfunction new file mode 100644 index 0000000..de2d1f3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_barrel.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_barrel diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_beacon.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_beacon.mcfunction new file mode 100644 index 0000000..e185ad2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_beacon.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_beacon diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_blast_furnace.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_blast_furnace.mcfunction new file mode 100644 index 0000000..aae4a86 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_blast_furnace.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_blast_furance diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_brewingstand.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_brewingstand.mcfunction new file mode 100644 index 0000000..7592c7c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_brewingstand.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_brewingstand diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_cake.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_cake.mcfunction new file mode 100644 index 0000000..f6aea9e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_cake.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_cake diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_campfire.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_campfire.mcfunction new file mode 100644 index 0000000..77f805a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_campfire.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_campfire diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_cartopgraphy_table.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_cartopgraphy_table.mcfunction new file mode 100644 index 0000000..d8dee69 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_cartopgraphy_table.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_cartography_table diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_cauldron.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_cauldron.mcfunction new file mode 100644 index 0000000..edb8864 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_cauldron.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_cauldron diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_chest.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_chest.mcfunction new file mode 100644 index 0000000..b0e1133 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_chest.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_chest diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_click_entity.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_click_entity.mcfunction new file mode 100644 index 0000000..74f1f8a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_click_entity.mcfunction @@ -0,0 +1,2 @@ + +execute if entity @s[tag=player_action.click_detection] run function #player_action:v1/internal/interact_click_entity diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_crafting_table.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_crafting_table.mcfunction new file mode 100644 index 0000000..868b2f7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_crafting_table.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_crafting_table diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_dispenser.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_dispenser.mcfunction new file mode 100644 index 0000000..b7aabeb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_dispenser.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_dispenser diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_dropper.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_dropper.mcfunction new file mode 100644 index 0000000..7df10fb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_dropper.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_dropper diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_enderchest.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_enderchest.mcfunction new file mode 100644 index 0000000..86d35b1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_enderchest.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_enderchest diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_flower_pot.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_flower_pot.mcfunction new file mode 100644 index 0000000..e291cd0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_flower_pot.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_flower_pot diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_furnace.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_furnace.mcfunction new file mode 100644 index 0000000..70858a0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_furnace.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_furnace diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_grindstone.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_grindstone.mcfunction new file mode 100644 index 0000000..d873f34 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_grindstone.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_grindstone diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_hopper.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_hopper.mcfunction new file mode 100644 index 0000000..44f48a7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_hopper.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_hopper diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_jukebox.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_jukebox.mcfunction new file mode 100644 index 0000000..2660d9b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_jukebox.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_jukebox diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_lectern.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_lectern.mcfunction new file mode 100644 index 0000000..3172dac --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_lectern.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_lectern diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_loom.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_loom.mcfunction new file mode 100644 index 0000000..50ed2a8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_loom.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_loom diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_noteblock.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_noteblock.mcfunction new file mode 100644 index 0000000..f55c728 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_noteblock.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_noteblock diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_shulker_box.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_shulker_box.mcfunction new file mode 100644 index 0000000..be891e5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_shulker_box.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_shulker_box diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_smithing_table.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_smithing_table.mcfunction new file mode 100644 index 0000000..a1e7012 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_smithing_table.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_smithing_table diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_smoker.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_smoker.mcfunction new file mode 100644 index 0000000..dac1ef7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_smoker.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_smoker diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_stonecutter.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_stonecutter.mcfunction new file mode 100644 index 0000000..2a4efaf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_stonecutter.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_stonecutter diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_trapped_chest.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_trapped_chest.mcfunction new file mode 100644 index 0000000..e80f29c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_trapped_chest.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_trapped_chest diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_vault.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_vault.mcfunction new file mode 100644 index 0000000..695c4dd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/core/internal/v1/interact_vault.mcfunction @@ -0,0 +1,2 @@ + +function #player_action:v1/internal/interact_vault diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/enumerate.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/enumerate.mcfunction new file mode 100644 index 0000000..41194d4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/enumerate.mcfunction @@ -0,0 +1,7 @@ + +scoreboard players add #player_action.major load.status 0 +scoreboard players add #player_action.minor load.status 0 + +execute if score #player_action.major load.status matches ..0 run scoreboard players set #player_action.minor load.status 7 +execute if score #player_action.major load.status matches ..0 run scoreboard players set #player_action.major load.status 1 +execute if score #player_action.major load.status matches 1 if score #player_action.minor load.status matches ..7 run scoreboard players set #player_action.minor load.status 7 diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/init.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/init.mcfunction new file mode 100644 index 0000000..7a4961b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/init.mcfunction @@ -0,0 +1,31 @@ + +schedule function player_action:v1.7/tick 5t +schedule function player_action:v1.7/player/click_detection/tick_entities 100t +data merge storage player_action:temp {list:[], obj:{}, var:""} + +# dummy +scoreboard objectives add player_action.data dummy + +scoreboard objectives add player_action.uuid.0 dummy +scoreboard objectives add player_action.uuid.1 dummy +scoreboard objectives add player_action.uuid.2 dummy +scoreboard objectives add player_action.uuid.3 dummy + +scoreboard objectives add player_action.x dummy +scoreboard objectives add player_action.y dummy +scoreboard objectives add player_action.z dummy + +# movement +scoreboard objectives add player_action.aviate minecraft.custom:minecraft.aviate_one_cm +scoreboard objectives add player_action.climb minecraft.custom:minecraft.climb_one_cm +scoreboard objectives add player_action.fall minecraft.custom:minecraft.fall_one_cm +scoreboard objectives add player_action.fly minecraft.custom:minecraft.fly_one_cm +scoreboard objectives add player_action.walk minecraft.custom:minecraft.walk_one_cm +scoreboard objectives add player_action.jump minecraft.custom:minecraft.jump + +# other interactions +scoreboard objectives add player_action.death minecraft.custom:minecraft.deaths +scoreboard objectives add player_action.join minecraft.custom:minecraft.leave_game +scoreboard objectives add player_action.enchant minecraft.custom:minecraft.enchant_item +scoreboard objectives add player_action.use_coas minecraft.used:minecraft.carrot_on_a_stick +scoreboard objectives add player_action.use_wfoas minecraft.used:minecraft.warped_fungus_on_a_stick diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/attack_click_entity.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/attack_click_entity.mcfunction new file mode 100644 index 0000000..6b6f198 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/attack_click_entity.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/attack_click_entity +function #player_action:v1/left_click diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/end.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/end.mcfunction new file mode 100644 index 0000000..05d3488 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/end.mcfunction @@ -0,0 +1,13 @@ + +# copy uuid +scoreboard players operation #uuid.0 player_action.data = @s player_action.uuid.0 +scoreboard players operation #uuid.1 player_action.data = @s player_action.uuid.1 +scoreboard players operation #uuid.2 player_action.data = @s player_action.uuid.2 +scoreboard players operation #uuid.3 player_action.data = @s player_action.uuid.3 + +# destroy entities +execute as @e[type=minecraft:interaction,tag=player_action.click_entity,predicate=player_action:v1/equals_uuid] run tp @s ~ -300 ~ +execute as @e[type=minecraft:interaction,tag=player_action.click_entity,predicate=player_action:v1/equals_uuid] run kill @s + +# remove tag +tag @s remove player_action.click_detection diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/interact_click_entity.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/interact_click_entity.mcfunction new file mode 100644 index 0000000..ed2d527 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/interact_click_entity.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_click_entity +function #player_action:v1/right_click diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/process.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/process.mcfunction new file mode 100644 index 0000000..1d25a71 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/process.mcfunction @@ -0,0 +1,13 @@ + +# copy uuid +scoreboard players operation #uuid.0 player_action.data = @s player_action.uuid.0 +scoreboard players operation #uuid.1 player_action.data = @s player_action.uuid.1 +scoreboard players operation #uuid.2 player_action.data = @s player_action.uuid.2 +scoreboard players operation #uuid.3 player_action.data = @s player_action.uuid.3 + +# start detection +execute if entity @s[tag=!player_action.click_detection] run function player_action:v1.7/player/click_detection/start + +# teleport villager +execute if entity @s[tag=!player_action.moving] as @e[type=minecraft:interaction,tag=player_action.click_entity,predicate=player_action:v1/equals_uuid] run tp @s ~ ~0.75 ~ +execute if entity @s[tag=player_action.moving] as @e[type=minecraft:interaction,tag=player_action.click_entity,predicate=player_action:v1/equals_uuid] positioned ~ ~0.75 ~ run tp @s ^ ^ ^1.5 diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/start.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/start.mcfunction new file mode 100644 index 0000000..ac7d9c3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/start.mcfunction @@ -0,0 +1,4 @@ + +tag @s add player_action.click_detection +summon minecraft:interaction ~ ~ ~ {Tags:["player_action.click_entity","player_action.new","smithed.entity","smithed.strict"]} +execute as @e[type=minecraft:interaction,tag=player_action.new] at @s run function player_action:v1.7/player/click_detection/start_2 diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/start_2.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/start_2.mcfunction new file mode 100644 index 0000000..e066d25 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/start_2.mcfunction @@ -0,0 +1,7 @@ + +scoreboard players operation @s player_action.uuid.0 = #uuid.0 player_action.data +scoreboard players operation @s player_action.uuid.1 = #uuid.1 player_action.data +scoreboard players operation @s player_action.uuid.2 = #uuid.2 player_action.data +scoreboard players operation @s player_action.uuid.3 = #uuid.3 player_action.data + +tag @s remove player_action.new diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/tick.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/tick.mcfunction new file mode 100644 index 0000000..1ef66fb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/tick.mcfunction @@ -0,0 +1,5 @@ + +execute store result score #temp player_action.data if items entity @s weapon.mainhand *[minecraft:custom_data~{player_action:{click_detection:1b}}] + +execute if score #temp player_action.data matches 0 if entity @s[tag=player_action.click_detection] run function player_action:v1.7/player/click_detection/end +execute if score #temp player_action.data matches 1 run function player_action:v1.7/player/click_detection/process diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/tick_entities.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/tick_entities.mcfunction new file mode 100644 index 0000000..55244ab --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/tick_entities.mcfunction @@ -0,0 +1,3 @@ + +schedule function player_action:v1.7/player/click_detection/tick_entities 100t +execute as @e[type=minecraft:interaction,tag=player_action.click_entity] at @s run function player_action:v1.7/player/click_detection/tick_entities_2 diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/tick_entities_2.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/tick_entities_2.mcfunction new file mode 100644 index 0000000..8b05b68 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/click_detection/tick_entities_2.mcfunction @@ -0,0 +1,4 @@ + +execute store result score #temp player_action.data if entity @p[distance=..10,tag=player_action.click_detection] +execute if score #temp player_action.data matches 0 run tp @s ~ -300 ~ +execute if score #temp player_action.data matches 0 run kill @s diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_anvil.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_anvil.mcfunction new file mode 100644 index 0000000..13042bd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_anvil.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_anvil +function #player_action:v1/interact_anvil diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_barrel.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_barrel.mcfunction new file mode 100644 index 0000000..f88aa95 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_barrel.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_barrel +function #player_action:v1/interact_barrel diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_beacon.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_beacon.mcfunction new file mode 100644 index 0000000..03edfee --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_beacon.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_beacon +function #player_action:v1/interact_beacon diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_blast_furnace.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_blast_furnace.mcfunction new file mode 100644 index 0000000..8eaa2b8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_blast_furnace.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_blast_furnace +function #player_action:v1/interact_blast_furnace diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_brewingstand.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_brewingstand.mcfunction new file mode 100644 index 0000000..9f8e529 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_brewingstand.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_brewingstand +function #player_action:v1/interact_brewingstand diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_cake.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_cake.mcfunction new file mode 100644 index 0000000..37efdba --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_cake.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_cake +function #player_action:v1/interact_cake diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_campfire.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_campfire.mcfunction new file mode 100644 index 0000000..7cde58d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_campfire.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_campfire +function #player_action:v1/interact_campfire diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_cartopgraphy_table.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_cartopgraphy_table.mcfunction new file mode 100644 index 0000000..aa0e32f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_cartopgraphy_table.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_cartography_table +function #player_action:v1/interact_cartography_table diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_cauldron.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_cauldron.mcfunction new file mode 100644 index 0000000..a045a38 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_cauldron.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_cauldron +function #player_action:v1/interact_cauldron diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_chest.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_chest.mcfunction new file mode 100644 index 0000000..d940b0f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_chest.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_chest +function #player_action:v1/interact_chest diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_crafting_table.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_crafting_table.mcfunction new file mode 100644 index 0000000..d76f840 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_crafting_table.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_crafting_table +function #player_action:v1/interact_crafting_table diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_dispenser.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_dispenser.mcfunction new file mode 100644 index 0000000..20ea096 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_dispenser.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_dispenser +function #player_action:v1/interact_dispenser diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_dropper.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_dropper.mcfunction new file mode 100644 index 0000000..1c88587 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_dropper.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_dropper +function #player_action:v1/interact_dropper diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_enderchest.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_enderchest.mcfunction new file mode 100644 index 0000000..90680e9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_enderchest.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_enderchest +function #player_action:v1/interact_enderchest diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_flower_pot.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_flower_pot.mcfunction new file mode 100644 index 0000000..6a8d961 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_flower_pot.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_flower_pot +function #player_action:v1/interact_flower_pot diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_furnace.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_furnace.mcfunction new file mode 100644 index 0000000..d6bfd2a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_furnace.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_furnace +function #player_action:v1/interact_furnace diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_grindstone.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_grindstone.mcfunction new file mode 100644 index 0000000..856f4d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_grindstone.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_grindstone +function #player_action:v1/interact_grindstone diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_hopper.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_hopper.mcfunction new file mode 100644 index 0000000..03c28d2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_hopper.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_hopper +function #player_action:v1/interact_hopper diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_jukebox.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_jukebox.mcfunction new file mode 100644 index 0000000..a2d1e8f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_jukebox.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_jukebox +function #player_action:v1/interact_jukebox diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_lectern.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_lectern.mcfunction new file mode 100644 index 0000000..a28804a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_lectern.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_lectern +function #player_action:v1/interact_lectern diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_loom.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_loom.mcfunction new file mode 100644 index 0000000..2e5cdde --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_loom.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_loom +function #player_action:v1/interact_loom diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_noteblock.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_noteblock.mcfunction new file mode 100644 index 0000000..cc89692 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_noteblock.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_noteblock +function #player_action:v1/interact_noteblock diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_shulker_box.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_shulker_box.mcfunction new file mode 100644 index 0000000..1de7ba0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_shulker_box.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_shulker_box +function #player_action:v1/interact_shulker_box diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_smithing_table.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_smithing_table.mcfunction new file mode 100644 index 0000000..ff3febe --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_smithing_table.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_smithing_table +function #player_action:v1/interact_smithing_table diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_smoker.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_smoker.mcfunction new file mode 100644 index 0000000..ef4e133 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_smoker.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_smoker +function #player_action:v1/interact_smoker diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_stonecutter.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_stonecutter.mcfunction new file mode 100644 index 0000000..591263e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_stonecutter.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_stonecutter +function #player_action:v1/interact_stonecutter diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_trapped_chest.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_trapped_chest.mcfunction new file mode 100644 index 0000000..ab68d4e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_trapped_chest.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_trapped_chest +function #player_action:v1/interact_trapped_chest diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_vault.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_vault.mcfunction new file mode 100644 index 0000000..fc0a5d3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/interact/interact_vault.mcfunction @@ -0,0 +1,3 @@ + +advancement revoke @s only player_action:v1/interact_vault +function #player_action:v1/interact_vault diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/is_moving.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/is_moving.mcfunction new file mode 100644 index 0000000..c9e8163 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/is_moving.mcfunction @@ -0,0 +1,24 @@ + +# cache position +data modify storage player_action:temp list set from entity @s Pos + +# calc difference +execute store result score #x player_action.data run data get storage player_action:temp list[0] 70 +scoreboard players operation #temp player_action.data = #x player_action.data +scoreboard players operation #temp player_action.data -= @s player_action.x +execute unless score #temp player_action.data matches 0 run tag @s add player_action.moving + +execute store result score #y player_action.data run data get storage player_action:temp list[1] 70 +scoreboard players operation #temp player_action.data = #y player_action.data +scoreboard players operation #temp player_action.data -= @s player_action.y +execute unless score #temp player_action.data matches 0 run tag @s add player_action.moving + +execute store result score #z player_action.data run data get storage player_action:temp list[2] 70 +scoreboard players operation #temp player_action.data = #z player_action.data +scoreboard players operation #temp player_action.data -= @s player_action.z +execute unless score #temp player_action.data matches 0 run tag @s add player_action.moving + +# save score +scoreboard players operation @s player_action.x = #x player_action.data +scoreboard players operation @s player_action.y = #y player_action.data +scoreboard players operation @s player_action.z = #z player_action.data diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/process_data.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/process_data.mcfunction new file mode 100644 index 0000000..fff7578 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/process_data.mcfunction @@ -0,0 +1,28 @@ + +execute if score @s player_action.fly matches 1.. run tag @s add player_action.flying +execute if score @s player_action.walk matches 1.. run tag @s add player_action.walking +execute if score @s player_action.fall matches 1.. run tag @s add player_action.falling +execute if score @s player_action.climb matches 1.. run tag @s add player_action.climbing +execute if score @s player_action.aviate matches 1.. run tag @s add player_action.elyra_flying + +execute if predicate player_action:v1/swimming run tag @s add player_action.swimming +execute if predicate player_action:v1/sneaking run tag @s add player_action.sneaking +execute if predicate player_action:v1/sprinting run tag @s add player_action.sprinting +execute if predicate player_action:v1/riding_pig run tag @s add player_action.riding_pig +execute if predicate player_action:v1/riding_boat run tag @s add player_action.riding_boat +execute if predicate player_action:v1/riding_mule run tag @s add player_action.riding_mule +execute if predicate player_action:v1/riding_llama run tag @s add player_action.riding_llama +execute if predicate player_action:v1/riding_horse run tag @s add player_action.riding_horse +execute if predicate player_action:v1/riding_donkey run tag @s add player_action.riding_donkey +execute if predicate player_action:v1/riding_strider run tag @s add player_action.riding_strider +execute if predicate player_action:v1/riding_minecart run tag @s add player_action.riding_minecart + +execute if score @s player_action.death matches 1.. run function #player_action:v1/died +execute if score @s player_action.enchant matches 1.. run function #player_action:v1/enchanted +execute if score @s player_action.jump matches 1.. run function #player_action:v1/jumped +execute if score @s player_action.use_coas matches 1.. run function #player_action:v1/right_click +execute if score @s player_action.use_wfoas matches 1.. run function #player_action:v1/right_click + +execute if score @s player_action.join matches 1.. run function #player_action:v1/joined +execute unless score @s player_action.join matches 0.. run function #player_action:v1/joined +execute unless score @s player_action.join matches 0.. run scoreboard players add @s player_action.join 0 diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/remove_tags.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/remove_tags.mcfunction new file mode 100644 index 0000000..4cf3788 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/remove_tags.mcfunction @@ -0,0 +1,18 @@ + +tag @s remove player_action.moving +tag @s remove player_action.flying +tag @s remove player_action.walking +tag @s remove player_action.falling +tag @s remove player_action.climbing +tag @s remove player_action.elyra_flying +tag @s remove player_action.swimming +tag @s remove player_action.sneaking +tag @s remove player_action.sprinting +tag @s remove player_action.riding_pig +tag @s remove player_action.riding_boat +tag @s remove player_action.riding_mule +tag @s remove player_action.riding_llama +tag @s remove player_action.riding_horse +tag @s remove player_action.riding_donkey +tag @s remove player_action.riding_strider +tag @s remove player_action.riding_minecart diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/reset_scores.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/reset_scores.mcfunction new file mode 100644 index 0000000..54b543d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/reset_scores.mcfunction @@ -0,0 +1,12 @@ + +scoreboard players set @s player_action.fly 0 +scoreboard players set @s player_action.walk 0 +scoreboard players set @s player_action.fall 0 +scoreboard players set @s player_action.climb 0 +scoreboard players set @s player_action.aviate 0 +scoreboard players set @s player_action.death 0 +scoreboard players set @s player_action.enchant 0 +scoreboard players set @s player_action.jump 0 +scoreboard players set @s player_action.use_coas 0 +scoreboard players set @s player_action.use_wfoas 0 +scoreboard players set @s player_action.join 0 diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/set_uuid.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/set_uuid.mcfunction new file mode 100644 index 0000000..6da870d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/set_uuid.mcfunction @@ -0,0 +1,5 @@ + +execute store result score @s player_action.uuid.0 run data get entity @s UUID[0] +execute store result score @s player_action.uuid.1 run data get entity @s UUID[1] +execute store result score @s player_action.uuid.2 run data get entity @s UUID[2] +execute store result score @s player_action.uuid.3 run data get entity @s UUID[3] diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/tick.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/tick.mcfunction new file mode 100644 index 0000000..5cfab79 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/player/tick.mcfunction @@ -0,0 +1,11 @@ + +function player_action:v1.7/player/remove_tags + +execute unless score @s player_action.uuid.0 matches -2147483648.. run function player_action:v1.7/player/set_uuid +function player_action:v1.7/player/is_moving +function player_action:v1.7/player/process_data +function player_action:v1.7/player/click_detection/tick + +function player_action:v1.7/player/reset_scores + +function #player_action:v1/tick diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/resolve.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/resolve.mcfunction new file mode 100644 index 0000000..a27eb70 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/resolve.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/init diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/tick.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/tick.mcfunction new file mode 100644 index 0000000..1d7d0f3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/tick.mcfunction @@ -0,0 +1,4 @@ + +schedule function player_action:v1.7/tick 1t + +execute as @a at @s run function player_action:v1.7/player/tick diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/attack_click_entity.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/attack_click_entity.mcfunction new file mode 100644 index 0000000..0d05046 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/attack_click_entity.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/click_detection/attack_click_entity diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_anvil.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_anvil.mcfunction new file mode 100644 index 0000000..e76c532 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_anvil.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_anvil diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_barrel.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_barrel.mcfunction new file mode 100644 index 0000000..0efeaf3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_barrel.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_barrel diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_beacon.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_beacon.mcfunction new file mode 100644 index 0000000..b6eda2c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_beacon.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_beacon diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_blast_furnace.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_blast_furnace.mcfunction new file mode 100644 index 0000000..86f7272 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_blast_furnace.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_blast_furnace diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_brewingstand.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_brewingstand.mcfunction new file mode 100644 index 0000000..828715a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_brewingstand.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_brewingstand diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_cake.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_cake.mcfunction new file mode 100644 index 0000000..08271c4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_cake.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_cake diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_campfire.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_campfire.mcfunction new file mode 100644 index 0000000..736fc07 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_campfire.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_dispenser diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_cartography_table.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_cartography_table.mcfunction new file mode 100644 index 0000000..3372cdb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_cartography_table.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_cartography_table diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_cauldron.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_cauldron.mcfunction new file mode 100644 index 0000000..61b3ba2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_cauldron.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_cauldron diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_chest.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_chest.mcfunction new file mode 100644 index 0000000..99b3711 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_chest.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_chest diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_click_entity.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_click_entity.mcfunction new file mode 100644 index 0000000..996067f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_click_entity.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/click_detection/interact_click_entity diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_crafting_table.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_crafting_table.mcfunction new file mode 100644 index 0000000..e48c151 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_crafting_table.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_crafting_table diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_dispenser.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_dispenser.mcfunction new file mode 100644 index 0000000..736fc07 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_dispenser.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_dispenser diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_dropper.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_dropper.mcfunction new file mode 100644 index 0000000..a6c2d54 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_dropper.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_dropper diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_enderchest.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_enderchest.mcfunction new file mode 100644 index 0000000..74be9b2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_enderchest.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_enderchest diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_flower_pot.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_flower_pot.mcfunction new file mode 100644 index 0000000..40c355b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_flower_pot.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_flower_pot diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_furnace.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_furnace.mcfunction new file mode 100644 index 0000000..64ecf20 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_furnace.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_furnace diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_grindstone.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_grindstone.mcfunction new file mode 100644 index 0000000..44bf957 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_grindstone.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_grindstone diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_hopper.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_hopper.mcfunction new file mode 100644 index 0000000..60110a4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_hopper.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_hopper diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_jukebox.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_jukebox.mcfunction new file mode 100644 index 0000000..1cc9b2f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_jukebox.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_jukebox diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_lectern.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_lectern.mcfunction new file mode 100644 index 0000000..49da9a9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_lectern.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_lectern diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_loom.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_loom.mcfunction new file mode 100644 index 0000000..04c629b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_loom.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_loom diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_noteblock.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_noteblock.mcfunction new file mode 100644 index 0000000..1d25060 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_noteblock.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_noteblock diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_shulker_box.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_shulker_box.mcfunction new file mode 100644 index 0000000..fd1df16 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_shulker_box.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_shulker_box diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_smithing_table.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_smithing_table.mcfunction new file mode 100644 index 0000000..8ffacee --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_smithing_table.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_smithing_table diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_smoker.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_smoker.mcfunction new file mode 100644 index 0000000..c1ce594 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_smoker.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_smoker diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_stonecutter.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_stonecutter.mcfunction new file mode 100644 index 0000000..47d9767 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_stonecutter.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_stonecutter diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_trapped_chest.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_trapped_chest.mcfunction new file mode 100644 index 0000000..7bfcd7c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_trapped_chest.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_trapped_chest diff --git a/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_vault.mcfunction b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_vault.mcfunction new file mode 100644 index 0000000..b1cb7ec --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/function/v1.7/versioning/interact_vault.mcfunction @@ -0,0 +1,2 @@ + +execute if predicate player_action:v1.7/is_correct_version run function player_action:v1.7/player/interact/interact_vault diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1.7/is_correct_version.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1.7/is_correct_version.json new file mode 100644 index 0000000..0c6a29b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1.7/is_correct_version.json @@ -0,0 +1,50 @@ +[ + { + "condition": "minecraft:value_check", + "value": 1, + "range": { + "min": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#player_action.major" + }, + "score": "load.status", + "scale": 1 + }, + "max": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#player_action.major" + }, + "score": "load.status", + "scale": 1 + } + } + }, + { + "condition": "minecraft:value_check", + "value": 7, + "range": { + "min": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#player_action.minor" + }, + "score": "load.status", + "scale": 1 + }, + "max": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#player_action.minor" + }, + "score": "load.status", + "scale": 1 + } + } + } +] diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/equals_uuid.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/equals_uuid.json new file mode 100644 index 0000000..7e905d8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/equals_uuid.json @@ -0,0 +1,106 @@ +[ + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": "this", + "score": "player_action.uuid.0" + }, + "range": { + "min": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#uuid.0" + }, + "score": "player_action.data" + }, + "max": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#uuid.0" + }, + "score": "player_action.data" + } + } + }, + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": "this", + "score": "player_action.uuid.1" + }, + "range": { + "min": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#uuid.1" + }, + "score": "player_action.data" + }, + "max": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#uuid.1" + }, + "score": "player_action.data" + } + } + }, + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": "this", + "score": "player_action.uuid.2" + }, + "range": { + "min": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#uuid.2" + }, + "score": "player_action.data" + }, + "max": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#uuid.2" + }, + "score": "player_action.data" + } + } + }, + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": "this", + "score": "player_action.uuid.3" + }, + "range": { + "min": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#uuid.3" + }, + "score": "player_action.data" + }, + "max": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "#uuid.3" + }, + "score": "player_action.data" + } + } + } +] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_boat.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_boat.json new file mode 100644 index 0000000..14fc6ef --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_boat.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:vehicle": { + "minecraft:entity_type": "#minecraft:boat" + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_donkey.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_donkey.json new file mode 100644 index 0000000..06bb3be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_donkey.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:vehicle": { + "minecraft:entity_type": "minecraft:donkey" + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_horse.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_horse.json new file mode 100644 index 0000000..1383bab --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_horse.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:vehicle": { + "minecraft:entity_type": "minecraft:horse" + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_llama.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_llama.json new file mode 100644 index 0000000..37284a9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_llama.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:vehicle": { + "minecraft:entity_type": "minecraft:llama" + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_minecart.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_minecart.json new file mode 100644 index 0000000..b1f17a9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_minecart.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:vehicle": { + "minecraft:entity_type": "minecraft:minecart" + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_mule.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_mule.json new file mode 100644 index 0000000..76aa71d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_mule.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:vehicle": { + "minecraft:entity_type": "minecraft:mule" + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_pig.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_pig.json new file mode 100644 index 0000000..a4824a6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_pig.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:vehicle": { + "minecraft:entity_type": "minecraft:pig" + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_strider.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_strider.json new file mode 100644 index 0000000..edd1624 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/riding_strider.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "minecraft:vehicle": { + "minecraft:entity_type": "minecraft:strider" + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/sneaking.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/sneaking.json new file mode 100644 index 0000000..d5074b8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/sneaking.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_sneaking": true + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/sprinting.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/sprinting.json new file mode 100644 index 0000000..61e5dc1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/sprinting.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_sprinting": true + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/swimming.json b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/swimming.json new file mode 100644 index 0000000..72faa3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/predicate/v1/swimming.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_swimming": true + } + } +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/enumerate.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/enumerate.json new file mode 100644 index 0000000..e73cb94 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/enumerate.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/enumerate" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/load.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/load.json new file mode 100644 index 0000000..84a0c01 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/load.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:enumerate", + "#player_action:resolve" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/resolve.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/resolve.json new file mode 100644 index 0000000..83a5b6c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/resolve.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/resolve" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/died.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/died.json new file mode 100644 index 0000000..45e28ba --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/died.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib:core/internal/systems/hook/on_player_death" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/enchanted.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/enchanted.json new file mode 100644 index 0000000..9d22966 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/enchanted.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib:core/internal/systems/hook/on_enchant" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_anvil.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_anvil.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_anvil.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_barrel.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_barrel.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_barrel.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_beacon.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_beacon.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_beacon.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_blast_furnace.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_blast_furnace.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_blast_furnace.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_block.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_block.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_block.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_brewingstand.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_brewingstand.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_brewingstand.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_cake.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_cake.json new file mode 100644 index 0000000..16847be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_cake.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#player_action:v1/interact_block" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_campfire.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_campfire.json new file mode 100644 index 0000000..16847be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_campfire.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#player_action:v1/interact_block" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_cartopgraphy_table.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_cartopgraphy_table.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_cartopgraphy_table.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_cauldron.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_cauldron.json new file mode 100644 index 0000000..16847be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_cauldron.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#player_action:v1/interact_block" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_chest.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_chest.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_chest.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_crafting_table.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_crafting_table.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_crafting_table.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_dispenser.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_dispenser.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_dispenser.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_dropper.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_dropper.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_dropper.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_enderchest.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_enderchest.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_enderchest.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_flower_pot.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_flower_pot.json new file mode 100644 index 0000000..16847be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_flower_pot.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#player_action:v1/interact_block" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_furnace.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_furnace.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_furnace.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_grindstone.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_grindstone.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_grindstone.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_hopper.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_hopper.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_hopper.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_jukebox.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_jukebox.json new file mode 100644 index 0000000..16847be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_jukebox.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#player_action:v1/interact_block" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_lectern.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_lectern.json new file mode 100644 index 0000000..16847be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_lectern.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#player_action:v1/interact_block" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_loom.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_loom.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_loom.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_noteblock.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_noteblock.json new file mode 100644 index 0000000..16847be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_noteblock.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#player_action:v1/interact_block" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_shulker_box.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_shulker_box.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_shulker_box.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_smithing_table.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_smithing_table.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_smithing_table.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_smoker.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_smoker.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_smoker.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_stonecutter.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_stonecutter.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_stonecutter.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_trapped_chest.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_trapped_chest.json new file mode 100644 index 0000000..6e7f9bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_trapped_chest.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#player_action:v1/interact_block", + "#player_action:v1/open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_vault.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_vault.json new file mode 100644 index 0000000..16847be --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/interact_vault.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#player_action:v1/interact_block" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/attack_click_entity.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/attack_click_entity.json new file mode 100644 index 0000000..62e32cc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/attack_click_entity.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/attack_click_entity" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_anvil.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_anvil.json new file mode 100644 index 0000000..f0236d8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_anvil.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_anvil" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_barrel.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_barrel.json new file mode 100644 index 0000000..9a3d98a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_barrel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_barrel" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_beacon.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_beacon.json new file mode 100644 index 0000000..b62649b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_beacon.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_beacon" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_blast_furnace.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_blast_furnace.json new file mode 100644 index 0000000..06aaeeb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_blast_furnace.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_blast_furnace" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_brewingstand.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_brewingstand.json new file mode 100644 index 0000000..c4a7b25 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_brewingstand.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_brewingstand" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_cake.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_cake.json new file mode 100644 index 0000000..8009892 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_cake.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_cake" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_campfire.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_campfire.json new file mode 100644 index 0000000..84454d4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_campfire.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_campfire" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_cartopgraphy_table.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_cartopgraphy_table.json new file mode 100644 index 0000000..6a76a63 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_cartopgraphy_table.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_cartography_table" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_cauldron.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_cauldron.json new file mode 100644 index 0000000..5b5eda3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_cauldron.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_cauldron" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_chest.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_chest.json new file mode 100644 index 0000000..695cbd6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_chest.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_chest" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_click_entity.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_click_entity.json new file mode 100644 index 0000000..811b897 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_click_entity.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_click_entity" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_crafting_table.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_crafting_table.json new file mode 100644 index 0000000..79cfb92 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_crafting_table.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_crafting_table" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_dispenser.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_dispenser.json new file mode 100644 index 0000000..36d23d6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_dispenser.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_dispenser" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_dropper.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_dropper.json new file mode 100644 index 0000000..3ac5de7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_dropper.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_dropper" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_enderchest.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_enderchest.json new file mode 100644 index 0000000..9ec7244 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_enderchest.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_enderchest" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_flower_pot.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_flower_pot.json new file mode 100644 index 0000000..dd9aebe --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_flower_pot.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_flower_pot" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_furnace.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_furnace.json new file mode 100644 index 0000000..e291f92 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_furnace.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_furnace" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_grindstone.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_grindstone.json new file mode 100644 index 0000000..8cd60c3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_grindstone.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_grindstone" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_hopper.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_hopper.json new file mode 100644 index 0000000..fde3644 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_hopper.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_hopper" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_jukebox.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_jukebox.json new file mode 100644 index 0000000..54093fa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_jukebox.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_jukebox" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_lectern.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_lectern.json new file mode 100644 index 0000000..d08c5bf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_lectern.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_lectern" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_loom.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_loom.json new file mode 100644 index 0000000..50e06bc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_loom.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_loom" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_noteblock.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_noteblock.json new file mode 100644 index 0000000..a16b9f3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_noteblock.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_noteblock" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_shulker_box.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_shulker_box.json new file mode 100644 index 0000000..4441d7a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_shulker_box.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_shulker_box" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_smithing_table.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_smithing_table.json new file mode 100644 index 0000000..3ad2fc4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_smithing_table.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_smithing_table" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_smoker.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_smoker.json new file mode 100644 index 0000000..b39a9a2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_smoker.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_smoker" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_stonecutter.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_stonecutter.json new file mode 100644 index 0000000..b6de84d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_stonecutter.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_stonecutter" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_trapped_chest.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_trapped_chest.json new file mode 100644 index 0000000..0f916bf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_trapped_chest.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_trapped_chest" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_vault.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_vault.json new file mode 100644 index 0000000..f0ab0c3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/internal/interact_vault.json @@ -0,0 +1,5 @@ +{ + "values": [ + "player_action:v1.7/versioning/interact_vault" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/joined.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/joined.json new file mode 100644 index 0000000..cc3fca8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/joined.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib:core/internal/systems/hook/on_player_join" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/jumped.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/jumped.json new file mode 100644 index 0000000..f9119b2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/jumped.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib:core/internal/systems/hook/on_jump" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/left_click.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/left_click.json new file mode 100644 index 0000000..fe4497f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/left_click.json @@ -0,0 +1,3 @@ +{ + "values": ["datalib:core/internal/systems/hook/on_lc"] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/open_gui.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/open_gui.json new file mode 100644 index 0000000..a398f6a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/open_gui.json @@ -0,0 +1,5 @@ +{ + "values": [ + "datalib:core/internal/systems/hook/on_open_gui" + ] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/right_click.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/right_click.json new file mode 100644 index 0000000..30841a2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/right_click.json @@ -0,0 +1,3 @@ +{ + "values": ["datalib:core/internal/systems/hook/on_rc"] +} diff --git a/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/tick.json b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/tick.json new file mode 100644 index 0000000..86dde3d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/player_action/tags/function/v1/tick.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/debug/toggle_load_message.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/debug/toggle_load_message.mcfunction new file mode 100644 index 0000000..adb3b83 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/debug/toggle_load_message.mcfunction @@ -0,0 +1,7 @@ +# Toggle the load message +scoreboard players add #StringLib.ShowLoadMessage StringLib 1 +execute unless score #StringLib.ShowLoadMessage StringLib matches 1 run scoreboard players set #StringLib.ShowLoadMessage StringLib 0 + +# Tellraw +execute if score #StringLib.ShowLoadMessage StringLib matches 0 run tellraw @s ["﹌ ",{"text":"StringLib >> ","color":"#99EAD6"},"Disabled the load message"] +execute if score #StringLib.ShowLoadMessage StringLib matches 1 run tellraw @s ["﹌ ",{"text":"StringLib >> ","color":"#99EAD6"},"Enabled the load message"] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/uninstall.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/uninstall.mcfunction new file mode 100644 index 0000000..3bab7b6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/uninstall.mcfunction @@ -0,0 +1,49 @@ +# Check if it's installed +scoreboard objectives add StringLib.Uninstall dummy +execute if score #StringLib.Init StringLib matches 1 run scoreboard players set #StringLib.Init StringLib.Uninstall 1 +execute unless score #StringLib.Init StringLib.Uninstall matches 1 run tellraw @a ["﹌ ",{"text":"StringLib >> ","color":"#99EAD6"},{"text":"⚠ Could not remove StringLib.\nIs it installed?","color":"red"}] +execute unless score #StringLib.Init StringLib.Uninstall matches 1 run return run scoreboard objectives remove StringLib.Uninstall +scoreboard objectives remove StringLib.Uninstall + +# Tellraw +tellraw @s ["﹌ ",{"text":"StringLib >> ","color":"#99EAD6"},"Uninstalled StringLib (v0.2.0)"] + +# Remove scoreboards & data storages +scoreboard objectives remove StringLib + +scoreboard players reset #StringLib.Init +scoreboard players reset #StringLib.ShowLoadMessage +scoreboard players reset #StringLib.c-1 +scoreboard players reset #StringLib.c100 +scoreboard players reset #StringLib.StringsTotal +scoreboard players reset #StringLib.CharsLeft +scoreboard players reset #StringLib.CharsTotal +scoreboard players reset #StringLib.ConcatsLeft +scoreboard players reset #StringLib.SuccessCheck +scoreboard players reset #StringLib.FindLength +scoreboard players reset #StringLib.FindAmount +scoreboard players reset #StringLib.KeepEmpty +scoreboard players reset #StringLib.SeparatorLength +scoreboard players reset #StringLib.Max +scoreboard players reset #StringLib.SplitsLeft +scoreboard players reset #StringLib.Index +scoreboard players reset #StringLib.FoundNothing +scoreboard players reset #StringLib.ReturnValue +scoreboard players reset #StringLib.CheckString.CharsLeft +scoreboard players reset #StringLib.CheckString.IsFindLength + +data remove storage stringlib:zprivate data +data remove storage stringlib:input concat +data remove storage stringlib:input find +data remove storage stringlib:input replace +data remove storage stringlib:input insert +data remove storage stringlib:input split +data remove storage stringlib:output concat +data remove storage stringlib:output to_lowercase +data remove storage stringlib:output to_uppercase +data remove storage stringlib:output to_number +data remove storage stringlib:output to_string +data remove storage stringlib:output find +data remove storage stringlib:output replace +data remove storage stringlib:output insert +data remove storage stringlib:output split \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/concat.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/concat.mcfunction new file mode 100644 index 0000000..2960daf --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/concat.mcfunction @@ -0,0 +1,25 @@ +############################################################################ +## HOW TO USE ## +############################################################################ +## 1. Set the 'stringlib:input concat' data storage to a list of strings ## +## 2. Run this function ## +## ## +## Output: A single combined string ## +## Example: ["hello","world"] => "helloworld" ## +## ## +## Return value: 1 if concat was successful, fail if it wasn't ## +## ## +## The output is found in the 'stringlib:output concat' data storage ## +############################################################################ + +# Setup (Get how many times it needs to concatenate & prepare the starting string) +execute store result score #StringLib.StringsTotal StringLib if data storage stringlib:input concat[] +execute if score #StringLib.StringsTotal StringLib matches 3.. run return run function stringlib:zprivate/concat/main +execute unless score #StringLib.StringsTotal StringLib matches 2 run return fail + +# Only 2 strings: Combine +data modify storage stringlib:temp data.S1 set from storage stringlib:input concat[1] +data modify storage stringlib:temp data.S2 set from storage stringlib:input concat[0] +function stringlib:zprivate/concat/combine_small with storage stringlib:temp data +data remove storage stringlib:temp data +return 1 \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/find.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/find.mcfunction new file mode 100644 index 0000000..2f6ece4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/find.mcfunction @@ -0,0 +1,62 @@ +########################################################################################################## +## HOW TO USE ## +########################################################################################################## +## 1. Set the following data in the 'stringlib:input find' data storage: ## +## - String: Original string ## +## - Find: String you want to search for ## +## - n: How many instances you are looking for ## +## - Unset or 0: All ## +## - Positive: First n ## +## - Negative: Last -n ## +## 2. Run this function ## +## ## +## Output: List of all start indices for every instances of the string ([-1] if nothing is found) ## +## Example: ## +## - String: "Hello World!" ## +## - Find: "l" ## +## - n: 1 ## +## => Output: [2] ## +## ## +## - String: "Hello World!" ## +## - Find: "l" ## +## - n: Unset ## +## => Output: [2,3,9] ## +## ## +## - String: "Hello World!" ## +## - Find: "l" ## +## - n: -2 ## +## => Output: [9,3] ## +## ## +## Return value: Number of instances found, or fail ## +## ## +## The output is found in the 'stringlib:output find' data storage ## +########################################################################################################## + +# Search for 'Find' inside 'String' (FindAmount is altered in the functions, so the order is very important) +data modify storage stringlib:temp data.String set from storage stringlib:input find.String +execute store result score #StringLib.FindLength StringLib run data get storage stringlib:input find.Find +execute store result score #StringLib.CharsTotal StringLib run data get storage stringlib:temp data.String +scoreboard players operation #StringLib.CharsTotal StringLib -= #StringLib.FindLength StringLib +execute store result score #StringLib.FindAmount StringLib run data get storage stringlib:input find.n + +execute unless score #StringLib.FindAmount StringLib matches ..-1 run scoreboard players set #StringLib.Index StringLib 1 +execute if score #StringLib.FindAmount StringLib matches ..-1 run scoreboard players operation #StringLib.Index StringLib = #StringLib.CharsTotal StringLib + +data modify storage stringlib:output find set value [] + +execute if score #StringLib.FindAmount StringLib matches -1 run data modify storage stringlib:output find append value -1 +execute if score #StringLib.FindAmount StringLib matches -1 run function stringlib:zprivate/find/reversed/check_word_start_loop +execute if score #StringLib.FindAmount StringLib matches ..-2 run function stringlib:zprivate/find/reversed/main + +execute if score #StringLib.FindAmount StringLib matches 1 run data modify storage stringlib:output find append value -1 +execute if score #StringLib.FindAmount StringLib matches 1 run function stringlib:zprivate/find/check_word_start_loop +execute if score #StringLib.FindAmount StringLib matches 0.. unless score #StringLib.FindAmount StringLib matches 1 run function stringlib:zprivate/find/main + +scoreboard players set #StringLib.FoundNothing StringLib 0 + +# Reset +data remove storage stringlib:temp data + +# Return Values +execute if data storage stringlib:output {find:[-1]} run return fail +return run execute if data storage stringlib:output find[] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/insert.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/insert.mcfunction new file mode 100644 index 0000000..82c8a7d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/insert.mcfunction @@ -0,0 +1,25 @@ +########################################################################################################## +## HOW TO USE ## +########################################################################################################## +## 1. Set the following data in the 'stringlib:input insert' data storage: ## +## - String: Original string ## +## - Insertion: String you want to insert ## +## - Index: Position for the Insertion ## +## 2. Run this function with the 'stringlib:input insert' data storage ## +## ## +## Output: A single combined string ## +## Example: ## +## - String: "Hello!" ## +## - Insertion: " World" ## +## - Index: 5 ## +## => Output: "Hello World!" ## +## ## +## The output is found in the 'stringlib:output insert' data storage ## +########################################################################################################## + +# Insert +$data modify storage stringlib:temp data.S1 set string storage stringlib:input insert.String 0 $(Index) +$data modify storage stringlib:temp data.S2 set string storage stringlib:input insert.String $(Index) +data modify storage stringlib:temp data.I set from storage stringlib:input insert.Insertion +function stringlib:zprivate/insert/main with storage stringlib:temp data +data remove storage stringlib:temp data \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/replace.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/replace.mcfunction new file mode 100644 index 0000000..239783e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/replace.mcfunction @@ -0,0 +1,86 @@ +########################################################################################################## +## HOW TO USE ## +########################################################################################################## +## 1. Set the following data in the 'stringlib:input replace' data storage: ## +## - String: Original string ## +## - Find: String you want to replace ## +## - Replace: What you replace it with ## +## - n: How many instances you want to replace ## +## - Unset or 0: All ## +## - Positive: First n ## +## - Negative: Last -n ## +## 2. Run this function ## +## ## +## Output: String with all the 'Find' instances replaced by 'Replace' ## +## Example: ## +## - String: "Hello World!" ## +## - Find: "World" ## +## - Replace: "Everyone" ## +## - n: 1 ## +## => Output: "Hello Everyone!" ## +## ## +## - String: "15Hello 15World!" ## +## - Find: "15" ## +## - Replace: "" ## +## - n: Unset ## +## => Output: "Hello World!" ## +## ## +## - String: "Hello World!" ## +## - Find: "l" ## +## - Replace: "" ## +## - n: -1 ## +## => Output: "Hello Word!" ## +## ## +## Return value: Number of replacements made, or fail ## +## ## +## The output is found in the 'stringlib:output replace' data storage ## +########################################################################################################## + +# Setup +scoreboard players set #StringLib.ReturnValue StringLib 0 + +data modify storage stringlib:temp data.String set from storage stringlib:input replace.String +execute store result score #StringLib.FindLength StringLib run data get storage stringlib:input replace.Find +execute store result score #StringLib.CharsTotal StringLib run data get storage stringlib:temp data.String +scoreboard players operation #StringLib.CharsTotal StringLib -= #StringLib.FindLength StringLib +execute store result score #StringLib.FindAmount StringLib run data get storage stringlib:input replace.n +execute if score #StringLib.FindAmount StringLib matches 0 run scoreboard players set #StringLib.FindAmount StringLib 2147483647 + +execute unless score #StringLib.FindAmount StringLib matches ..-1 run scoreboard players set #StringLib.Index StringLib 1 +execute if score #StringLib.FindAmount StringLib matches ..-1 run scoreboard players operation #StringLib.Index StringLib = #StringLib.CharsTotal StringLib + +data modify storage stringlib:temp data2.PrevInput set from storage stringlib:input concat +data modify storage stringlib:temp data2.PrevOutput set from storage stringlib:output concat +data modify storage stringlib:input concat set value [] + +# Run 'Find' and add every character to 'stringlib:input concat' +execute if score #StringLib.FindAmount StringLib matches 1 run function stringlib:zprivate/replace/check_word_start_loop +execute if score #StringLib.FindAmount StringLib matches 2.. run function stringlib:zprivate/replace/main + +execute if score #StringLib.FindAmount StringLib matches -1 run function stringlib:zprivate/replace/reversed/check_word_start_loop +execute if score #StringLib.FindAmount StringLib matches ..-2 run function stringlib:zprivate/replace/reversed/main + +scoreboard players set #StringLib.FoundNothing StringLib 0 + +# Combine the characters again +execute if score #StringLib.FindAmount StringLib matches 0.. run data modify storage stringlib:input concat append string storage stringlib:temp data.CheckString.String 1 +execute if score #StringLib.FindAmount StringLib matches ..-1 run data modify storage stringlib:input concat prepend string storage stringlib:temp data.CheckString.String 0 -1 + +execute store success score #StringLib.SuccessCheck StringLib if data storage stringlib:input concat[1] + +execute if score #StringLib.SuccessCheck StringLib matches 1 run function stringlib:util/concat +execute if score #StringLib.SuccessCheck StringLib matches 1 run data modify storage stringlib:output replace set from storage stringlib:output concat +execute if score #StringLib.SuccessCheck StringLib matches 0 run data modify storage stringlib:output replace set from storage stringlib:input replace.String + +data modify storage stringlib:input concat set from storage stringlib:temp data2.PrevInput +data modify storage stringlib:output concat set from storage stringlib:temp data2.PrevOutput +execute unless data storage stringlib:temp data2.PrevInput run data remove storage stringlib:input concat +execute unless data storage stringlib:temp data2.PrevOutput run data remove storage stringlib:output concat + +# Reset +data remove storage stringlib:temp data +data remove storage stringlib:temp data2 + +# Return Values +execute if score #StringLib.SuccessCheck StringLib matches 1 run return run scoreboard players get #StringLib.ReturnValue StringLib +return fail \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/split.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/split.mcfunction new file mode 100644 index 0000000..d5fd1e8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/split.mcfunction @@ -0,0 +1,109 @@ +################################################################################## +## HOW TO USE ## +################################################################################## +## 1. Set the following data in the 'stringlib:input split' data storage: ## +## - String: Original string ## +## - Separator: String that splits the original into multiple ## +## - Default: " " ## +## - "": Split each character ## +## - n: Up until which instance of the separator it should split ## +## - Unset or 0: All ## +## - Positive: First n ## +## - Negative: Last -n ## +## - KeepEmpty: Boolean for whether to keep empty Strings in the output list ## +## - Unset or 0b: Remove ## +## - 1b: Keep ## +## ## +## 2. Run this function ## +## ## +## Output: List of Strings, separated by the Separator ## +## Example: ## +## - String: "Hello World!" ## +## - Separator: " " ## +## - n: 1 ## +## - KeepEmpty: Unset ## +## => Output: ["Hello", "World!"] ## +## ## +## - String: "Test! HelloTestWorld!" ## +## - Separator: "Test" ## +## - n: -1 ## +## - KeepEmpty: Unset ## +## => Output: ["Test! Hello", "World!"] ## +## ## +## - String: " Hello World! " ## +## - Separator: " " ## +## - n: Unset ## +## - KeepEmpty: 1b ## +## => Output: ["", "Hello", "", "", "", "World!", ""] ## +## ## +## ## +## Return value: Number of elements in the output list, or fail ## +## ## +## The output is found in the 'stringlib:output split' data storage ## +################################################################################## +# Potential optimization: Detect if the current instance of the seperator came DIRECTLY after the previous one. If yes, and if KeepEmpty is 0b, ignore it and don't run the macro +# => It's probably best to set up a recursive loop that continues the loop from main, but skips everything for as long as the separators are after each other. So it checks if the *next* one is directly after the current one +# ALSO OPTIMIZE THE "SPLIT EVERY CHARACTER". CAN BE HEAVILY OPTIMIZED TO PREVENT LOOPING + +# Setup +data modify storage stringlib:output split set value [] +execute unless data storage stringlib:input split.Separator run data modify storage stringlib:temp data.Separator set value " " +data modify storage stringlib:temp data.Separator set from storage stringlib:input split.Separator + + # Reset temporary storage & return fail if input string is empty +execute store result score #StringLib.SeparatorLength StringLib run data get storage stringlib:temp data.Separator +execute store result score #StringLib.CharsTotal StringLib run data get storage stringlib:input split.String +execute if score #StringLib.CharsTotal StringLib matches 0 run data modify storage stringlib:output split set value [""] +execute if score #StringLib.CharsTotal StringLib matches 0 run data remove storage stringlib:temp data +execute if score #StringLib.CharsTotal StringLib matches 0 run return fail + +# If separator is empty string, split each character +execute if score #StringLib.SeparatorLength StringLib matches 0 run return run function stringlib:zprivate/split/split_chars/setup + +# Find all instances of the separator +data modify storage stringlib:temp data2.PrevInput set from storage stringlib:input find +data modify storage stringlib:temp data2.PrevOutput set from storage stringlib:output find + +data modify storage stringlib:input find.String set from storage stringlib:input split.String +data modify storage stringlib:input find.Find set from storage stringlib:temp data.Separator +data remove storage stringlib:input find.n +data modify storage stringlib:input find.n set from storage stringlib:input split.n +function stringlib:util/find + +# Setup +execute store result score #StringLib.KeepEmpty StringLib run data get storage stringlib:input split.KeepEmpty + + # Reset temporary storage & return fail if no separator was found +execute if data storage stringlib:output {find:[-1]} run return run function stringlib:zprivate/split/fail + +# Split +execute store result score #StringLib.FindAmount StringLib run data get storage stringlib:input split.n + + # Split the part in front of every instance of the separator (Do the first iteration here) +execute store result score #StringLib.SplitsLeft StringLib if data storage stringlib:output find[] + +data modify storage stringlib:temp data.Min set value 0 +execute if score #StringLib.FindLength StringLib matches 0.. store result storage stringlib:temp data.Max int 1 store result score #StringLib.Max StringLib run data get storage stringlib:output find[0] +execute if score #StringLib.FindLength StringLib matches 0.. run function stringlib:zprivate/split/main with storage stringlib:temp data +execute if score #StringLib.FindLength StringLib matches ..-1 store result storage stringlib:temp data.Max int 1 store result score #StringLib.Max StringLib run data get storage stringlib:output find[-1] +execute if score #StringLib.FindLength StringLib matches ..-1 run function stringlib:zprivate/split/reversed/main with storage stringlib:temp data + + # Append a "" if KeepEmpty is 1b and there's a trailing separator +execute store result storage stringlib:temp data.Min int 1 run scoreboard players operation #StringLib.Max StringLib += #StringLib.SeparatorLength StringLib +execute if score #StringLib.KeepEmpty StringLib matches 1 if score #StringLib.Max StringLib = #StringLib.CharsTotal StringLib run data modify storage stringlib:output split append value "" + + # Append the part after the last separator +execute unless score #StringLib.Max StringLib = #StringLib.CharsTotal StringLib run function stringlib:zprivate/split/last_segment with storage stringlib:temp data + +function stringlib:zprivate/split/setup with storage stringlib:temp data + +# Reset +data modify storage stringlib:input find set from storage stringlib:temp data2.PrevInput +data modify storage stringlib:output find set from storage stringlib:temp data2.PrevOutput +execute unless data storage stringlib:temp data2.PrevInput run data remove storage stringlib:input find +execute unless data storage stringlib:temp data2.PrevOutput run data remove storage stringlib:output find +data remove storage stringlib:temp data2 +data remove storage stringlib:temp data + +# Return Values +return run execute if data storage stringlib:output split[] \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_lowercase/fast.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_lowercase/fast.mcfunction new file mode 100644 index 0000000..08b61f7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_lowercase/fast.mcfunction @@ -0,0 +1,35 @@ +########################################################################################################## +## HOW TO USE ## +########################################################################################################## +## 1. Run this function with the 'String' macro variable set to what you want to convert to lowercase ## +## Note: This function only covers the letters A-Z, but is noticeably faster in return ## +## ## +## Output: Lowercase version of your input ## +## Example: "ABC" => "abc" ## +## ## +## The output is found in the 'stringlib:output to_lowercase' data storage ## +########################################################################################################## + +# Setup +$data modify storage stringlib:temp data.Input set value "$(String)" +execute store result score #StringLib.CharsLeft StringLib run data get storage stringlib:temp data.Input +data modify storage stringlib:temp data.Char set string storage stringlib:temp data.Input 0 1 + +# Capitalize each character +function stringlib:zprivate/to_lowercase/main_fast with storage stringlib:temp data + +# Combine the characters again +data modify storage stringlib:temp data2.PrevInput set from storage stringlib:input concat +data modify storage stringlib:temp data2.PrevOutput set from storage stringlib:output concat + +data modify storage stringlib:input concat set from storage stringlib:temp data.CharList +function stringlib:util/concat +data modify storage stringlib:output to_lowercase set from storage stringlib:output concat + +data modify storage stringlib:input concat set from storage stringlib:temp data2.PrevInput +data modify storage stringlib:output concat set from storage stringlib:temp data2.PrevOutput +execute unless data storage stringlib:temp data2.PrevInput run data remove storage stringlib:input concat +execute unless data storage stringlib:temp data2.PrevOutput run data remove storage stringlib:output concat + +# Reset +data remove storage stringlib:temp data2 diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_lowercase/full.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_lowercase/full.mcfunction new file mode 100644 index 0000000..dd183a8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_lowercase/full.mcfunction @@ -0,0 +1,35 @@ +########################################################################################################## +## HOW TO USE ## +########################################################################################################## +## 1. Run this function with the 'String' macro variable set to what you want to convert to lowercase ## +## Note: This function will cover the entire unicode range of letters, but is also noticeably slower ## +## ## +## Output: Lowercase version of your input ## +## Example: "ABC" => "abc" ## +## ## +## The output is found in the 'stringlib:output to_lowercase' data storage ## +########################################################################################################## + +# Setup +$data modify storage stringlib:temp data.Input set value "$(String)" +execute store result score #StringLib.CharsLeft StringLib run data get storage stringlib:temp data.Input +data modify storage stringlib:temp data.Char set string storage stringlib:temp data.Input 0 1 + +# Capitalize each character +function stringlib:zprivate/to_lowercase/main_full with storage stringlib:temp data + +# Combine the characters again +data modify storage stringlib:temp data2.PrevInput set from storage stringlib:input concat +data modify storage stringlib:temp data2.PrevOutput set from storage stringlib:output concat + +data modify storage stringlib:input concat set from storage stringlib:temp data.CharList +function stringlib:util/concat +data modify storage stringlib:output to_lowercase set from storage stringlib:output concat + +data modify storage stringlib:input concat set from storage stringlib:temp data2.PrevInput +data modify storage stringlib:output concat set from storage stringlib:temp data2.PrevOutput +execute unless data storage stringlib:temp data2.PrevInput run data remove storage stringlib:input concat +execute unless data storage stringlib:temp data2.PrevOutput run data remove storage stringlib:output concat + +# Reset +data remove storage stringlib:temp data2 diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_number.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_number.mcfunction new file mode 100644 index 0000000..56a5550 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_number.mcfunction @@ -0,0 +1,12 @@ +########################################################################################################## +## HOW TO USE ## +########################################################################################################## +## 1. Run this function with the 'Input' macro variable set to what you want to convert to a number ## +## ## +## Output: Numeric version of your input ## +## Example: "500.25" => 500.25 ## +## ## +## The output is found in the 'stringlib:output to_number' data storage ## +########################################################################################################## + +$data modify storage stringlib:output to_number set value $(Input) \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_string.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_string.mcfunction new file mode 100644 index 0000000..6bf8d34 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_string.mcfunction @@ -0,0 +1,14 @@ +########################################################################################################## +## HOW TO USE ## +########################################################################################################## +## 1. Run this function with the 'Input' macro variable set to what you want to convert to a string ## +## ## +## Output: Stringified version of your input ## +## Example: 123 => "123" ## +## ## +## Note: In most cases, using 'data modify storage ... set string storage ...' works and is preferable ## +## ## +## The output is found in the 'stringlib:output to_string' data storage ## +########################################################################################################## + +$data modify storage stringlib:output to_string set value "$(Input)" \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_uppercase/fast.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_uppercase/fast.mcfunction new file mode 100644 index 0000000..3e4e93f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_uppercase/fast.mcfunction @@ -0,0 +1,35 @@ +########################################################################################################## +## HOW TO USE ## +########################################################################################################## +## 1. Run this function with the 'String' macro variable set to what you want to convert to uppercase ## +## Note: This function only covers the letters A-Z, but is noticeably faster in return ## +## ## +## Output: Uppercase version of your input ## +## Example: "abc" => "ABC" ## +## ## +## The output is found in the 'stringlib:output to_uppercase' data storage ## +########################################################################################################## + +# Setup +$data modify storage stringlib:temp data.Input set value "$(String)" +execute store result score #StringLib.CharsLeft StringLib run data get storage stringlib:temp data.Input +data modify storage stringlib:temp data.Char set string storage stringlib:temp data.Input 0 1 + +# Capitalize each character +function stringlib:zprivate/to_uppercase/main_fast with storage stringlib:temp data + +# Combine the characters again +data modify storage stringlib:temp data2.PrevInput set from storage stringlib:input concat +data modify storage stringlib:temp data2.PrevOutput set from storage stringlib:output concat + +data modify storage stringlib:input concat set from storage stringlib:temp data.CharList +function stringlib:util/concat +data modify storage stringlib:output to_uppercase set from storage stringlib:output concat + +data modify storage stringlib:input concat set from storage stringlib:temp data2.PrevInput +data modify storage stringlib:output concat set from storage stringlib:temp data2.PrevOutput +execute unless data storage stringlib:temp data2.PrevInput run data remove storage stringlib:input concat +execute unless data storage stringlib:temp data2.PrevOutput run data remove storage stringlib:output concat + +# Reset +data remove storage stringlib:temp data2 diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_uppercase/full.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_uppercase/full.mcfunction new file mode 100644 index 0000000..7cbd486 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/util/to_uppercase/full.mcfunction @@ -0,0 +1,35 @@ +########################################################################################################## +## HOW TO USE ## +########################################################################################################## +## 1. Run this function with the 'String' macro variable set to what you want to convert to uppercase ## +## Note: This function will cover the entire unicode range of letters, but is also noticeably slower ## +## ## +## Output: Uppercase version of your input ## +## Example: "abc" => "ABC" ## +## ## +## The output is found in the 'stringlib:output to_uppercase' data storage ## +########################################################################################################## + +# Setup +$data modify storage stringlib:temp data.Input set value "$(String)" +execute store result score #StringLib.CharsLeft StringLib run data get storage stringlib:temp data.Input +data modify storage stringlib:temp data.Char set string storage stringlib:temp data.Input 0 1 + +# Capitalize each character +function stringlib:zprivate/to_uppercase/main_full with storage stringlib:temp data + +# Combine the characters again +data modify storage stringlib:temp data2.PrevInput set from storage stringlib:input concat +data modify storage stringlib:temp data2.PrevOutput set from storage stringlib:output concat + +data modify storage stringlib:input concat set from storage stringlib:temp data.CharList +function stringlib:util/concat +data modify storage stringlib:output to_uppercase set from storage stringlib:output concat + +data modify storage stringlib:input concat set from storage stringlib:temp data2.PrevInput +data modify storage stringlib:output concat set from storage stringlib:temp data2.PrevOutput +execute unless data storage stringlib:temp data2.PrevInput run data remove storage stringlib:input concat +execute unless data storage stringlib:temp data2.PrevOutput run data remove storage stringlib:output concat + +# Reset +data remove storage stringlib:temp data2 diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/combine_large.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/combine_large.mcfunction new file mode 100644 index 0000000..6421a52 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/combine_large.mcfunction @@ -0,0 +1,9 @@ +# Combine up to 100 strings at once (Size=100 adds 100 to the current result, so it's 101 afterwards) +$function stringlib:zprivate/concat/s/$(Size) + +# Next loop +execute if score #StringLib.ConcatsLeft StringLib matches 1 run return 0 +scoreboard players remove #StringLib.ConcatsLeft StringLib 1 +execute if score #StringLib.ConcatsLeft StringLib matches 1 store result storage stringlib:temp data.Size byte 1 run scoreboard players get #StringLib.StringsTotal StringLib +execute if score #StringLib.ConcatsLeft StringLib matches 2.. run data modify storage stringlib:temp data.Size set value 100b +function stringlib:zprivate/concat/combine_large with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/combine_small.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/combine_small.mcfunction new file mode 100644 index 0000000..f0ed0b4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/combine_small.mcfunction @@ -0,0 +1,2 @@ +# Add the two strings together +$data modify storage stringlib:output concat set value "$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/main.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/main.mcfunction new file mode 100644 index 0000000..2b269e8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/main.mcfunction @@ -0,0 +1,21 @@ +# Setup (Get how many times it needs to concatenate & prepare the starting string) +scoreboard players remove #StringLib.StringsTotal StringLib 1 +scoreboard players operation #StringLib.ConcatsLeft StringLib = #StringLib.StringsTotal StringLib +scoreboard players operation #StringLib.ConcatsLeft StringLib /= #StringLib.c100 StringLib +scoreboard players operation #StringLib.StringsTotal StringLib %= #StringLib.c100 StringLib +execute unless score #StringLib.StringsTotal StringLib matches 0 run scoreboard players add #StringLib.ConcatsLeft StringLib 1 +execute if score #StringLib.StringsTotal StringLib matches 0 run scoreboard players set #StringLib.StringsTotal StringLib 100 + +execute if score #StringLib.ConcatsLeft StringLib matches 1 store result storage stringlib:temp data.Size byte 1 run scoreboard players get #StringLib.StringsTotal StringLib +execute if score #StringLib.ConcatsLeft StringLib matches 2.. run data modify storage stringlib:temp data.Size set value 100b + +data modify storage stringlib:temp data.StringList set from storage stringlib:input concat +data modify storage stringlib:temp data.S1 set from storage stringlib:temp data.StringList[-1] + +# Concatenate the strings +function stringlib:zprivate/concat/combine_large with storage stringlib:temp data +data modify storage stringlib:output concat set from storage stringlib:temp data.S1 + +# Reset +data remove storage stringlib:temp data +return 1 diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/1.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/1.mcfunction new file mode 100644 index 0000000..d764271 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/1.mcfunction @@ -0,0 +1,3 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/1c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/10.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/10.mcfunction new file mode 100644 index 0000000..e6e235a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/10.mcfunction @@ -0,0 +1,21 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/10c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/100.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/100.mcfunction new file mode 100644 index 0000000..17978aa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/100.mcfunction @@ -0,0 +1,201 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S93 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S94 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S95 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S96 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S97 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S98 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S99 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S100 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S101 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/100c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/100c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/100c.mcfunction new file mode 100644 index 0000000..295589e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/100c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S101)$(S100)$(S99)$(S98)$(S97)$(S96)$(S95)$(S94)$(S93)$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/10c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/10c.mcfunction new file mode 100644 index 0000000..3b2b5d8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/10c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/11.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/11.mcfunction new file mode 100644 index 0000000..bfba823 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/11.mcfunction @@ -0,0 +1,23 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/11c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/11c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/11c.mcfunction new file mode 100644 index 0000000..89015f0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/11c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/12.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/12.mcfunction new file mode 100644 index 0000000..a8e18d7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/12.mcfunction @@ -0,0 +1,25 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/12c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/12c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/12c.mcfunction new file mode 100644 index 0000000..0fe28c5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/12c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/13.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/13.mcfunction new file mode 100644 index 0000000..baa27d7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/13.mcfunction @@ -0,0 +1,27 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/13c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/13c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/13c.mcfunction new file mode 100644 index 0000000..e771bde --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/13c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/14.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/14.mcfunction new file mode 100644 index 0000000..a20af86 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/14.mcfunction @@ -0,0 +1,29 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/14c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/14c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/14c.mcfunction new file mode 100644 index 0000000..2d6c61b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/14c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/15.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/15.mcfunction new file mode 100644 index 0000000..db6074a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/15.mcfunction @@ -0,0 +1,31 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/15c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/15c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/15c.mcfunction new file mode 100644 index 0000000..ff0eea7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/15c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/16.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/16.mcfunction new file mode 100644 index 0000000..c50a309 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/16.mcfunction @@ -0,0 +1,33 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/16c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/16c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/16c.mcfunction new file mode 100644 index 0000000..b310401 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/16c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/17.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/17.mcfunction new file mode 100644 index 0000000..1ce2cdd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/17.mcfunction @@ -0,0 +1,35 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/17c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/17c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/17c.mcfunction new file mode 100644 index 0000000..b1c11c0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/17c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/18.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/18.mcfunction new file mode 100644 index 0000000..2346152 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/18.mcfunction @@ -0,0 +1,37 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/18c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/18c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/18c.mcfunction new file mode 100644 index 0000000..e04bc25 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/18c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/19.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/19.mcfunction new file mode 100644 index 0000000..9f9e19a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/19.mcfunction @@ -0,0 +1,39 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/19c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/19c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/19c.mcfunction new file mode 100644 index 0000000..3cd2eda --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/19c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/1c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/1c.mcfunction new file mode 100644 index 0000000..c061be7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/1c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/2.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/2.mcfunction new file mode 100644 index 0000000..bec5e0b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/2.mcfunction @@ -0,0 +1,5 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/2c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/20.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/20.mcfunction new file mode 100644 index 0000000..d153b32 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/20.mcfunction @@ -0,0 +1,41 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/20c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/20c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/20c.mcfunction new file mode 100644 index 0000000..55120e7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/20c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/21.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/21.mcfunction new file mode 100644 index 0000000..027d98d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/21.mcfunction @@ -0,0 +1,43 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/21c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/21c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/21c.mcfunction new file mode 100644 index 0000000..3e0a463 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/21c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/22.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/22.mcfunction new file mode 100644 index 0000000..0b4a9a5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/22.mcfunction @@ -0,0 +1,45 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/22c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/22c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/22c.mcfunction new file mode 100644 index 0000000..b83316b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/22c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/23.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/23.mcfunction new file mode 100644 index 0000000..cb8625d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/23.mcfunction @@ -0,0 +1,47 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/23c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/23c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/23c.mcfunction new file mode 100644 index 0000000..0ba0974 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/23c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/24.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/24.mcfunction new file mode 100644 index 0000000..5c8bd62 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/24.mcfunction @@ -0,0 +1,49 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/24c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/24c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/24c.mcfunction new file mode 100644 index 0000000..9c2ba82 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/24c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/25.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/25.mcfunction new file mode 100644 index 0000000..dd05f81 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/25.mcfunction @@ -0,0 +1,51 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/25c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/25c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/25c.mcfunction new file mode 100644 index 0000000..26545e3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/25c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/26.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/26.mcfunction new file mode 100644 index 0000000..1beafba --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/26.mcfunction @@ -0,0 +1,53 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/26c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/26c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/26c.mcfunction new file mode 100644 index 0000000..13c329b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/26c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/27.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/27.mcfunction new file mode 100644 index 0000000..e2b0034 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/27.mcfunction @@ -0,0 +1,55 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/27c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/27c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/27c.mcfunction new file mode 100644 index 0000000..696bb42 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/27c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/28.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/28.mcfunction new file mode 100644 index 0000000..5f4bbc4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/28.mcfunction @@ -0,0 +1,57 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/28c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/28c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/28c.mcfunction new file mode 100644 index 0000000..fcc24c7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/28c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/29.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/29.mcfunction new file mode 100644 index 0000000..46247f6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/29.mcfunction @@ -0,0 +1,59 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/29c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/29c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/29c.mcfunction new file mode 100644 index 0000000..152fe71 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/29c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/2c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/2c.mcfunction new file mode 100644 index 0000000..938a0c1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/2c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/3.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/3.mcfunction new file mode 100644 index 0000000..8c45840 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/3.mcfunction @@ -0,0 +1,7 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/3c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/30.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/30.mcfunction new file mode 100644 index 0000000..22396d8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/30.mcfunction @@ -0,0 +1,61 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/30c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/30c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/30c.mcfunction new file mode 100644 index 0000000..cbd4099 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/30c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/31.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/31.mcfunction new file mode 100644 index 0000000..bb2092f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/31.mcfunction @@ -0,0 +1,63 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/31c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/31c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/31c.mcfunction new file mode 100644 index 0000000..232bf0d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/31c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/32.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/32.mcfunction new file mode 100644 index 0000000..1806e15 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/32.mcfunction @@ -0,0 +1,65 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/32c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/32c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/32c.mcfunction new file mode 100644 index 0000000..580b23b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/32c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/33.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/33.mcfunction new file mode 100644 index 0000000..e39ff63 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/33.mcfunction @@ -0,0 +1,67 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/33c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/33c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/33c.mcfunction new file mode 100644 index 0000000..f69cf36 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/33c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/34.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/34.mcfunction new file mode 100644 index 0000000..eb83b3a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/34.mcfunction @@ -0,0 +1,69 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/34c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/34c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/34c.mcfunction new file mode 100644 index 0000000..860cd8b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/34c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/35.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/35.mcfunction new file mode 100644 index 0000000..b007500 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/35.mcfunction @@ -0,0 +1,71 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/35c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/35c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/35c.mcfunction new file mode 100644 index 0000000..8ec5915 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/35c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/36.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/36.mcfunction new file mode 100644 index 0000000..18d58c1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/36.mcfunction @@ -0,0 +1,73 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/36c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/36c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/36c.mcfunction new file mode 100644 index 0000000..89857de --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/36c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/37.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/37.mcfunction new file mode 100644 index 0000000..db75016 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/37.mcfunction @@ -0,0 +1,75 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/37c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/37c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/37c.mcfunction new file mode 100644 index 0000000..d52c5df --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/37c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/38.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/38.mcfunction new file mode 100644 index 0000000..4ae3e45 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/38.mcfunction @@ -0,0 +1,77 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/38c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/38c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/38c.mcfunction new file mode 100644 index 0000000..bcd323e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/38c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/39.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/39.mcfunction new file mode 100644 index 0000000..253e52e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/39.mcfunction @@ -0,0 +1,79 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/39c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/39c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/39c.mcfunction new file mode 100644 index 0000000..621e437 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/39c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/3c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/3c.mcfunction new file mode 100644 index 0000000..85771d6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/3c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/4.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/4.mcfunction new file mode 100644 index 0000000..e1720db --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/4.mcfunction @@ -0,0 +1,9 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/4c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/40.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/40.mcfunction new file mode 100644 index 0000000..310b1f5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/40.mcfunction @@ -0,0 +1,81 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/40c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/40c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/40c.mcfunction new file mode 100644 index 0000000..510b2d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/40c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/41.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/41.mcfunction new file mode 100644 index 0000000..849a8d1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/41.mcfunction @@ -0,0 +1,83 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/41c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/41c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/41c.mcfunction new file mode 100644 index 0000000..cb9692e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/41c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/42.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/42.mcfunction new file mode 100644 index 0000000..f3dc663 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/42.mcfunction @@ -0,0 +1,85 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/42c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/42c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/42c.mcfunction new file mode 100644 index 0000000..2e0e453 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/42c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/43.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/43.mcfunction new file mode 100644 index 0000000..f2f793d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/43.mcfunction @@ -0,0 +1,87 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/43c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/43c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/43c.mcfunction new file mode 100644 index 0000000..6b4abcd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/43c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/44.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/44.mcfunction new file mode 100644 index 0000000..c64a64d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/44.mcfunction @@ -0,0 +1,89 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/44c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/44c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/44c.mcfunction new file mode 100644 index 0000000..891e004 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/44c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/45.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/45.mcfunction new file mode 100644 index 0000000..9e71c5e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/45.mcfunction @@ -0,0 +1,91 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/45c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/45c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/45c.mcfunction new file mode 100644 index 0000000..ad70583 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/45c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/46.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/46.mcfunction new file mode 100644 index 0000000..9bb306f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/46.mcfunction @@ -0,0 +1,93 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/46c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/46c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/46c.mcfunction new file mode 100644 index 0000000..7be8e99 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/46c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/47.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/47.mcfunction new file mode 100644 index 0000000..5e47ea7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/47.mcfunction @@ -0,0 +1,95 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/47c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/47c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/47c.mcfunction new file mode 100644 index 0000000..a435cfe --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/47c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/48.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/48.mcfunction new file mode 100644 index 0000000..01df728 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/48.mcfunction @@ -0,0 +1,97 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/48c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/48c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/48c.mcfunction new file mode 100644 index 0000000..a8a5227 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/48c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/49.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/49.mcfunction new file mode 100644 index 0000000..3c54b96 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/49.mcfunction @@ -0,0 +1,99 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/49c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/49c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/49c.mcfunction new file mode 100644 index 0000000..a658b39 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/49c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/4c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/4c.mcfunction new file mode 100644 index 0000000..a6ac5f2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/4c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/5.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/5.mcfunction new file mode 100644 index 0000000..932343c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/5.mcfunction @@ -0,0 +1,11 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/5c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/50.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/50.mcfunction new file mode 100644 index 0000000..9476595 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/50.mcfunction @@ -0,0 +1,101 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/50c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/50c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/50c.mcfunction new file mode 100644 index 0000000..a78e5ce --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/50c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/51.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/51.mcfunction new file mode 100644 index 0000000..46b7448 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/51.mcfunction @@ -0,0 +1,103 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/51c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/51c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/51c.mcfunction new file mode 100644 index 0000000..a1e9de2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/51c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/52.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/52.mcfunction new file mode 100644 index 0000000..f6f6dd4 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/52.mcfunction @@ -0,0 +1,105 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/52c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/52c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/52c.mcfunction new file mode 100644 index 0000000..f12ace8 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/52c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/53.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/53.mcfunction new file mode 100644 index 0000000..f7541f2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/53.mcfunction @@ -0,0 +1,107 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/53c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/53c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/53c.mcfunction new file mode 100644 index 0000000..4562e1a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/53c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/54.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/54.mcfunction new file mode 100644 index 0000000..8f224e6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/54.mcfunction @@ -0,0 +1,109 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/54c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/54c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/54c.mcfunction new file mode 100644 index 0000000..ccf91ff --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/54c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/55.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/55.mcfunction new file mode 100644 index 0000000..c7d7c9d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/55.mcfunction @@ -0,0 +1,111 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/55c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/55c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/55c.mcfunction new file mode 100644 index 0000000..a5af4f2 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/55c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/56.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/56.mcfunction new file mode 100644 index 0000000..de0892c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/56.mcfunction @@ -0,0 +1,113 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/56c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/56c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/56c.mcfunction new file mode 100644 index 0000000..72af943 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/56c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/57.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/57.mcfunction new file mode 100644 index 0000000..3e127bd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/57.mcfunction @@ -0,0 +1,115 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/57c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/57c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/57c.mcfunction new file mode 100644 index 0000000..eae6768 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/57c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/58.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/58.mcfunction new file mode 100644 index 0000000..89c3918 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/58.mcfunction @@ -0,0 +1,117 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/58c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/58c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/58c.mcfunction new file mode 100644 index 0000000..2cbe375 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/58c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/59.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/59.mcfunction new file mode 100644 index 0000000..d972d8b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/59.mcfunction @@ -0,0 +1,119 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/59c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/59c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/59c.mcfunction new file mode 100644 index 0000000..74bcdc1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/59c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/5c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/5c.mcfunction new file mode 100644 index 0000000..4753e7a --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/5c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/6.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/6.mcfunction new file mode 100644 index 0000000..5748985 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/6.mcfunction @@ -0,0 +1,13 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/6c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/60.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/60.mcfunction new file mode 100644 index 0000000..781acfc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/60.mcfunction @@ -0,0 +1,121 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/60c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/60c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/60c.mcfunction new file mode 100644 index 0000000..11b75ee --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/60c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/61.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/61.mcfunction new file mode 100644 index 0000000..2fa16b7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/61.mcfunction @@ -0,0 +1,123 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/61c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/61c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/61c.mcfunction new file mode 100644 index 0000000..ab2ecfa --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/61c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/62.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/62.mcfunction new file mode 100644 index 0000000..4118934 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/62.mcfunction @@ -0,0 +1,125 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/62c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/62c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/62c.mcfunction new file mode 100644 index 0000000..a8495bb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/62c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/63.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/63.mcfunction new file mode 100644 index 0000000..f154fad --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/63.mcfunction @@ -0,0 +1,127 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/63c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/63c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/63c.mcfunction new file mode 100644 index 0000000..acbe1cd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/63c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/64.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/64.mcfunction new file mode 100644 index 0000000..f869770 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/64.mcfunction @@ -0,0 +1,129 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/64c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/64c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/64c.mcfunction new file mode 100644 index 0000000..ab0d465 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/64c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/65.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/65.mcfunction new file mode 100644 index 0000000..6d48f43 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/65.mcfunction @@ -0,0 +1,131 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/65c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/65c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/65c.mcfunction new file mode 100644 index 0000000..05ee8ab --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/65c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/66.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/66.mcfunction new file mode 100644 index 0000000..ced609e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/66.mcfunction @@ -0,0 +1,133 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/66c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/66c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/66c.mcfunction new file mode 100644 index 0000000..4f9f913 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/66c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/67.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/67.mcfunction new file mode 100644 index 0000000..b89e2fd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/67.mcfunction @@ -0,0 +1,135 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/67c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/67c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/67c.mcfunction new file mode 100644 index 0000000..1ebac00 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/67c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/68.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/68.mcfunction new file mode 100644 index 0000000..8c6e95b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/68.mcfunction @@ -0,0 +1,137 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/68c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/68c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/68c.mcfunction new file mode 100644 index 0000000..12d3bac --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/68c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/69.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/69.mcfunction new file mode 100644 index 0000000..757f8a3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/69.mcfunction @@ -0,0 +1,139 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/69c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/69c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/69c.mcfunction new file mode 100644 index 0000000..3aedf65 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/69c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/6c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/6c.mcfunction new file mode 100644 index 0000000..caffca9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/6c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/7.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/7.mcfunction new file mode 100644 index 0000000..ca26865 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/7.mcfunction @@ -0,0 +1,15 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/7c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/70.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/70.mcfunction new file mode 100644 index 0000000..e430ecb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/70.mcfunction @@ -0,0 +1,141 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/70c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/70c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/70c.mcfunction new file mode 100644 index 0000000..998c123 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/70c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/71.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/71.mcfunction new file mode 100644 index 0000000..2fa3ffe --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/71.mcfunction @@ -0,0 +1,143 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/71c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/71c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/71c.mcfunction new file mode 100644 index 0000000..6976390 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/71c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/72.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/72.mcfunction new file mode 100644 index 0000000..6976c57 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/72.mcfunction @@ -0,0 +1,145 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/72c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/72c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/72c.mcfunction new file mode 100644 index 0000000..1f826c6 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/72c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/73.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/73.mcfunction new file mode 100644 index 0000000..b488ad1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/73.mcfunction @@ -0,0 +1,147 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/73c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/73c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/73c.mcfunction new file mode 100644 index 0000000..20ab147 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/73c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/74.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/74.mcfunction new file mode 100644 index 0000000..8789949 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/74.mcfunction @@ -0,0 +1,149 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/74c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/74c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/74c.mcfunction new file mode 100644 index 0000000..95841af --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/74c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/75.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/75.mcfunction new file mode 100644 index 0000000..7289449 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/75.mcfunction @@ -0,0 +1,151 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/75c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/75c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/75c.mcfunction new file mode 100644 index 0000000..df8253f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/75c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/76.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/76.mcfunction new file mode 100644 index 0000000..470dc78 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/76.mcfunction @@ -0,0 +1,153 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/76c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/76c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/76c.mcfunction new file mode 100644 index 0000000..1788bff --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/76c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/77.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/77.mcfunction new file mode 100644 index 0000000..b3ee06c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/77.mcfunction @@ -0,0 +1,155 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/77c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/77c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/77c.mcfunction new file mode 100644 index 0000000..8cd3519 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/77c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/78.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/78.mcfunction new file mode 100644 index 0000000..95af952 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/78.mcfunction @@ -0,0 +1,157 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/78c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/78c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/78c.mcfunction new file mode 100644 index 0000000..13d772c --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/78c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/79.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/79.mcfunction new file mode 100644 index 0000000..2b00866 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/79.mcfunction @@ -0,0 +1,159 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/79c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/79c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/79c.mcfunction new file mode 100644 index 0000000..ba97cda --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/79c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/7c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/7c.mcfunction new file mode 100644 index 0000000..b13d6db --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/7c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/8.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/8.mcfunction new file mode 100644 index 0000000..8b9c15f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/8.mcfunction @@ -0,0 +1,17 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/8c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/80.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/80.mcfunction new file mode 100644 index 0000000..9171005 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/80.mcfunction @@ -0,0 +1,161 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/80c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/80c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/80c.mcfunction new file mode 100644 index 0000000..de98b20 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/80c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/81.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/81.mcfunction new file mode 100644 index 0000000..ed1a926 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/81.mcfunction @@ -0,0 +1,163 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/81c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/81c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/81c.mcfunction new file mode 100644 index 0000000..9240691 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/81c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/82.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/82.mcfunction new file mode 100644 index 0000000..1897fdb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/82.mcfunction @@ -0,0 +1,165 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/82c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/82c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/82c.mcfunction new file mode 100644 index 0000000..5e8f860 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/82c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/83.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/83.mcfunction new file mode 100644 index 0000000..849011b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/83.mcfunction @@ -0,0 +1,167 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/83c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/83c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/83c.mcfunction new file mode 100644 index 0000000..2c2f97b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/83c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/84.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/84.mcfunction new file mode 100644 index 0000000..74d8f6b --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/84.mcfunction @@ -0,0 +1,169 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/84c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/84c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/84c.mcfunction new file mode 100644 index 0000000..3da0be3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/84c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/85.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/85.mcfunction new file mode 100644 index 0000000..2fe5332 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/85.mcfunction @@ -0,0 +1,171 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/85c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/85c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/85c.mcfunction new file mode 100644 index 0000000..ba089fb --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/85c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/86.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/86.mcfunction new file mode 100644 index 0000000..7a08272 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/86.mcfunction @@ -0,0 +1,173 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/86c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/86c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/86c.mcfunction new file mode 100644 index 0000000..ae731e7 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/86c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/87.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/87.mcfunction new file mode 100644 index 0000000..260f2fd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/87.mcfunction @@ -0,0 +1,175 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/87c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/87c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/87c.mcfunction new file mode 100644 index 0000000..6e89be0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/87c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/88.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/88.mcfunction new file mode 100644 index 0000000..af2367f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/88.mcfunction @@ -0,0 +1,177 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/88c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/88c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/88c.mcfunction new file mode 100644 index 0000000..5b5249d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/88c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/89.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/89.mcfunction new file mode 100644 index 0000000..725f856 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/89.mcfunction @@ -0,0 +1,179 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/89c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/89c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/89c.mcfunction new file mode 100644 index 0000000..bcc1750 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/89c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/8c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/8c.mcfunction new file mode 100644 index 0000000..9843ce1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/8c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/9.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/9.mcfunction new file mode 100644 index 0000000..930baa9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/9.mcfunction @@ -0,0 +1,19 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/9c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/90.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/90.mcfunction new file mode 100644 index 0000000..691e6dd --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/90.mcfunction @@ -0,0 +1,181 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/90c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/90c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/90c.mcfunction new file mode 100644 index 0000000..12e1422 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/90c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/91.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/91.mcfunction new file mode 100644 index 0000000..00bf0fc --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/91.mcfunction @@ -0,0 +1,183 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/91c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/91c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/91c.mcfunction new file mode 100644 index 0000000..bce748e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/91c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/92.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/92.mcfunction new file mode 100644 index 0000000..d81889d --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/92.mcfunction @@ -0,0 +1,185 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S93 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/92c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/92c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/92c.mcfunction new file mode 100644 index 0000000..e2ba2ee --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/92c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S93)$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/93.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/93.mcfunction new file mode 100644 index 0000000..8a8b440 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/93.mcfunction @@ -0,0 +1,187 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S93 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S94 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/93c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/93c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/93c.mcfunction new file mode 100644 index 0000000..e928166 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/93c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S94)$(S93)$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/94.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/94.mcfunction new file mode 100644 index 0000000..6bd6ae3 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/94.mcfunction @@ -0,0 +1,189 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S93 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S94 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S95 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/94c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/94c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/94c.mcfunction new file mode 100644 index 0000000..ae1dac1 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/94c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S95)$(S94)$(S93)$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/95.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/95.mcfunction new file mode 100644 index 0000000..fcd7008 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/95.mcfunction @@ -0,0 +1,191 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S93 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S94 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S95 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S96 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/95c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/95c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/95c.mcfunction new file mode 100644 index 0000000..7498d47 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/95c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S96)$(S95)$(S94)$(S93)$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/96.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/96.mcfunction new file mode 100644 index 0000000..08e8982 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/96.mcfunction @@ -0,0 +1,193 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S93 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S94 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S95 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S96 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S97 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/96c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/96c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/96c.mcfunction new file mode 100644 index 0000000..8f542c9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/96c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S97)$(S96)$(S95)$(S94)$(S93)$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/97.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/97.mcfunction new file mode 100644 index 0000000..7288ea0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/97.mcfunction @@ -0,0 +1,195 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S93 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S94 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S95 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S96 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S97 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S98 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/97c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/97c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/97c.mcfunction new file mode 100644 index 0000000..62cb2c9 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/97c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S98)$(S97)$(S96)$(S95)$(S94)$(S93)$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/98.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/98.mcfunction new file mode 100644 index 0000000..fc37365 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/98.mcfunction @@ -0,0 +1,197 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S93 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S94 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S95 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S96 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S97 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S98 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S99 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/98c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/98c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/98c.mcfunction new file mode 100644 index 0000000..0f86d9f --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/98c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S99)$(S98)$(S97)$(S96)$(S95)$(S94)$(S93)$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/99.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/99.mcfunction new file mode 100644 index 0000000..29fc1c5 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/99.mcfunction @@ -0,0 +1,199 @@ +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S2 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S3 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S4 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S5 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S6 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S7 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S8 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S9 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S10 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S11 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S12 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S13 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S14 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S15 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S16 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S17 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S18 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S19 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S20 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S21 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S22 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S23 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S24 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S25 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S26 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S27 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S28 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S29 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S30 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S31 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S32 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S33 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S34 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S35 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S36 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S37 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S38 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S39 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S40 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S41 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S42 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S43 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S44 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S45 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S46 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S47 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S48 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S49 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S50 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S51 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S52 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S53 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S54 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S55 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S56 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S57 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S58 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S59 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S60 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S61 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S62 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S63 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S64 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S65 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S66 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S67 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S68 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S69 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S70 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S71 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S72 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S73 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S74 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S75 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S76 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S77 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S78 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S79 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S80 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S81 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S82 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S83 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S84 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S85 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S86 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S87 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S88 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S89 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S90 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S91 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S92 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S93 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S94 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S95 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S96 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S97 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S98 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S99 set from storage stringlib:temp data.StringList[-1] +data remove storage stringlib:temp data.StringList[-1] +data modify storage stringlib:temp data.S100 set from storage stringlib:temp data.StringList[-1] +function stringlib:zprivate/concat/s/99c with storage stringlib:temp data diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/99c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/99c.mcfunction new file mode 100644 index 0000000..7c2ed15 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/99c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S100)$(S99)$(S98)$(S97)$(S96)$(S95)$(S94)$(S93)$(S92)$(S91)$(S90)$(S89)$(S88)$(S87)$(S86)$(S85)$(S84)$(S83)$(S82)$(S81)$(S80)$(S79)$(S78)$(S77)$(S76)$(S75)$(S74)$(S73)$(S72)$(S71)$(S70)$(S69)$(S68)$(S67)$(S66)$(S65)$(S64)$(S63)$(S62)$(S61)$(S60)$(S59)$(S58)$(S57)$(S56)$(S55)$(S54)$(S53)$(S52)$(S51)$(S50)$(S49)$(S48)$(S47)$(S46)$(S45)$(S44)$(S43)$(S42)$(S41)$(S40)$(S39)$(S38)$(S37)$(S36)$(S35)$(S34)$(S33)$(S32)$(S31)$(S30)$(S29)$(S28)$(S27)$(S26)$(S25)$(S24)$(S23)$(S22)$(S21)$(S20)$(S19)$(S18)$(S17)$(S16)$(S15)$(S14)$(S13)$(S12)$(S11)$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/9c.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/9c.mcfunction new file mode 100644 index 0000000..5a5cb8e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/concat/s/9c.mcfunction @@ -0,0 +1 @@ +$data modify storage stringlib:temp data.S1 set value "$(S10)$(S9)$(S8)$(S7)$(S6)$(S5)$(S4)$(S3)$(S2)$(S1)" diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/check_word_rest.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/check_word_rest.mcfunction new file mode 100644 index 0000000..0285c32 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/check_word_rest.mcfunction @@ -0,0 +1,12 @@ +# Check if 'Find' is located at that position (First character already matches) (IsFindLength is set to 0 because the 'store success' check here only stores the value if it's 1 because it has a command after it that might not run) +execute store result score #StringLib.CheckString.CharsLeft StringLib run data get storage stringlib:temp data.String +scoreboard players set #StringLib.CheckString.IsFindLength StringLib 0 +execute store success score #StringLib.CheckString.IsFindLength StringLib if score #StringLib.FindLength StringLib <= #StringLib.CheckString.CharsLeft StringLib run scoreboard players operation #StringLib.CheckString.CharsLeft StringLib = #StringLib.FindLength StringLib +execute if score #StringLib.CheckString.IsFindLength StringLib matches 0 run return 0 +scoreboard players remove #StringLib.CheckString.CharsLeft StringLib 1 + +data modify storage stringlib:temp data.CheckString.String set string storage stringlib:temp data.String 1 +data modify storage stringlib:temp data.CheckString.Find set string storage stringlib:input find.Find 1 + +function stringlib:zprivate/find/check_word_rest_loop +execute if score #StringLib.SuccessCheck StringLib matches 1 run return 1 diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/check_word_rest_loop.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/check_word_rest_loop.mcfunction new file mode 100644 index 0000000..74a5874 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/check_word_rest_loop.mcfunction @@ -0,0 +1,11 @@ +# Compare characters +data modify storage stringlib:temp data.FirstChar set string storage stringlib:temp data.CheckString.String 0 1 +execute store success score #StringLib.SuccessCheck StringLib run data modify storage stringlib:temp data.FirstChar set string storage stringlib:temp data.CheckString.Find 0 1 +execute if score #StringLib.SuccessCheck StringLib matches 1 run return run scoreboard players set #StringLib.SuccessCheck StringLib 0 + +# Next Loop (If the main string runs out, return 0. If the Find string runs out, return 1) +execute if score #StringLib.CheckString.CharsLeft StringLib matches 1 store result score #StringLib.SuccessCheck StringLib run return run scoreboard players get #StringLib.CheckString.IsFindLength StringLib +scoreboard players remove #StringLib.CheckString.CharsLeft StringLib 1 +data modify storage stringlib:temp data.CheckString.String set string storage stringlib:temp data.CheckString.String 1 +data modify storage stringlib:temp data.CheckString.Find set string storage stringlib:temp data.CheckString.Find 1 +function stringlib:zprivate/find/check_word_rest_loop diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/check_word_start_loop.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/check_word_start_loop.mcfunction new file mode 100644 index 0000000..9a1efb0 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/check_word_start_loop.mcfunction @@ -0,0 +1,11 @@ +# Check if first character matches +data modify storage stringlib:temp data.FirstChar set string storage stringlib:temp data.String 0 1 +execute store success score #StringLib.SuccessCheck StringLib run data modify storage stringlib:temp data.FirstChar set string storage stringlib:input find.Find 0 1 +execute if score #StringLib.SuccessCheck StringLib matches 0 if score #StringLib.FindLength StringLib matches 1 store result storage stringlib:output find[-1] int 1 run return run scoreboard players remove #StringLib.Index StringLib 1 +execute if score #StringLib.SuccessCheck StringLib matches 0 if score #StringLib.FindLength StringLib matches 2.. if function stringlib:zprivate/find/check_word_rest store result storage stringlib:output find[-1] int 1 run return run scoreboard players remove #StringLib.Index StringLib 1 + +# Next loop (Stop once the word can no longer fit, or if it's been found already) +execute if score #StringLib.Index StringLib > #StringLib.CharsTotal StringLib run return run scoreboard players set #StringLib.FoundNothing StringLib 1 +scoreboard players add #StringLib.Index StringLib 1 +data modify storage stringlib:temp data.String set string storage stringlib:temp data.String 1 +function stringlib:zprivate/find/check_word_start_loop diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/main.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/main.mcfunction new file mode 100644 index 0000000..0023f19 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/main.mcfunction @@ -0,0 +1,15 @@ +# Setup +data modify storage stringlib:output find append value -1 +function stringlib:zprivate/find/check_word_start_loop + +# Loop (Search for next occurence of the "Find" string. Stop if it found enough occurences already or if it hit a dead end, or if the string ends. Needs that last check because it skips it in "check_word_start_loop" if the first letter matches. >= this time because it removed 1 from the index) +execute if score #StringLib.FoundNothing StringLib matches 1 run return run execute if data storage stringlib:output find[1] run data remove storage stringlib:output find[-1] +execute if score #StringLib.FindAmount StringLib matches 1 run return 0 +execute if score #StringLib.Index StringLib >= #StringLib.CharsTotal StringLib run return 0 + +scoreboard players remove #StringLib.FindAmount StringLib 1 +scoreboard players add #StringLib.Index StringLib 1 +scoreboard players operation #StringLib.Index StringLib += #StringLib.FindLength StringLib +execute if score #StringLib.FindLength StringLib matches 1 run data modify storage stringlib:temp data.String set string storage stringlib:temp data.String 1 +execute if score #StringLib.FindLength StringLib matches 2.. run data modify storage stringlib:temp data.String set string storage stringlib:temp data.CheckString.String 1 +function stringlib:zprivate/find/main diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/check_word_rest.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/check_word_rest.mcfunction new file mode 100644 index 0000000..b54f2ff --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/check_word_rest.mcfunction @@ -0,0 +1,12 @@ +# Check if 'Find' is located at that position (Last character already matches) (IsFindLength is set to 0 because the 'store success' check here only stores the value if it's 1 because it has a command after it that might not run) +execute store result score #StringLib.CheckString.CharsLeft StringLib run data get storage stringlib:temp data.String +scoreboard players set #StringLib.CheckString.IsFindLength StringLib 0 +execute store success score #StringLib.CheckString.IsFindLength StringLib if score #StringLib.FindLength StringLib <= #StringLib.CheckString.CharsLeft StringLib run scoreboard players operation #StringLib.CheckString.CharsLeft StringLib = #StringLib.FindLength StringLib +execute if score #StringLib.CheckString.IsFindLength StringLib matches 0 run return 0 +scoreboard players remove #StringLib.CheckString.CharsLeft StringLib 1 + +data modify storage stringlib:temp data.CheckString.String set string storage stringlib:temp data.String 0 -1 +data modify storage stringlib:temp data.CheckString.Find set string storage stringlib:input find.Find 0 -1 + +function stringlib:zprivate/find/reversed/check_word_rest_loop +execute if score #StringLib.SuccessCheck StringLib matches 1 run return 1 diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/check_word_rest_loop.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/check_word_rest_loop.mcfunction new file mode 100644 index 0000000..783922e --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/check_word_rest_loop.mcfunction @@ -0,0 +1,11 @@ +# Compare characters +data modify storage stringlib:temp data.LastChar set string storage stringlib:temp data.CheckString.String -1 +execute store success score #StringLib.SuccessCheck StringLib run data modify storage stringlib:temp data.LastChar set string storage stringlib:temp data.CheckString.Find -1 +execute if score #StringLib.SuccessCheck StringLib matches 1 run return run scoreboard players set #StringLib.SuccessCheck StringLib 0 + +# Next Loop (If the main string runs out, return 0. If the Find string runs out, return 1) +execute if score #StringLib.CheckString.CharsLeft StringLib matches 1 store result score #StringLib.SuccessCheck StringLib run return run scoreboard players get #StringLib.CheckString.IsFindLength StringLib +scoreboard players remove #StringLib.CheckString.CharsLeft StringLib 1 +data modify storage stringlib:temp data.CheckString.String set string storage stringlib:temp data.CheckString.String 0 -1 +data modify storage stringlib:temp data.CheckString.Find set string storage stringlib:temp data.CheckString.Find 0 -1 +function stringlib:zprivate/find/reversed/check_word_rest_loop diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/check_word_start_loop.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/check_word_start_loop.mcfunction new file mode 100644 index 0000000..0544200 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/check_word_start_loop.mcfunction @@ -0,0 +1,11 @@ +# Check if last character matches +data modify storage stringlib:temp data.LastChar set string storage stringlib:temp data.String -1 +execute store success score #StringLib.SuccessCheck StringLib run data modify storage stringlib:temp data.LastChar set string storage stringlib:input find.Find -1 +execute if score #StringLib.SuccessCheck StringLib matches 0 if score #StringLib.FindLength StringLib matches 1 store result storage stringlib:output find[-1] int 1 run return run scoreboard players get #StringLib.Index StringLib +execute if score #StringLib.SuccessCheck StringLib matches 0 if score #StringLib.FindLength StringLib matches 2.. if function stringlib:zprivate/find/reversed/check_word_rest store result storage stringlib:output find[-1] int 1 run return run scoreboard players get #StringLib.Index StringLib + +# Next loop (Stop once the word can no longer fit, or if it's been found already) +execute if score #StringLib.Index StringLib matches 0 run return run scoreboard players set #StringLib.FoundNothing StringLib 1 +scoreboard players remove #StringLib.Index StringLib 1 +data modify storage stringlib:temp data.String set string storage stringlib:temp data.String 0 -1 +function stringlib:zprivate/find/reversed/check_word_start_loop diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/main.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/main.mcfunction new file mode 100644 index 0000000..956c789 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/find/reversed/main.mcfunction @@ -0,0 +1,14 @@ +# Setup +data modify storage stringlib:output find append value -1 +function stringlib:zprivate/find/reversed/check_word_start_loop + +# Loop (Search for next occurence of the "Find" string. Stop if it found enough occurences already or if it hit a dead end, or if the string ends. Needs that last check because it skips it in "check_word_start_loop" if the last letter matches) +execute if score #StringLib.FoundNothing StringLib matches 1 run return run execute if data storage stringlib:output find[1] run data remove storage stringlib:output find[-1] +execute if score #StringLib.FindAmount StringLib matches -1 run return 0 +execute if score #StringLib.Index StringLib < #StringLib.FindLength StringLib run return 0 + +scoreboard players add #StringLib.FindAmount StringLib 1 +scoreboard players operation #StringLib.Index StringLib -= #StringLib.FindLength StringLib +execute if score #StringLib.FindLength StringLib matches 1 run data modify storage stringlib:temp data.String set string storage stringlib:temp data.String 0 -1 +execute if score #StringLib.FindLength StringLib matches 2.. run data modify storage stringlib:temp data.String set string storage stringlib:temp data.CheckString.String 0 -1 +function stringlib:zprivate/find/reversed/main diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/init.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/init.mcfunction new file mode 100644 index 0000000..7816042 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/init.mcfunction @@ -0,0 +1,15 @@ +# Init +scoreboard players set #StringLib.Init StringLib 1 +execute unless score #StringLib.ShowLoadMessage StringLib matches 0 run scoreboard players set #StringLib.ShowLoadMessage StringLib 1 + +scoreboard players set #StringLib.c-1 StringLib -1 +scoreboard players set #StringLib.c100 StringLib 100 + +data modify storage stringlib:zprivate data.CharMap.Fast set value [{u:"A",l:"a"},{u:"B",l:"b"},{u:"C",l:"c"},{u:"D",l:"d"},{u:"E",l:"e"},{u:"F",l:"f"},{u:"G",l:"g"},{u:"H",l:"h"},{u:"I",l:"i"},{u:"J",l:"j"},{u:"K",l:"k"},{u:"L",l:"l"},{u:"M",l:"m"},{u:"N",l:"n"},{u:"O",l:"o"},{u:"P",l:"p"},{u:"Q",l:"q"},{u:"R",l:"r"},{u:"S",l:"s"},{u:"T",l:"t"},{u:"U",l:"u"},{u:"V",l:"v"},{u:"W",l:"w"},{u:"X",l:"x"},{u:"Y",l:"y"},{u:"Z",l:"z"}] + +data modify storage stringlib:zprivate data.CharMap.Full set value [{u:"A",l:"a"},{u:"B",l:"b"},{u:"C",l:"c"},{u:"D",l:"d"},{u:"E",l:"e"},{u:"F",l:"f"},{u:"G",l:"g"},{u:"H",l:"h"},{u:"I",l:"i"},{u:"J",l:"j"},{u:"K",l:"k"},{u:"L",l:"l"},{u:"M",l:"m"},{u:"N",l:"n"},{u:"O",l:"o"},{u:"P",l:"p"},{u:"Q",l:"q"},{u:"R",l:"r"},{u:"S",l:"s"},{u:"T",l:"t"},{u:"U",l:"u"},{u:"V",l:"v"},{u:"W",l:"w"},{u:"X",l:"x"},{u:"Y",l:"y"},{u:"Z",l:"z"},{u:"À",l:"à"},{u:"Á",l:"á"},{u:"Â",l:"â"},{u:"Ã",l:"ã"},{u:"Ä",l:"ä"},{u:"Å",l:"å"},{u:"Æ",l:"æ"},{u:"Ç",l:"ç"},{u:"È",l:"è"},{u:"É",l:"é"},{u:"Ê",l:"ê"},{u:"Ë",l:"ë"},{u:"Ì",l:"ì"},{u:"Í",l:"í"},{u:"Î",l:"î"},{u:"Ï",l:"ï"},{u:"Ð",l:"ð"},{u:"Ñ",l:"ñ"},{u:"Ò",l:"ò"},{u:"Ó",l:"ó"},{u:"Ô",l:"ô"},{u:"Õ",l:"õ"},{u:"Ö",l:"ö"},{u:"Ø",l:"ø"},{u:"Ù",l:"ù"},{u:"Ú",l:"ú"},{u:"Û",l:"û"},{u:"Ü",l:"ü"},{u:"Ý",l:"ý"},{u:"Þ",l:"þ"},{u:"Ā",l:"ā"},{u:"Ă",l:"ă"},{u:"Ą",l:"ą"},{u:"Ć",l:"ć"},{u:"Ĉ",l:"ĉ"},{u:"Ċ",l:"ċ"},{u:"Č",l:"č"},{u:"Ď",l:"ď"},{u:"Đ",l:"đ"},{u:"Ē",l:"ē"},{u:"Ĕ",l:"ĕ"},{u:"Ė",l:"ė"},{u:"Ę",l:"ę"},{u:"Ě",l:"ě"},{u:"Ĝ",l:"ĝ"},{u:"Ğ",l:"ğ"},{u:"Ġ",l:"ġ"},{u:"Ģ",l:"ģ"},{u:"Ĥ",l:"ĥ"},{u:"Ħ",l:"ħ"},{u:"Ĩ",l:"ĩ"},{u:"Ī",l:"ī"},{u:"Ĭ",l:"ĭ"},{u:"Į",l:"į"},{u:"İ",l:"i"},{u:"IJ",l:"ij"},{u:"Ĵ",l:"ĵ"},{u:"Ķ",l:"ķ"},{u:"Ĺ",l:"ĺ"},{u:"Ļ",l:"ļ"},{u:"Ľ",l:"ľ"},{u:"Ŀ",l:"ŀ"},{u:"Ł",l:"ł"},{u:"Ń",l:"ń"},{u:"Ņ",l:"ņ"},{u:"Ň",l:"ň"},{u:"Ŋ",l:"ŋ"},{u:"Ō",l:"ō"},{u:"Ŏ",l:"ŏ"},{u:"Ő",l:"ő"},{u:"Œ",l:"œ"},{u:"Ŕ",l:"ŕ"},{u:"Ŗ",l:"ŗ"},{u:"Ř",l:"ř"},{u:"Ś",l:"ś"},{u:"Ŝ",l:"ŝ"},{u:"Ş",l:"ş"},{u:"Š",l:"š"},{u:"Ţ",l:"ţ"},{u:"Ť",l:"ť"},{u:"Ŧ",l:"ŧ"},{u:"Ũ",l:"ũ"},{u:"Ū",l:"ū"},{u:"Ŭ",l:"ŭ"},{u:"Ů",l:"ů"},{u:"Ű",l:"ű"},{u:"Ų",l:"ų"},{u:"Ŵ",l:"ŵ"},{u:"Ŷ",l:"ŷ"},{u:"Ÿ",l:"ÿ"},{u:"Ź",l:"ź"},{u:"Ż",l:"ż"},{u:"Ž",l:"ž"},{u:"Ɓ",l:"ɓ"},{u:"Ƃ",l:"ƃ"},{u:"Ƅ",l:"ƅ"},{u:"Ɔ",l:"ɔ"},{u:"Ƈ",l:"ƈ"},{u:"Ɖ",l:"ɖ"},{u:"Ɗ",l:"ɗ"},{u:"Ƌ",l:"ƌ"},{u:"Ǝ",l:"ǝ"},{u:"Ə",l:"ə"},{u:"Ɛ",l:"ɛ"},{u:"Ƒ",l:"ƒ"},{u:"Ɠ",l:"ɠ"},{u:"Ɣ",l:"ɣ"},{u:"Ɩ",l:"ɩ"},{u:"Ɨ",l:"ɨ"},{u:"Ƙ",l:"ƙ"},{u:"Ɯ",l:"ɯ"},{u:"Ɲ",l:"ɲ"},{u:"Ɵ",l:"ɵ"},{u:"Ơ",l:"ơ"},{u:"Ƣ",l:"ƣ"},{u:"Ƥ",l:"ƥ"},{u:"Ʀ",l:"ʀ"},{u:"Ƨ",l:"ƨ"},{u:"Ʃ",l:"ʃ"},{u:"Ƭ",l:"ƭ"},{u:"Ʈ",l:"ʈ"},{u:"Ư",l:"ư"},{u:"Ʊ",l:"ʊ"},{u:"Ʋ",l:"ʋ"},{u:"Ƴ",l:"ƴ"},{u:"Ƶ",l:"ƶ"},{u:"Ʒ",l:"ʒ"},{u:"Ƹ",l:"ƹ"},{u:"Ƽ",l:"ƽ"},{u:"DŽ",l:"dž"},{u:"Dž",l:"dž"},{u:"LJ",l:"lj"},{u:"Lj",l:"lj"},{u:"NJ",l:"nj"},{u:"Nj",l:"nj"},{u:"Ǎ",l:"ǎ"},{u:"Ǐ",l:"ǐ"},{u:"Ǒ",l:"ǒ"},{u:"Ǔ",l:"ǔ"},{u:"Ǖ",l:"ǖ"},{u:"Ǘ",l:"ǘ"},{u:"Ǚ",l:"ǚ"},{u:"Ǜ",l:"ǜ"},{u:"Ǟ",l:"ǟ"},{u:"Ǡ",l:"ǡ"},{u:"Ǣ",l:"ǣ"},{u:"Ǥ",l:"ǥ"},{u:"Ǧ",l:"ǧ"},{u:"Ǩ",l:"ǩ"},{u:"Ǫ",l:"ǫ"},{u:"Ǭ",l:"ǭ"},{u:"Ǯ",l:"ǯ"},{u:"DZ",l:"dz"},{u:"Dz",l:"dz"},{u:"Ǵ",l:"ǵ"},{u:"Ƕ",l:"ƕ"},{u:"Ƿ",l:"ƿ"},{u:"Ǹ",l:"ǹ"},{u:"Ǻ",l:"ǻ"},{u:"Ǽ",l:"ǽ"},{u:"Ǿ",l:"ǿ"},{u:"Ȁ",l:"ȁ"},{u:"Ȃ",l:"ȃ"},{u:"Ȅ",l:"ȅ"},{u:"Ȇ",l:"ȇ"},{u:"Ȉ",l:"ȉ"},{u:"Ȋ",l:"ȋ"},{u:"Ȍ",l:"ȍ"},{u:"Ȏ",l:"ȏ"},{u:"Ȑ",l:"ȑ"},{u:"Ȓ",l:"ȓ"},{u:"Ȕ",l:"ȕ"},{u:"Ȗ",l:"ȗ"},{u:"Ș",l:"ș"},{u:"Ț",l:"ț"},{u:"Ȝ",l:"ȝ"},{u:"Ȟ",l:"ȟ"},{u:"Ƞ",l:"ƞ"},{u:"Ȣ",l:"ȣ"},{u:"Ȥ",l:"ȥ"},{u:"Ȧ",l:"ȧ"},{u:"Ȩ",l:"ȩ"},{u:"Ȫ",l:"ȫ"},{u:"Ȭ",l:"ȭ"},{u:"Ȯ",l:"ȯ"},{u:"Ȱ",l:"ȱ"},{u:"Ȳ",l:"ȳ"},{u:"Ⱥ",l:"ⱥ"},{u:"Ȼ",l:"ȼ"},{u:"Ƚ",l:"ƚ"},{u:"Ⱦ",l:"ⱦ"},{u:"Ɂ",l:"ɂ"},{u:"Ƀ",l:"ƀ"},{u:"Ʉ",l:"ʉ"},{u:"Ʌ",l:"ʌ"},{u:"Ɇ",l:"ɇ"},{u:"Ɉ",l:"ɉ"},{u:"Ɋ",l:"ɋ"},{u:"Ɍ",l:"ɍ"},{u:"Ɏ",l:"ɏ"},{u:"Ͱ",l:"ͱ"},{u:"Ͳ",l:"ͳ"},{u:"Ͷ",l:"ͷ"},{u:"Ϳ",l:"ϳ"},{u:"Ά",l:"ά"},{u:"Έ",l:"έ"},{u:"Ή",l:"ή"},{u:"Ί",l:"ί"},{u:"Ό",l:"ό"},{u:"Ύ",l:"ύ"},{u:"Ώ",l:"ώ"},{u:"Α",l:"α"},{u:"Β",l:"β"},{u:"Γ",l:"γ"},{u:"Δ",l:"δ"},{u:"Ε",l:"ε"},{u:"Ζ",l:"ζ"},{u:"Η",l:"η"},{u:"Θ",l:"θ"},{u:"Ι",l:"ι"},{u:"Κ",l:"κ"},{u:"Λ",l:"λ"},{u:"Μ",l:"μ"},{u:"Ν",l:"ν"},{u:"Ξ",l:"ξ"},{u:"Ο",l:"ο"},{u:"Π",l:"π"},{u:"Ρ",l:"ρ"},{u:"Σ",l:"σ"},{u:"Τ",l:"τ"},{u:"Υ",l:"υ"},{u:"Φ",l:"φ"},{u:"Χ",l:"χ"},{u:"Ψ",l:"ψ"},{u:"Ω",l:"ω"},{u:"Ϊ",l:"ϊ"},{u:"Ϋ",l:"ϋ"},{u:"Ϗ",l:"ϗ"},{u:"Ϙ",l:"ϙ"},{u:"Ϛ",l:"ϛ"},{u:"Ϝ",l:"ϝ"},{u:"Ϟ",l:"ϟ"},{u:"Ϡ",l:"ϡ"},{u:"Ϣ",l:"ϣ"},{u:"Ϥ",l:"ϥ"},{u:"Ϧ",l:"ϧ"},{u:"Ϩ",l:"ϩ"},{u:"Ϫ",l:"ϫ"},{u:"Ϭ",l:"ϭ"},{u:"Ϯ",l:"ϯ"},{u:"ϴ",l:"θ"},{u:"Ϸ",l:"ϸ"},{u:"Ϲ",l:"ϲ"},{u:"Ϻ",l:"ϻ"},{u:"Ͻ",l:"ͻ"},{u:"Ͼ",l:"ͼ"},{u:"Ͽ",l:"ͽ"},{u:"Ѐ",l:"ѐ"},{u:"Ё",l:"ё"},{u:"Ђ",l:"ђ"},{u:"Ѓ",l:"ѓ"},{u:"Є",l:"є"},{u:"Ѕ",l:"ѕ"},{u:"І",l:"і"},{u:"Ї",l:"ї"},{u:"Ј",l:"ј"},{u:"Љ",l:"љ"},{u:"Њ",l:"њ"},{u:"Ћ",l:"ћ"},{u:"Ќ",l:"ќ"},{u:"Ѝ",l:"ѝ"},{u:"Ў",l:"ў"},{u:"Џ",l:"џ"},{u:"А",l:"а"},{u:"Б",l:"б"},{u:"В",l:"в"},{u:"Г",l:"г"},{u:"Д",l:"д"},{u:"Е",l:"е"},{u:"Ж",l:"ж"},{u:"З",l:"з"},{u:"И",l:"и"},{u:"Й",l:"й"},{u:"К",l:"к"},{u:"Л",l:"л"},{u:"М",l:"м"},{u:"Н",l:"н"},{u:"О",l:"о"},{u:"П",l:"п"},{u:"Р",l:"р"},{u:"С",l:"с"},{u:"Т",l:"т"},{u:"У",l:"у"},{u:"Ф",l:"ф"},{u:"Х",l:"х"},{u:"Ц",l:"ц"},{u:"Ч",l:"ч"},{u:"Ш",l:"ш"},{u:"Щ",l:"щ"},{u:"Ъ",l:"ъ"},{u:"Ы",l:"ы"},{u:"Ь",l:"ь"},{u:"Э",l:"э"},{u:"Ю",l:"ю"},{u:"Я",l:"я"},{u:"Ѡ",l:"ѡ"},{u:"Ѣ",l:"ѣ"},{u:"Ѥ",l:"ѥ"},{u:"Ѧ",l:"ѧ"},{u:"Ѩ",l:"ѩ"},{u:"Ѫ",l:"ѫ"},{u:"Ѭ",l:"ѭ"},{u:"Ѯ",l:"ѯ"},{u:"Ѱ",l:"ѱ"},{u:"Ѳ",l:"ѳ"},{u:"Ѵ",l:"ѵ"},{u:"Ѷ",l:"ѷ"},{u:"Ѹ",l:"ѹ"},{u:"Ѻ",l:"ѻ"},{u:"Ѽ",l:"ѽ"},{u:"Ѿ",l:"ѿ"},{u:"Ҁ",l:"ҁ"},{u:"Ҋ",l:"ҋ"},{u:"Ҍ",l:"ҍ"},{u:"Ҏ",l:"ҏ"},{u:"Ґ",l:"ґ"},{u:"Ғ",l:"ғ"},{u:"Ҕ",l:"ҕ"},{u:"Җ",l:"җ"},{u:"Ҙ",l:"ҙ"},{u:"Қ",l:"қ"},{u:"Ҝ",l:"ҝ"},{u:"Ҟ",l:"ҟ"},{u:"Ҡ",l:"ҡ"},{u:"Ң",l:"ң"},{u:"Ҥ",l:"ҥ"},{u:"Ҧ",l:"ҧ"},{u:"Ҩ",l:"ҩ"},{u:"Ҫ",l:"ҫ"},{u:"Ҭ",l:"ҭ"},{u:"Ү",l:"ү"},{u:"Ұ",l:"ұ"},{u:"Ҳ",l:"ҳ"},{u:"Ҵ",l:"ҵ"},{u:"Ҷ",l:"ҷ"},{u:"Ҹ",l:"ҹ"},{u:"Һ",l:"һ"},{u:"Ҽ",l:"ҽ"},{u:"Ҿ",l:"ҿ"},{u:"Ӏ",l:"ӏ"},{u:"Ӂ",l:"ӂ"},{u:"Ӄ",l:"ӄ"},{u:"Ӆ",l:"ӆ"},{u:"Ӈ",l:"ӈ"},{u:"Ӊ",l:"ӊ"},{u:"Ӌ",l:"ӌ"},{u:"Ӎ",l:"ӎ"},{u:"Ӑ",l:"ӑ"},{u:"Ӓ",l:"ӓ"},{u:"Ӕ",l:"ӕ"},{u:"Ӗ",l:"ӗ"},{u:"Ә",l:"ә"},{u:"Ӛ",l:"ӛ"},{u:"Ӝ",l:"ӝ"},{u:"Ӟ",l:"ӟ"},{u:"Ӡ",l:"ӡ"},{u:"Ӣ",l:"ӣ"},{u:"Ӥ",l:"ӥ"},{u:"Ӧ",l:"ӧ"},{u:"Ө",l:"ө"},{u:"Ӫ",l:"ӫ"},{u:"Ӭ",l:"ӭ"},{u:"Ӯ",l:"ӯ"},{u:"Ӱ",l:"ӱ"},{u:"Ӳ",l:"ӳ"},{u:"Ӵ",l:"ӵ"},{u:"Ӷ",l:"ӷ"},{u:"Ӹ",l:"ӹ"},{u:"Ӻ",l:"ӻ"},{u:"Ӽ",l:"ӽ"},{u:"Ӿ",l:"ӿ"},{u:"Ԁ",l:"ԁ"},{u:"Ԃ",l:"ԃ"},{u:"Ԅ",l:"ԅ"},{u:"Ԇ",l:"ԇ"},{u:"Ԉ",l:"ԉ"},{u:"Ԋ",l:"ԋ"},{u:"Ԍ",l:"ԍ"},{u:"Ԏ",l:"ԏ"},{u:"Ԑ",l:"ԑ"},{u:"Ԓ",l:"ԓ"},{u:"Ԕ",l:"ԕ"},{u:"Ԗ",l:"ԗ"},{u:"Ԙ",l:"ԙ"},{u:"Ԛ",l:"ԛ"},{u:"Ԝ",l:"ԝ"},{u:"Ԟ",l:"ԟ"},{u:"Ԡ",l:"ԡ"},{u:"Ԣ",l:"ԣ"},{u:"Ԥ",l:"ԥ"},{u:"Ԧ",l:"ԧ"},{u:"Ԩ",l:"ԩ"},{u:"Ԫ",l:"ԫ"},{u:"Ԭ",l:"ԭ"},{u:"Ԯ",l:"ԯ"},{u:"Ա",l:"ա"},{u:"Բ",l:"բ"},{u:"Գ",l:"գ"},{u:"Դ",l:"դ"},{u:"Ե",l:"ե"},{u:"Զ",l:"զ"},{u:"Է",l:"է"},{u:"Ը",l:"ը"},{u:"Թ",l:"թ"},{u:"Ժ",l:"ժ"},{u:"Ի",l:"ի"},{u:"Լ",l:"լ"},{u:"Խ",l:"խ"},{u:"Ծ",l:"ծ"},{u:"Կ",l:"կ"},{u:"Հ",l:"հ"},{u:"Ձ",l:"ձ"},{u:"Ղ",l:"ղ"},{u:"Ճ",l:"ճ"},{u:"Մ",l:"մ"},{u:"Յ",l:"յ"},{u:"Ն",l:"ն"},{u:"Շ",l:"շ"},{u:"Ո",l:"ո"},{u:"Չ",l:"չ"},{u:"Պ",l:"պ"},{u:"Ջ",l:"ջ"},{u:"Ռ",l:"ռ"},{u:"Ս",l:"ս"},{u:"Վ",l:"վ"},{u:"Տ",l:"տ"},{u:"Ր",l:"ր"},{u:"Ց",l:"ց"},{u:"Ւ",l:"ւ"},{u:"Փ",l:"փ"},{u:"Ք",l:"ք"},{u:"Օ",l:"օ"},{u:"Ֆ",l:"ֆ"},{u:"Ⴀ",l:"ⴀ"},{u:"Ⴁ",l:"ⴁ"},{u:"Ⴂ",l:"ⴂ"},{u:"Ⴃ",l:"ⴃ"},{u:"Ⴄ",l:"ⴄ"},{u:"Ⴅ",l:"ⴅ"},{u:"Ⴆ",l:"ⴆ"},{u:"Ⴇ",l:"ⴇ"},{u:"Ⴈ",l:"ⴈ"},{u:"Ⴉ",l:"ⴉ"},{u:"Ⴊ",l:"ⴊ"},{u:"Ⴋ",l:"ⴋ"},{u:"Ⴌ",l:"ⴌ"},{u:"Ⴍ",l:"ⴍ"},{u:"Ⴎ",l:"ⴎ"},{u:"Ⴏ",l:"ⴏ"},{u:"Ⴐ",l:"ⴐ"},{u:"Ⴑ",l:"ⴑ"},{u:"Ⴒ",l:"ⴒ"},{u:"Ⴓ",l:"ⴓ"},{u:"Ⴔ",l:"ⴔ"},{u:"Ⴕ",l:"ⴕ"},{u:"Ⴖ",l:"ⴖ"},{u:"Ⴗ",l:"ⴗ"},{u:"Ⴘ",l:"ⴘ"},{u:"Ⴙ",l:"ⴙ"},{u:"Ⴚ",l:"ⴚ"},{u:"Ⴛ",l:"ⴛ"},{u:"Ⴜ",l:"ⴜ"},{u:"Ⴝ",l:"ⴝ"},{u:"Ⴞ",l:"ⴞ"},{u:"Ⴟ",l:"ⴟ"},{u:"Ⴠ",l:"ⴠ"},{u:"Ⴡ",l:"ⴡ"},{u:"Ⴢ",l:"ⴢ"},{u:"Ⴣ",l:"ⴣ"},{u:"Ⴤ",l:"ⴤ"},{u:"Ⴥ",l:"ⴥ"},{u:"Ⴧ",l:"ⴧ"},{u:"Ⴭ",l:"ⴭ"},{u:"Ꭰ",l:"ꭰ"},{u:"Ꭱ",l:"ꭱ"},{u:"Ꭲ",l:"ꭲ"},{u:"Ꭳ",l:"ꭳ"},{u:"Ꭴ",l:"ꭴ"},{u:"Ꭵ",l:"ꭵ"},{u:"Ꭶ",l:"ꭶ"},{u:"Ꭷ",l:"ꭷ"},{u:"Ꭸ",l:"ꭸ"},{u:"Ꭹ",l:"ꭹ"},{u:"Ꭺ",l:"ꭺ"},{u:"Ꭻ",l:"ꭻ"},{u:"Ꭼ",l:"ꭼ"},{u:"Ꭽ",l:"ꭽ"},{u:"Ꭾ",l:"ꭾ"},{u:"Ꭿ",l:"ꭿ"},{u:"Ꮀ",l:"ꮀ"},{u:"Ꮁ",l:"ꮁ"},{u:"Ꮂ",l:"ꮂ"},{u:"Ꮃ",l:"ꮃ"},{u:"Ꮄ",l:"ꮄ"},{u:"Ꮅ",l:"ꮅ"},{u:"Ꮆ",l:"ꮆ"},{u:"Ꮇ",l:"ꮇ"},{u:"Ꮈ",l:"ꮈ"},{u:"Ꮉ",l:"ꮉ"},{u:"Ꮊ",l:"ꮊ"},{u:"Ꮋ",l:"ꮋ"},{u:"Ꮌ",l:"ꮌ"},{u:"Ꮍ",l:"ꮍ"},{u:"Ꮎ",l:"ꮎ"},{u:"Ꮏ",l:"ꮏ"},{u:"Ꮐ",l:"ꮐ"},{u:"Ꮑ",l:"ꮑ"},{u:"Ꮒ",l:"ꮒ"},{u:"Ꮓ",l:"ꮓ"},{u:"Ꮔ",l:"ꮔ"},{u:"Ꮕ",l:"ꮕ"},{u:"Ꮖ",l:"ꮖ"},{u:"Ꮗ",l:"ꮗ"},{u:"Ꮘ",l:"ꮘ"},{u:"Ꮙ",l:"ꮙ"},{u:"Ꮚ",l:"ꮚ"},{u:"Ꮛ",l:"ꮛ"},{u:"Ꮜ",l:"ꮜ"},{u:"Ꮝ",l:"ꮝ"},{u:"Ꮞ",l:"ꮞ"},{u:"Ꮟ",l:"ꮟ"},{u:"Ꮠ",l:"ꮠ"},{u:"Ꮡ",l:"ꮡ"},{u:"Ꮢ",l:"ꮢ"},{u:"Ꮣ",l:"ꮣ"},{u:"Ꮤ",l:"ꮤ"},{u:"Ꮥ",l:"ꮥ"},{u:"Ꮦ",l:"ꮦ"},{u:"Ꮧ",l:"ꮧ"},{u:"Ꮨ",l:"ꮨ"},{u:"Ꮩ",l:"ꮩ"},{u:"Ꮪ",l:"ꮪ"},{u:"Ꮫ",l:"ꮫ"},{u:"Ꮬ",l:"ꮬ"},{u:"Ꮭ",l:"ꮭ"},{u:"Ꮮ",l:"ꮮ"},{u:"Ꮯ",l:"ꮯ"},{u:"Ꮰ",l:"ꮰ"},{u:"Ꮱ",l:"ꮱ"},{u:"Ꮲ",l:"ꮲ"},{u:"Ꮳ",l:"ꮳ"},{u:"Ꮴ",l:"ꮴ"},{u:"Ꮵ",l:"ꮵ"},{u:"Ꮶ",l:"ꮶ"},{u:"Ꮷ",l:"ꮷ"},{u:"Ꮸ",l:"ꮸ"},{u:"Ꮹ",l:"ꮹ"},{u:"Ꮺ",l:"ꮺ"},{u:"Ꮻ",l:"ꮻ"},{u:"Ꮼ",l:"ꮼ"},{u:"Ꮽ",l:"ꮽ"},{u:"Ꮾ",l:"ꮾ"},{u:"Ꮿ",l:"ꮿ"},{u:"Ᏸ",l:"ᏸ"},{u:"Ᏹ",l:"ᏹ"},{u:"Ᏺ",l:"ᏺ"},{u:"Ᏻ",l:"ᏻ"},{u:"Ᏼ",l:"ᏼ"},{u:"Ᏽ",l:"ᏽ"},{u:"Ᲊ",l:"ᲊ"},{u:"Ა",l:"ა"},{u:"Ბ",l:"ბ"},{u:"Გ",l:"გ"},{u:"Დ",l:"დ"},{u:"Ე",l:"ე"},{u:"Ვ",l:"ვ"},{u:"Ზ",l:"ზ"},{u:"Თ",l:"თ"},{u:"Ი",l:"ი"},{u:"Კ",l:"კ"},{u:"Ლ",l:"ლ"},{u:"Მ",l:"მ"},{u:"Ნ",l:"ნ"},{u:"Ო",l:"ო"},{u:"Პ",l:"პ"},{u:"Ჟ",l:"ჟ"},{u:"Რ",l:"რ"},{u:"Ს",l:"ს"},{u:"Ტ",l:"ტ"},{u:"Უ",l:"უ"},{u:"Ფ",l:"ფ"},{u:"Ქ",l:"ქ"},{u:"Ღ",l:"ღ"},{u:"Ყ",l:"ყ"},{u:"Შ",l:"შ"},{u:"Ჩ",l:"ჩ"},{u:"Ც",l:"ც"},{u:"Ძ",l:"ძ"},{u:"Წ",l:"წ"},{u:"Ჭ",l:"ჭ"},{u:"Ხ",l:"ხ"},{u:"Ჯ",l:"ჯ"},{u:"Ჰ",l:"ჰ"},{u:"Ჱ",l:"ჱ"},{u:"Ჲ",l:"ჲ"},{u:"Ჳ",l:"ჳ"},{u:"Ჴ",l:"ჴ"},{u:"Ჵ",l:"ჵ"},{u:"Ჶ",l:"ჶ"},{u:"Ჷ",l:"ჷ"},{u:"Ჸ",l:"ჸ"},{u:"Ჹ",l:"ჹ"},{u:"Ჺ",l:"ჺ"},{u:"Ჽ",l:"ჽ"},{u:"Ჾ",l:"ჾ"},{u:"Ჿ",l:"ჿ"},{u:"Ḁ",l:"ḁ"},{u:"Ḃ",l:"ḃ"},{u:"Ḅ",l:"ḅ"},{u:"Ḇ",l:"ḇ"},{u:"Ḉ",l:"ḉ"},{u:"Ḋ",l:"ḋ"},{u:"Ḍ",l:"ḍ"},{u:"Ḏ",l:"ḏ"},{u:"Ḑ",l:"ḑ"},{u:"Ḓ",l:"ḓ"},{u:"Ḕ",l:"ḕ"},{u:"Ḗ",l:"ḗ"},{u:"Ḙ",l:"ḙ"},{u:"Ḛ",l:"ḛ"},{u:"Ḝ",l:"ḝ"},{u:"Ḟ",l:"ḟ"},{u:"Ḡ",l:"ḡ"},{u:"Ḣ",l:"ḣ"},{u:"Ḥ",l:"ḥ"},{u:"Ḧ",l:"ḧ"},{u:"Ḩ",l:"ḩ"},{u:"Ḫ",l:"ḫ"},{u:"Ḭ",l:"ḭ"},{u:"Ḯ",l:"ḯ"},{u:"Ḱ",l:"ḱ"},{u:"Ḳ",l:"ḳ"},{u:"Ḵ",l:"ḵ"},{u:"Ḷ",l:"ḷ"},{u:"Ḹ",l:"ḹ"},{u:"Ḻ",l:"ḻ"},{u:"Ḽ",l:"ḽ"},{u:"Ḿ",l:"ḿ"},{u:"Ṁ",l:"ṁ"},{u:"Ṃ",l:"ṃ"},{u:"Ṅ",l:"ṅ"},{u:"Ṇ",l:"ṇ"},{u:"Ṉ",l:"ṉ"},{u:"Ṋ",l:"ṋ"},{u:"Ṍ",l:"ṍ"},{u:"Ṏ",l:"ṏ"},{u:"Ṑ",l:"ṑ"},{u:"Ṓ",l:"ṓ"},{u:"Ṕ",l:"ṕ"},{u:"Ṗ",l:"ṗ"},{u:"Ṙ",l:"ṙ"},{u:"Ṛ",l:"ṛ"},{u:"Ṝ",l:"ṝ"},{u:"Ṟ",l:"ṟ"},{u:"Ṡ",l:"ṡ"},{u:"Ṣ",l:"ṣ"},{u:"Ṥ",l:"ṥ"},{u:"Ṧ",l:"ṧ"},{u:"Ṩ",l:"ṩ"},{u:"Ṫ",l:"ṫ"},{u:"Ṭ",l:"ṭ"},{u:"Ṯ",l:"ṯ"},{u:"Ṱ",l:"ṱ"},{u:"Ṳ",l:"ṳ"},{u:"Ṵ",l:"ṵ"},{u:"Ṷ",l:"ṷ"},{u:"Ṹ",l:"ṹ"},{u:"Ṻ",l:"ṻ"},{u:"Ṽ",l:"ṽ"},{u:"Ṿ",l:"ṿ"},{u:"Ẁ",l:"ẁ"},{u:"Ẃ",l:"ẃ"},{u:"Ẅ",l:"ẅ"},{u:"Ẇ",l:"ẇ"},{u:"Ẉ",l:"ẉ"},{u:"Ẋ",l:"ẋ"},{u:"Ẍ",l:"ẍ"},{u:"Ẏ",l:"ẏ"},{u:"Ẑ",l:"ẑ"},{u:"Ẓ",l:"ẓ"},{u:"Ẕ",l:"ẕ"},{u:"ẞ",l:"ß"},{u:"Ạ",l:"ạ"},{u:"Ả",l:"ả"},{u:"Ấ",l:"ấ"},{u:"Ầ",l:"ầ"},{u:"Ẩ",l:"ẩ"},{u:"Ẫ",l:"ẫ"},{u:"Ậ",l:"ậ"},{u:"Ắ",l:"ắ"},{u:"Ằ",l:"ằ"},{u:"Ẳ",l:"ẳ"},{u:"Ẵ",l:"ẵ"},{u:"Ặ",l:"ặ"},{u:"Ẹ",l:"ẹ"},{u:"Ẻ",l:"ẻ"},{u:"Ẽ",l:"ẽ"},{u:"Ế",l:"ế"},{u:"Ề",l:"ề"},{u:"Ể",l:"ể"},{u:"Ễ",l:"ễ"},{u:"Ệ",l:"ệ"},{u:"Ỉ",l:"ỉ"},{u:"Ị",l:"ị"},{u:"Ọ",l:"ọ"},{u:"Ỏ",l:"ỏ"},{u:"Ố",l:"ố"},{u:"Ồ",l:"ồ"},{u:"Ổ",l:"ổ"},{u:"Ỗ",l:"ỗ"},{u:"Ộ",l:"ộ"},{u:"Ớ",l:"ớ"},{u:"Ờ",l:"ờ"},{u:"Ở",l:"ở"},{u:"Ỡ",l:"ỡ"},{u:"Ợ",l:"ợ"},{u:"Ụ",l:"ụ"},{u:"Ủ",l:"ủ"},{u:"Ứ",l:"ứ"},{u:"Ừ",l:"ừ"},{u:"Ử",l:"ử"},{u:"Ữ",l:"ữ"},{u:"Ự",l:"ự"},{u:"Ỳ",l:"ỳ"},{u:"Ỵ",l:"ỵ"},{u:"Ỷ",l:"ỷ"},{u:"Ỹ",l:"ỹ"},{u:"Ỻ",l:"ỻ"},{u:"Ỽ",l:"ỽ"},{u:"Ỿ",l:"ỿ"},{u:"Ἀ",l:"ἀ"},{u:"Ἁ",l:"ἁ"},{u:"Ἂ",l:"ἂ"},{u:"Ἃ",l:"ἃ"},{u:"Ἄ",l:"ἄ"},{u:"Ἅ",l:"ἅ"},{u:"Ἆ",l:"ἆ"},{u:"Ἇ",l:"ἇ"},{u:"Ἐ",l:"ἐ"},{u:"Ἑ",l:"ἑ"},{u:"Ἒ",l:"ἒ"},{u:"Ἓ",l:"ἓ"},{u:"Ἔ",l:"ἔ"},{u:"Ἕ",l:"ἕ"},{u:"Ἠ",l:"ἠ"},{u:"Ἡ",l:"ἡ"},{u:"Ἢ",l:"ἢ"},{u:"Ἣ",l:"ἣ"},{u:"Ἤ",l:"ἤ"},{u:"Ἥ",l:"ἥ"},{u:"Ἦ",l:"ἦ"},{u:"Ἧ",l:"ἧ"},{u:"Ἰ",l:"ἰ"},{u:"Ἱ",l:"ἱ"},{u:"Ἲ",l:"ἲ"},{u:"Ἳ",l:"ἳ"},{u:"Ἴ",l:"ἴ"},{u:"Ἵ",l:"ἵ"},{u:"Ἶ",l:"ἶ"},{u:"Ἷ",l:"ἷ"},{u:"Ὀ",l:"ὀ"},{u:"Ὁ",l:"ὁ"},{u:"Ὂ",l:"ὂ"},{u:"Ὃ",l:"ὃ"},{u:"Ὄ",l:"ὄ"},{u:"Ὅ",l:"ὅ"},{u:"Ὑ",l:"ὑ"},{u:"Ὓ",l:"ὓ"},{u:"Ὕ",l:"ὕ"},{u:"Ὗ",l:"ὗ"},{u:"Ὠ",l:"ὠ"},{u:"Ὡ",l:"ὡ"},{u:"Ὢ",l:"ὢ"},{u:"Ὣ",l:"ὣ"},{u:"Ὤ",l:"ὤ"},{u:"Ὥ",l:"ὥ"},{u:"Ὦ",l:"ὦ"},{u:"Ὧ",l:"ὧ"},{u:"ᾈ",l:"ᾀ"},{u:"ᾉ",l:"ᾁ"},{u:"ᾊ",l:"ᾂ"},{u:"ᾋ",l:"ᾃ"},{u:"ᾌ",l:"ᾄ"},{u:"ᾍ",l:"ᾅ"},{u:"ᾎ",l:"ᾆ"},{u:"ᾏ",l:"ᾇ"},{u:"ᾘ",l:"ᾐ"},{u:"ᾙ",l:"ᾑ"},{u:"ᾚ",l:"ᾒ"},{u:"ᾛ",l:"ᾓ"},{u:"ᾜ",l:"ᾔ"},{u:"ᾝ",l:"ᾕ"},{u:"ᾞ",l:"ᾖ"},{u:"ᾟ",l:"ᾗ"},{u:"ᾨ",l:"ᾠ"},{u:"ᾩ",l:"ᾡ"},{u:"ᾪ",l:"ᾢ"},{u:"ᾫ",l:"ᾣ"},{u:"ᾬ",l:"ᾤ"},{u:"ᾭ",l:"ᾥ"},{u:"ᾮ",l:"ᾦ"},{u:"ᾯ",l:"ᾧ"},{u:"Ᾰ",l:"ᾰ"},{u:"Ᾱ",l:"ᾱ"},{u:"Ὰ",l:"ὰ"},{u:"Ά",l:"ά"},{u:"ᾼ",l:"ᾳ"},{u:"Ὲ",l:"ὲ"},{u:"Έ",l:"έ"},{u:"Ὴ",l:"ὴ"},{u:"Ή",l:"ή"},{u:"ῌ",l:"ῃ"},{u:"Ῐ",l:"ῐ"},{u:"Ῑ",l:"ῑ"},{u:"Ὶ",l:"ὶ"},{u:"Ί",l:"ί"},{u:"Ῠ",l:"ῠ"},{u:"Ῡ",l:"ῡ"},{u:"Ὺ",l:"ὺ"},{u:"Ύ",l:"ύ"},{u:"Ῥ",l:"ῥ"},{u:"Ὸ",l:"ὸ"},{u:"Ό",l:"ό"},{u:"Ὼ",l:"ὼ"},{u:"Ώ",l:"ώ"},{u:"ῼ",l:"ῳ"},{u:"Ω",l:"ω"},{u:"K",l:"k"},{u:"Å",l:"å"},{u:"Ⅎ",l:"ⅎ"},{u:"Ⅰ",l:"ⅰ"},{u:"Ⅱ",l:"ⅱ"},{u:"Ⅲ",l:"ⅲ"},{u:"Ⅳ",l:"ⅳ"},{u:"Ⅴ",l:"ⅴ"},{u:"Ⅵ",l:"ⅵ"},{u:"Ⅶ",l:"ⅶ"},{u:"Ⅷ",l:"ⅷ"},{u:"Ⅸ",l:"ⅸ"},{u:"Ⅹ",l:"ⅹ"},{u:"Ⅺ",l:"ⅺ"},{u:"Ⅻ",l:"ⅻ"},{u:"Ⅼ",l:"ⅼ"},{u:"Ⅽ",l:"ⅽ"},{u:"Ⅾ",l:"ⅾ"},{u:"Ⅿ",l:"ⅿ"},{u:"Ↄ",l:"ↄ"},{u:"Ⓐ",l:"ⓐ"},{u:"Ⓑ",l:"ⓑ"},{u:"Ⓒ",l:"ⓒ"},{u:"Ⓓ",l:"ⓓ"},{u:"Ⓔ",l:"ⓔ"},{u:"Ⓕ",l:"ⓕ"},{u:"Ⓖ",l:"ⓖ"},{u:"Ⓗ",l:"ⓗ"},{u:"Ⓘ",l:"ⓘ"},{u:"Ⓙ",l:"ⓙ"},{u:"Ⓚ",l:"ⓚ"},{u:"Ⓛ",l:"ⓛ"},{u:"Ⓜ",l:"ⓜ"},{u:"Ⓝ",l:"ⓝ"},{u:"Ⓞ",l:"ⓞ"},{u:"Ⓟ",l:"ⓟ"},{u:"Ⓠ",l:"ⓠ"},{u:"Ⓡ",l:"ⓡ"},{u:"Ⓢ",l:"ⓢ"},{u:"Ⓣ",l:"ⓣ"},{u:"Ⓤ",l:"ⓤ"},{u:"Ⓥ",l:"ⓥ"},{u:"Ⓦ",l:"ⓦ"},{u:"Ⓧ",l:"ⓧ"},{u:"Ⓨ",l:"ⓨ"},{u:"Ⓩ",l:"ⓩ"},{u:"Ⰰ",l:"ⰰ"},{u:"Ⰱ",l:"ⰱ"},{u:"Ⰲ",l:"ⰲ"},{u:"Ⰳ",l:"ⰳ"},{u:"Ⰴ",l:"ⰴ"},{u:"Ⰵ",l:"ⰵ"},{u:"Ⰶ",l:"ⰶ"},{u:"Ⰷ",l:"ⰷ"},{u:"Ⰸ",l:"ⰸ"},{u:"Ⰹ",l:"ⰹ"},{u:"Ⰺ",l:"ⰺ"},{u:"Ⰻ",l:"ⰻ"},{u:"Ⰼ",l:"ⰼ"},{u:"Ⰽ",l:"ⰽ"},{u:"Ⰾ",l:"ⰾ"},{u:"Ⰿ",l:"ⰿ"},{u:"Ⱀ",l:"ⱀ"},{u:"Ⱁ",l:"ⱁ"},{u:"Ⱂ",l:"ⱂ"},{u:"Ⱃ",l:"ⱃ"},{u:"Ⱄ",l:"ⱄ"},{u:"Ⱅ",l:"ⱅ"},{u:"Ⱆ",l:"ⱆ"},{u:"Ⱇ",l:"ⱇ"},{u:"Ⱈ",l:"ⱈ"},{u:"Ⱉ",l:"ⱉ"},{u:"Ⱊ",l:"ⱊ"},{u:"Ⱋ",l:"ⱋ"},{u:"Ⱌ",l:"ⱌ"},{u:"Ⱍ",l:"ⱍ"},{u:"Ⱎ",l:"ⱎ"},{u:"Ⱏ",l:"ⱏ"},{u:"Ⱐ",l:"ⱐ"},{u:"Ⱑ",l:"ⱑ"},{u:"Ⱒ",l:"ⱒ"},{u:"Ⱓ",l:"ⱓ"},{u:"Ⱔ",l:"ⱔ"},{u:"Ⱕ",l:"ⱕ"},{u:"Ⱖ",l:"ⱖ"},{u:"Ⱗ",l:"ⱗ"},{u:"Ⱘ",l:"ⱘ"},{u:"Ⱙ",l:"ⱙ"},{u:"Ⱚ",l:"ⱚ"},{u:"Ⱛ",l:"ⱛ"},{u:"Ⱜ",l:"ⱜ"},{u:"Ⱝ",l:"ⱝ"},{u:"Ⱞ",l:"ⱞ"},{u:"Ⱟ",l:"ⱟ"},{u:"Ⱡ",l:"ⱡ"},{u:"Ɫ",l:"ɫ"},{u:"Ᵽ",l:"ᵽ"},{u:"Ɽ",l:"ɽ"},{u:"Ⱨ",l:"ⱨ"},{u:"Ⱪ",l:"ⱪ"},{u:"Ⱬ",l:"ⱬ"},{u:"Ɑ",l:"ɑ"},{u:"Ɱ",l:"ɱ"},{u:"Ɐ",l:"ɐ"},{u:"Ɒ",l:"ɒ"},{u:"Ⱳ",l:"ⱳ"},{u:"Ⱶ",l:"ⱶ"},{u:"Ȿ",l:"ȿ"},{u:"Ɀ",l:"ɀ"},{u:"Ⲁ",l:"ⲁ"},{u:"Ⲃ",l:"ⲃ"},{u:"Ⲅ",l:"ⲅ"},{u:"Ⲇ",l:"ⲇ"},{u:"Ⲉ",l:"ⲉ"},{u:"Ⲋ",l:"ⲋ"},{u:"Ⲍ",l:"ⲍ"},{u:"Ⲏ",l:"ⲏ"},{u:"Ⲑ",l:"ⲑ"},{u:"Ⲓ",l:"ⲓ"},{u:"Ⲕ",l:"ⲕ"},{u:"Ⲗ",l:"ⲗ"},{u:"Ⲙ",l:"ⲙ"},{u:"Ⲛ",l:"ⲛ"},{u:"Ⲝ",l:"ⲝ"},{u:"Ⲟ",l:"ⲟ"},{u:"Ⲡ",l:"ⲡ"},{u:"Ⲣ",l:"ⲣ"},{u:"Ⲥ",l:"ⲥ"},{u:"Ⲧ",l:"ⲧ"},{u:"Ⲩ",l:"ⲩ"},{u:"Ⲫ",l:"ⲫ"},{u:"Ⲭ",l:"ⲭ"},{u:"Ⲯ",l:"ⲯ"},{u:"Ⲱ",l:"ⲱ"},{u:"Ⲳ",l:"ⲳ"},{u:"Ⲵ",l:"ⲵ"},{u:"Ⲷ",l:"ⲷ"},{u:"Ⲹ",l:"ⲹ"},{u:"Ⲻ",l:"ⲻ"},{u:"Ⲽ",l:"ⲽ"},{u:"Ⲿ",l:"ⲿ"},{u:"Ⳁ",l:"ⳁ"},{u:"Ⳃ",l:"ⳃ"},{u:"Ⳅ",l:"ⳅ"},{u:"Ⳇ",l:"ⳇ"},{u:"Ⳉ",l:"ⳉ"},{u:"Ⳋ",l:"ⳋ"},{u:"Ⳍ",l:"ⳍ"},{u:"Ⳏ",l:"ⳏ"},{u:"Ⳑ",l:"ⳑ"},{u:"Ⳓ",l:"ⳓ"},{u:"Ⳕ",l:"ⳕ"},{u:"Ⳗ",l:"ⳗ"},{u:"Ⳙ",l:"ⳙ"},{u:"Ⳛ",l:"ⳛ"},{u:"Ⳝ",l:"ⳝ"},{u:"Ⳟ",l:"ⳟ"},{u:"Ⳡ",l:"ⳡ"},{u:"Ⳣ",l:"ⳣ"},{u:"Ⳬ",l:"ⳬ"},{u:"Ⳮ",l:"ⳮ"},{u:"Ⳳ",l:"ⳳ"},{u:"Ꙁ",l:"ꙁ"},{u:"Ꙃ",l:"ꙃ"},{u:"Ꙅ",l:"ꙅ"},{u:"Ꙇ",l:"ꙇ"},{u:"Ꙉ",l:"ꙉ"},{u:"Ꙋ",l:"ꙋ"},{u:"Ꙍ",l:"ꙍ"},{u:"Ꙏ",l:"ꙏ"},{u:"Ꙑ",l:"ꙑ"},{u:"Ꙓ",l:"ꙓ"},{u:"Ꙕ",l:"ꙕ"},{u:"Ꙗ",l:"ꙗ"},{u:"Ꙙ",l:"ꙙ"},{u:"Ꙛ",l:"ꙛ"},{u:"Ꙝ",l:"ꙝ"},{u:"Ꙟ",l:"ꙟ"},{u:"Ꙡ",l:"ꙡ"},{u:"Ꙣ",l:"ꙣ"},{u:"Ꙥ",l:"ꙥ"},{u:"Ꙧ",l:"ꙧ"},{u:"Ꙩ",l:"ꙩ"},{u:"Ꙫ",l:"ꙫ"},{u:"Ꙭ",l:"ꙭ"},{u:"Ꚁ",l:"ꚁ"},{u:"Ꚃ",l:"ꚃ"},{u:"Ꚅ",l:"ꚅ"},{u:"Ꚇ",l:"ꚇ"},{u:"Ꚉ",l:"ꚉ"},{u:"Ꚋ",l:"ꚋ"},{u:"Ꚍ",l:"ꚍ"},{u:"Ꚏ",l:"ꚏ"},{u:"Ꚑ",l:"ꚑ"},{u:"Ꚓ",l:"ꚓ"},{u:"Ꚕ",l:"ꚕ"},{u:"Ꚗ",l:"ꚗ"},{u:"Ꚙ",l:"ꚙ"},{u:"Ꚛ",l:"ꚛ"},{u:"Ꜣ",l:"ꜣ"},{u:"Ꜥ",l:"ꜥ"},{u:"Ꜧ",l:"ꜧ"},{u:"Ꜩ",l:"ꜩ"},{u:"Ꜫ",l:"ꜫ"},{u:"Ꜭ",l:"ꜭ"},{u:"Ꜯ",l:"ꜯ"},{u:"Ꜳ",l:"ꜳ"},{u:"Ꜵ",l:"ꜵ"},{u:"Ꜷ",l:"ꜷ"},{u:"Ꜹ",l:"ꜹ"},{u:"Ꜻ",l:"ꜻ"},{u:"Ꜽ",l:"ꜽ"},{u:"Ꜿ",l:"ꜿ"},{u:"Ꝁ",l:"ꝁ"},{u:"Ꝃ",l:"ꝃ"},{u:"Ꝅ",l:"ꝅ"},{u:"Ꝇ",l:"ꝇ"},{u:"Ꝉ",l:"ꝉ"},{u:"Ꝋ",l:"ꝋ"},{u:"Ꝍ",l:"ꝍ"},{u:"Ꝏ",l:"ꝏ"},{u:"Ꝑ",l:"ꝑ"},{u:"Ꝓ",l:"ꝓ"},{u:"Ꝕ",l:"ꝕ"},{u:"Ꝗ",l:"ꝗ"},{u:"Ꝙ",l:"ꝙ"},{u:"Ꝛ",l:"ꝛ"},{u:"Ꝝ",l:"ꝝ"},{u:"Ꝟ",l:"ꝟ"},{u:"Ꝡ",l:"ꝡ"},{u:"Ꝣ",l:"ꝣ"},{u:"Ꝥ",l:"ꝥ"},{u:"Ꝧ",l:"ꝧ"},{u:"Ꝩ",l:"ꝩ"},{u:"Ꝫ",l:"ꝫ"},{u:"Ꝭ",l:"ꝭ"},{u:"Ꝯ",l:"ꝯ"},{u:"Ꝺ",l:"ꝺ"},{u:"Ꝼ",l:"ꝼ"},{u:"Ᵹ",l:"ᵹ"},{u:"Ꝿ",l:"ꝿ"},{u:"Ꞁ",l:"ꞁ"},{u:"Ꞃ",l:"ꞃ"},{u:"Ꞅ",l:"ꞅ"},{u:"Ꞇ",l:"ꞇ"},{u:"Ꞌ",l:"ꞌ"},{u:"Ɥ",l:"ɥ"},{u:"Ꞑ",l:"ꞑ"},{u:"Ꞓ",l:"ꞓ"},{u:"Ꞗ",l:"ꞗ"},{u:"Ꞙ",l:"ꞙ"},{u:"Ꞛ",l:"ꞛ"},{u:"Ꞝ",l:"ꞝ"},{u:"Ꞟ",l:"ꞟ"},{u:"Ꞡ",l:"ꞡ"},{u:"Ꞣ",l:"ꞣ"},{u:"Ꞥ",l:"ꞥ"},{u:"Ꞧ",l:"ꞧ"},{u:"Ꞩ",l:"ꞩ"},{u:"Ɦ",l:"ɦ"},{u:"Ɜ",l:"ɜ"},{u:"Ɡ",l:"ɡ"},{u:"Ɬ",l:"ɬ"},{u:"Ɪ",l:"ɪ"},{u:"Ʞ",l:"ʞ"},{u:"Ʇ",l:"ʇ"},{u:"Ʝ",l:"ʝ"},{u:"Ꭓ",l:"ꭓ"},{u:"Ꞵ",l:"ꞵ"},{u:"Ꞷ",l:"ꞷ"},{u:"Ꞹ",l:"ꞹ"},{u:"Ꞻ",l:"ꞻ"},{u:"Ꞽ",l:"ꞽ"},{u:"Ꞿ",l:"ꞿ"},{u:"Ꟁ",l:"ꟁ"},{u:"Ꟃ",l:"ꟃ"},{u:"Ꞔ",l:"ꞔ"},{u:"Ʂ",l:"ʂ"},{u:"Ᶎ",l:"ᶎ"},{u:"Ꟈ",l:"ꟈ"},{u:"Ꟊ",l:"ꟊ"},{u:"Ɤ",l:"ɤ"},{u:"Ꟍ",l:"ꟍ"},{u:"Ꟑ",l:"ꟑ"},{u:"Ꟗ",l:"ꟗ"},{u:"Ꟙ",l:"ꟙ"},{u:"Ꟛ",l:"ꟛ"},{u:"Ƛ",l:"ƛ"},{u:"Ꟶ",l:"ꟶ"},{u:"A",l:"a"},{u:"B",l:"b"},{u:"C",l:"c"},{u:"D",l:"d"},{u:"E",l:"e"},{u:"F",l:"f"},{u:"G",l:"g"},{u:"H",l:"h"},{u:"I",l:"i"},{u:"J",l:"j"},{u:"K",l:"k"},{u:"L",l:"l"},{u:"M",l:"m"},{u:"N",l:"n"},{u:"O",l:"o"},{u:"P",l:"p"},{u:"Q",l:"q"},{u:"R",l:"r"},{u:"S",l:"s"},{u:"T",l:"t"},{u:"U",l:"u"},{u:"V",l:"v"},{u:"W",l:"w"},{u:"X",l:"x"},{u:"Y",l:"y"},{u:"Z",l:"z"},{u:"𐐀",l:"𐐨"},{u:"𐐁",l:"𐐩"},{u:"𐐂",l:"𐐪"},{u:"𐐃",l:"𐐫"},{u:"𐐄",l:"𐐬"},{u:"𐐅",l:"𐐭"},{u:"𐐆",l:"𐐮"},{u:"𐐇",l:"𐐯"},{u:"𐐈",l:"𐐰"},{u:"𐐉",l:"𐐱"},{u:"𐐊",l:"𐐲"},{u:"𐐋",l:"𐐳"},{u:"𐐌",l:"𐐴"},{u:"𐐍",l:"𐐵"},{u:"𐐎",l:"𐐶"},{u:"𐐏",l:"𐐷"},{u:"𐐐",l:"𐐸"},{u:"𐐑",l:"𐐹"},{u:"𐐒",l:"𐐺"},{u:"𐐓",l:"𐐻"},{u:"𐐔",l:"𐐼"},{u:"𐐕",l:"𐐽"},{u:"𐐖",l:"𐐾"},{u:"𐐗",l:"𐐿"},{u:"𐐘",l:"𐑀"},{u:"𐐙",l:"𐑁"},{u:"𐐚",l:"𐑂"},{u:"𐐛",l:"𐑃"},{u:"𐐜",l:"𐑄"},{u:"𐐝",l:"𐑅"},{u:"𐐞",l:"𐑆"},{u:"𐐟",l:"𐑇"},{u:"𐐠",l:"𐑈"},{u:"𐐡",l:"𐑉"},{u:"𐐢",l:"𐑊"},{u:"𐐣",l:"𐑋"},{u:"𐐤",l:"𐑌"},{u:"𐐥",l:"𐑍"},{u:"𐐦",l:"𐑎"},{u:"𐐧",l:"𐑏"},{u:"𐒰",l:"𐓘"},{u:"𐒱",l:"𐓙"},{u:"𐒲",l:"𐓚"},{u:"𐒳",l:"𐓛"},{u:"𐒴",l:"𐓜"},{u:"𐒵",l:"𐓝"},{u:"𐒶",l:"𐓞"},{u:"𐒷",l:"𐓟"},{u:"𐒸",l:"𐓠"},{u:"𐒹",l:"𐓡"},{u:"𐒺",l:"𐓢"},{u:"𐒻",l:"𐓣"},{u:"𐒼",l:"𐓤"},{u:"𐒽",l:"𐓥"},{u:"𐒾",l:"𐓦"},{u:"𐒿",l:"𐓧"},{u:"𐓀",l:"𐓨"},{u:"𐓁",l:"𐓩"},{u:"𐓂",l:"𐓪"},{u:"𐓃",l:"𐓫"},{u:"𐓄",l:"𐓬"},{u:"𐓅",l:"𐓭"},{u:"𐓆",l:"𐓮"},{u:"𐓇",l:"𐓯"},{u:"𐓈",l:"𐓰"},{u:"𐓉",l:"𐓱"},{u:"𐓊",l:"𐓲"},{u:"𐓋",l:"𐓳"},{u:"𐓌",l:"𐓴"},{u:"𐓍",l:"𐓵"},{u:"𐓎",l:"𐓶"},{u:"𐓏",l:"𐓷"},{u:"𐓐",l:"𐓸"},{u:"𐓑",l:"𐓹"},{u:"𐓒",l:"𐓺"},{u:"𐓓",l:"𐓻"},{u:"𐕰",l:"𐖗"},{u:"𐕱",l:"𐖘"},{u:"𐕲",l:"𐖙"},{u:"𐕳",l:"𐖚"},{u:"𐕴",l:"𐖛"},{u:"𐕵",l:"𐖜"},{u:"𐕶",l:"𐖝"},{u:"𐕷",l:"𐖞"},{u:"𐕸",l:"𐖟"},{u:"𐕹",l:"𐖠"},{u:"𐕺",l:"𐖡"},{u:"𐕼",l:"𐖣"},{u:"𐕽",l:"𐖤"},{u:"𐕾",l:"𐖥"},{u:"𐕿",l:"𐖦"},{u:"𐖀",l:"𐖧"},{u:"𐖁",l:"𐖨"},{u:"𐖂",l:"𐖩"},{u:"𐖃",l:"𐖪"},{u:"𐖄",l:"𐖫"},{u:"𐖅",l:"𐖬"},{u:"𐖆",l:"𐖭"},{u:"𐖇",l:"𐖮"},{u:"𐖈",l:"𐖯"},{u:"𐖉",l:"𐖰"},{u:"𐖊",l:"𐖱"},{u:"𐖌",l:"𐖳"},{u:"𐖍",l:"𐖴"},{u:"𐖎",l:"𐖵"},{u:"𐖏",l:"𐖶"},{u:"𐖐",l:"𐖷"},{u:"𐖑",l:"𐖸"},{u:"𐖒",l:"𐖹"},{u:"𐖔",l:"𐖻"},{u:"𐖕",l:"𐖼"},{u:"𐲀",l:"𐳀"},{u:"𐲁",l:"𐳁"},{u:"𐲂",l:"𐳂"},{u:"𐲃",l:"𐳃"},{u:"𐲄",l:"𐳄"},{u:"𐲅",l:"𐳅"},{u:"𐲆",l:"𐳆"},{u:"𐲇",l:"𐳇"},{u:"𐲈",l:"𐳈"},{u:"𐲉",l:"𐳉"},{u:"𐲊",l:"𐳊"},{u:"𐲋",l:"𐳋"},{u:"𐲌",l:"𐳌"},{u:"𐲍",l:"𐳍"},{u:"𐲎",l:"𐳎"},{u:"𐲏",l:"𐳏"},{u:"𐲐",l:"𐳐"},{u:"𐲑",l:"𐳑"},{u:"𐲒",l:"𐳒"},{u:"𐲓",l:"𐳓"},{u:"𐲔",l:"𐳔"},{u:"𐲕",l:"𐳕"},{u:"𐲖",l:"𐳖"},{u:"𐲗",l:"𐳗"},{u:"𐲘",l:"𐳘"},{u:"𐲙",l:"𐳙"},{u:"𐲚",l:"𐳚"},{u:"𐲛",l:"𐳛"},{u:"𐲜",l:"𐳜"},{u:"𐲝",l:"𐳝"},{u:"𐲞",l:"𐳞"},{u:"𐲟",l:"𐳟"},{u:"𐲠",l:"𐳠"},{u:"𐲡",l:"𐳡"},{u:"𐲢",l:"𐳢"},{u:"𐲣",l:"𐳣"},{u:"𐲤",l:"𐳤"},{u:"𐲥",l:"𐳥"},{u:"𐲦",l:"𐳦"},{u:"𐲧",l:"𐳧"},{u:"𐲨",l:"𐳨"},{u:"𐲩",l:"𐳩"},{u:"𐲪",l:"𐳪"},{u:"𐲫",l:"𐳫"},{u:"𐲬",l:"𐳬"},{u:"𐲭",l:"𐳭"},{u:"𐲮",l:"𐳮"},{u:"𐲯",l:"𐳯"},{u:"𐲰",l:"𐳰"},{u:"𐲱",l:"𐳱"},{u:"𐲲",l:"𐳲"},{u:"𐵐",l:"𐵰"},{u:"𐵑",l:"𐵱"},{u:"𐵒",l:"𐵲"},{u:"𐵓",l:"𐵳"},{u:"𐵔",l:"𐵴"},{u:"𐵕",l:"𐵵"},{u:"𐵖",l:"𐵶"},{u:"𐵗",l:"𐵷"},{u:"𐵘",l:"𐵸"},{u:"𐵙",l:"𐵹"},{u:"𐵚",l:"𐵺"},{u:"𐵛",l:"𐵻"},{u:"𐵜",l:"𐵼"},{u:"𐵝",l:"𐵽"},{u:"𐵞",l:"𐵾"},{u:"𐵟",l:"𐵿"},{u:"𐵠",l:"𐶀"},{u:"𐵡",l:"𐶁"},{u:"𐵢",l:"𐶂"},{u:"𐵣",l:"𐶃"},{u:"𐵤",l:"𐶄"},{u:"𐵥",l:"𐶅"},{u:"𑢠",l:"𑣀"},{u:"𑢡",l:"𑣁"},{u:"𑢢",l:"𑣂"},{u:"𑢣",l:"𑣃"},{u:"𑢤",l:"𑣄"},{u:"𑢥",l:"𑣅"},{u:"𑢦",l:"𑣆"},{u:"𑢧",l:"𑣇"},{u:"𑢨",l:"𑣈"},{u:"𑢩",l:"𑣉"},{u:"𑢪",l:"𑣊"},{u:"𑢫",l:"𑣋"},{u:"𑢬",l:"𑣌"},{u:"𑢭",l:"𑣍"},{u:"𑢮",l:"𑣎"},{u:"𑢯",l:"𑣏"},{u:"𑢰",l:"𑣐"},{u:"𑢱",l:"𑣑"},{u:"𑢲",l:"𑣒"},{u:"𑢳",l:"𑣓"},{u:"𑢴",l:"𑣔"},{u:"𑢵",l:"𑣕"},{u:"𑢶",l:"𑣖"},{u:"𑢷",l:"𑣗"},{u:"𑢸",l:"𑣘"},{u:"𑢹",l:"𑣙"},{u:"𑢺",l:"𑣚"},{u:"𑢻",l:"𑣛"},{u:"𑢼",l:"𑣜"},{u:"𑢽",l:"𑣝"},{u:"𑢾",l:"𑣞"},{u:"𑢿",l:"𑣟"},{u:"𖹀",l:"𖹠"},{u:"𖹁",l:"𖹡"},{u:"𖹂",l:"𖹢"},{u:"𖹃",l:"𖹣"},{u:"𖹄",l:"𖹤"},{u:"𖹅",l:"𖹥"},{u:"𖹆",l:"𖹦"},{u:"𖹇",l:"𖹧"},{u:"𖹈",l:"𖹨"},{u:"𖹉",l:"𖹩"},{u:"𖹊",l:"𖹪"},{u:"𖹋",l:"𖹫"},{u:"𖹌",l:"𖹬"},{u:"𖹍",l:"𖹭"},{u:"𖹎",l:"𖹮"},{u:"𖹏",l:"𖹯"},{u:"𖹐",l:"𖹰"},{u:"𖹑",l:"𖹱"},{u:"𖹒",l:"𖹲"},{u:"𖹓",l:"𖹳"},{u:"𖹔",l:"𖹴"},{u:"𖹕",l:"𖹵"},{u:"𖹖",l:"𖹶"},{u:"𖹗",l:"𖹷"},{u:"𖹘",l:"𖹸"},{u:"𖹙",l:"𖹹"},{u:"𖹚",l:"𖹺"},{u:"𖹛",l:"𖹻"},{u:"𖹜",l:"𖹼"},{u:"𖹝",l:"𖹽"},{u:"𖹞",l:"𖹾"},{u:"𖹟",l:"𖹿"},{u:"𞤀",l:"𞤢"},{u:"𞤁",l:"𞤣"},{u:"𞤂",l:"𞤤"},{u:"𞤃",l:"𞤥"},{u:"𞤄",l:"𞤦"},{u:"𞤅",l:"𞤧"},{u:"𞤆",l:"𞤨"},{u:"𞤇",l:"𞤩"},{u:"𞤈",l:"𞤪"},{u:"𞤉",l:"𞤫"},{u:"𞤊",l:"𞤬"},{u:"𞤋",l:"𞤭"},{u:"𞤌",l:"𞤮"},{u:"𞤍",l:"𞤯"},{u:"𞤎",l:"𞤰"},{u:"𞤏",l:"𞤱"},{u:"𞤐",l:"𞤲"},{u:"𞤑",l:"𞤳"},{u:"𞤒",l:"𞤴"},{u:"𞤓",l:"𞤵"},{u:"𞤔",l:"𞤶"},{u:"𞤕",l:"𞤷"},{u:"𞤖",l:"𞤸"},{u:"𞤗",l:"𞤹"},{u:"𞤘",l:"𞤺"},{u:"𞤙",l:"𞤻"},{u:"𞤚",l:"𞤼"},{u:"𞤛",l:"𞤽"},{u:"𞤜",l:"𞤾"},{u:"𞤝",l:"𞤿"},{u:"𞤞",l:"𞥀"},{u:"𞤟",l:"𞥁"},{u:"𞤠",l:"𞥂"},{u:"𞤡",l:"𞥃"}] + +# Tellraw +tellraw @a ["﹌ ",{"text":"StringLib >> ","color":"#99EAD6"},"Installed StringLib (v0.2.0)"] +tellraw @a ["﹌ ",{"text":"StringLib >> ","color":"#99EAD6"},{"text":"Run:","color":"white"},{"text":"/function stringlib:debug/toggle_load_message","bold":true,"color":"yellow","hover_event":{"action":"show_text","value":["/function stringlib:debug/toggle_load_message"]}}," to toggle the load message"] +execute if score #StringLib.ShowLoadMessage StringLib matches 1 run tellraw @a "" \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/load.mcfunction b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/load.mcfunction new file mode 100644 index 0000000..cf76558 --- /dev/null +++ b/dataLib-MOD/src/main/resources/data/stringlib/function/zprivate/load.mcfunction @@ -0,0 +1,6 @@ +# Init +scoreboard objectives add StringLib dummy +execute unless score #StringLib.Init StringLib matches 1 run function stringlib:zprivate/init + +# Tellraw +execute if score #StringLib.ShowLoadMessage StringLib matches 1 run tellraw @a ["﹌ ",{"text":"StringLib >> ","color":"#99EAD6"},{"text":"Made by CMDred","hover_event":{"action":"show_text","value":[{"text":"YouTube: ","color":"dark_aqua"},{"text":"CMDred","color":"white"}]}},"\n﹌ ",{"text":"StringLib >> ","color":"#99EAD6"},"Get the latest updates: ",{"text":"Modrinth","color":"#5491F7","hover_event":{"action":"show_text","value":["Open page"]}},", ",{"text":"GitHub","color":"#5491F7","hover_event":{"action":"show_text","value":["Open page"]}}] diff --git a/dataLib-MOD/src/main/resources/fabric.mod.json b/dataLib-MOD/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..e9eceef --- /dev/null +++ b/dataLib-MOD/src/main/resources/fabric.mod.json @@ -0,0 +1,17 @@ +{ + "schemaVersion": 1, + "id": "datalib", + "version": "6.0.0", + "icon": "pack.png", + "environment": "*", + "entrypoints": { + "main": [ + "net.datalib.Main" + ] + }, + "depends": { + "minecraft": "26.2", + "java": ">=25", + "fabric-api": "*" + } +} \ No newline at end of file diff --git a/dataLib-MOD/src/main/resources/pack.mcmeta b/dataLib-MOD/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..c7cdf2f --- /dev/null +++ b/dataLib-MOD/src/main/resources/pack.mcmeta @@ -0,0 +1,61 @@ +{ + "pack": { + "description": [ + { + "text": "D.L.", + "color": "#00ccff", + "bold": true, + "italic": false, + "extra": [ + { + "text": " | ", + "color": "#ff0000", + "bold": false, + "italic": false, + "underlined": false, + "strikethrough": false, + "obfuscated": false + }, + { + "text": "by runtoolkit", + "color": "#00ff33", + "bold": false, + "italic": false, + "extra": [ + " ", + { + "text": "| ", + "color": "#ff0000", + "bold": false, + "italic": false, + "underlined": false, + "strikethrough": false, + "obfuscated": false + }, + { + "text": "26.2", + "color": "#e3ff57", + "bold": false, + "italic": false, + "underlined": true + } + ] + } + ] + }, + { + "text": " | v6.0.0", + "color": "#ffaa00", + "bold": false, + "italic": false + } + ], + "min_format": [107, 88], + "max_format": [107, 88] + }, + "features": { + "enabled": [ + "minecraft:vanilla" + ] + } +} diff --git a/dataLib-MOD/src/main/resources/pack.png b/dataLib-MOD/src/main/resources/pack.png new file mode 100644 index 0000000..89e2d38 Binary files /dev/null and b/dataLib-MOD/src/main/resources/pack.png differ