From f71802e860851a548973b5dc679c689655636045 Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:33:07 +0300 Subject: [PATCH 01/11] Add function command for permission checks --- .../dataLib/data/datalib/function/api/cmd/function.mcfunction | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 datapacks/dataLib/data/datalib/function/api/cmd/function.mcfunction diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/function.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/function.mcfunction new file mode 100644 index 00000000..3b6201b1 --- /dev/null +++ b/datapacks/dataLib/data/datalib/function/api/cmd/function.mcfunction @@ -0,0 +1,3 @@ +execute unless function datalib:debug/tools/utils/check_all unless entity @s[tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + +$execute as @a[limit=1,name="(target)] at @a[name=$(target)] run function $(func) with storage datalib:input {} From 012768c59a11d724b9be288793eceeef42c9840f Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:37:04 +0300 Subject: [PATCH 02/11] Implement datapack control commands Add commands to enable, disable, and list datapacks based on input actions. --- .../dataLib/data/datalib/function/api/cmd/datapack.mcfunction | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction new file mode 100644 index 00000000..0ea8dd0d --- /dev/null +++ b/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction @@ -0,0 +1,3 @@ +$execute if data storage datalib:input {action:"disable"} run datapack disable $(pack) +$execute if data storage datalib:input {action:"enable"} run datapack enable $(pack) +$execute if data storage datalib:input {action:"list"} run function datalib:api/cmd/datapack_list From df903bd97d876573d85691d3cb577133e5e92fd6 Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:38:46 +0300 Subject: [PATCH 03/11] Add permission checks to datapack command --- .../dataLib/data/datalib/function/api/cmd/datapack.mcfunction | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction index 0ea8dd0d..704ad2e0 100644 --- a/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction +++ b/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction @@ -1,3 +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[tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + $execute if data storage datalib:input {action:"disable"} run datapack disable $(pack) $execute if data storage datalib:input {action:"enable"} run datapack enable $(pack) $execute if data storage datalib:input {action:"list"} run function datalib:api/cmd/datapack_list From eec67733073c218c7e9d21cb0cce857adfc604dc Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:40:02 +0300 Subject: [PATCH 04/11] Create datapack_list.mcfunction --- .../data/datalib/function/api/cmd/datapack_list.mcfunction | 1 + 1 file changed, 1 insertion(+) create mode 100644 datapacks/dataLib/data/datalib/function/api/cmd/datapack_list.mcfunction diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/datapack_list.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/datapack_list.mcfunction new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/datapacks/dataLib/data/datalib/function/api/cmd/datapack_list.mcfunction @@ -0,0 +1 @@ + From 65e3b92e2abe160636f58d1903a07637168f52a1 Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:56:33 +0300 Subject: [PATCH 05/11] Delete datapacks/dataLib/data/datalib/function/api/cmd/datapack_list.mcfunction --- .../data/datalib/function/api/cmd/datapack_list.mcfunction | 1 - 1 file changed, 1 deletion(-) delete mode 100644 datapacks/dataLib/data/datalib/function/api/cmd/datapack_list.mcfunction diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/datapack_list.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/datapack_list.mcfunction deleted file mode 100644 index 8b137891..00000000 --- a/datapacks/dataLib/data/datalib/function/api/cmd/datapack_list.mcfunction +++ /dev/null @@ -1 +0,0 @@ - From de47d140fc0f221e73f41faca3a816981fb139da Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:56:57 +0300 Subject: [PATCH 06/11] Remove datapack list command from api function Removed the command to list datapacks from the function. --- .../dataLib/data/datalib/function/api/cmd/datapack.mcfunction | 1 - 1 file changed, 1 deletion(-) diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction index 704ad2e0..c20c87da 100644 --- a/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction +++ b/datapacks/dataLib/data/datalib/function/api/cmd/datapack.mcfunction @@ -4,4 +4,3 @@ execute unless entity @s[tag=datalib.admin,scores={dl.perm_level=2..}] run retur $execute if data storage datalib:input {action:"disable"} run datapack disable $(pack) $execute if data storage datalib:input {action:"enable"} run datapack enable $(pack) -$execute if data storage datalib:input {action:"list"} run function datalib:api/cmd/datapack_list From 27f37d375df56afed840154b845c861a383b9685 Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:58:05 +0300 Subject: [PATCH 07/11] Add unpublish command to unpublish.mcfunction --- .../dataLib/data/datalib/function/api/cmd/unpublish.mcfunction | 1 + 1 file changed, 1 insertion(+) create mode 100644 datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction new file mode 100644 index 00000000..d8ee431e --- /dev/null +++ b/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction @@ -0,0 +1 @@ +unpublish From 7eeebd51b249eeca7f3aaf53376160d3a1441cc7 Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:58:54 +0300 Subject: [PATCH 08/11] Add checks before unpublishing function --- .../data/datalib/function/api/cmd/unpublish.mcfunction | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction index d8ee431e..68290052 100644 --- a/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction +++ b/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction @@ -1 +1,5 @@ +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[tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 + unpublish From 5a791ba78bd569c42aee8e99d7139a5ac1f0612c Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 17:00:59 +0300 Subject: [PATCH 09/11] Fix command syntax in publish.mcfunction --- .../dataLib/data/datalib/function/api/cmd/publish.mcfunction | 1 + 1 file changed, 1 insertion(+) create mode 100644 datapacks/dataLib/data/datalib/function/api/cmd/publish.mcfunction diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/publish.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/publish.mcfunction new file mode 100644 index 00000000..e0c5c399 --- /dev/null +++ b/datapacks/dataLib/data/datalib/function/api/cmd/publish.mcfunction @@ -0,0 +1 @@ +$publish $(allow_commands) $(game_mode) $(port) From 6ff0d6d29a0d0fc14d71b9585d2ea29045e967e3 Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 17:02:36 +0300 Subject: [PATCH 10/11] Implement sandbox guard in publish.mcfunction Added sandbox mode checks and messages to prevent dangerous commands. --- .../data/datalib/function/api/cmd/publish.mcfunction | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/publish.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/publish.mcfunction index e0c5c399..11023bb6 100644 --- a/datapacks/dataLib/data/datalib/function/api/cmd/publish.mcfunction +++ b/datapacks/dataLib/data/datalib/function/api/cmd/publish.mcfunction @@ -1 +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"}] + $publish $(allow_commands) $(game_mode) $(port) From 531fda6477e78d04a9876d39e88ca6d0f627023a Mon Sep 17 00:00:00 2001 From: Legends11 <235496468+tickwarden@users.noreply.github.com> Date: Mon, 20 Jul 2026 17:04:16 +0300 Subject: [PATCH 11/11] Delete datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction --- .../data/datalib/function/api/cmd/unpublish.mcfunction | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction diff --git a/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction b/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction deleted file mode 100644 index 68290052..00000000 --- a/datapacks/dataLib/data/datalib/function/api/cmd/unpublish.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -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[tag=datalib.admin,scores={dl.perm_level=2..}] run return 0 - -unpublish