diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml
index a046307..33383f9 100644
--- a/.github/workflows/cd.yml
+++ b/.github/workflows/cd.yml
@@ -3,32 +3,46 @@ on:
workflow_dispatch:
inputs:
tag:
- description: 'version of the data pack'
+ description: 'Version of the data pack'
required: true
default: 'v1.0'
+ mc_version:
+ description: 'Minecraft version(s) the data pack runs in'
+ required: true
+ default: '1.20'
jobs:
create_data_pack:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v2
+ uses: actions/checkout@v3.5.3
- name: Extract tag
id: tag_version
- run: echo ::set-output name=TAG_VERSION::${GITHUB_REF#refs/tags/}
- - name: Extract MC verson
- id: mc_version
- run: sh .github/workflows/get-mc-version.sh
+ run: echo "TAG_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
+ - name: Find and replace uninstall file name
+ uses: jacobtomlinson/gha-find-replace@v3
+ with:
+ find: "${file_name}"
+ replace: ${{ github.event.repository.name }}-${{ github.event.inputs.tag }}-mc${{ github.event.inputs.mc_version }}-datapack.zip
+ regex: false
+ include: "**uninstall.mcfunction"
+ - name: Find and replace data pack version
+ uses: jacobtomlinson/gha-find-replace@v3
+ with:
+ find: "${version}"
+ replace: ${{ github.event.inputs.tag }}
+ regex: false
# Check for existence of datapack and/or resourcepack folders.
- name: Check for data folder
id: check_datapack_folder
- uses: andstor/file-existence-action@v1
+ uses: andstor/file-existence-action@v2
with:
files: "data"
- name: Check for assets folder
id: check_assets_folder
- uses: andstor/file-existence-action@v1
+ uses: andstor/file-existence-action@v2
with:
files: "assets"
@@ -62,7 +76,7 @@ jobs:
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./assetpack.zip
- asset_name: ${{ github.event.repository.name }}-${{ github.event.inputs.tag }}-mc${{ steps.mc_version.outputs.MC_VERSION }}-resourcepack.zip
+ asset_name: ${{ github.event.repository.name }}-${{ github.event.inputs.tag }}-mc${{ github.event.inputs.mc_version }}-resourcepack.zip
asset_content_type: application/zip
- name: Upload datapack release asset
uses: actions/upload-release-asset@v1
@@ -72,5 +86,5 @@ jobs:
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./datapack.zip
- asset_name: ${{ github.event.repository.name }}-${{ github.event.inputs.tag }}-mc${{ steps.mc_version.outputs.MC_VERSION }}-datapack.zip
+ asset_name: ${{ github.event.repository.name }}-${{ github.event.inputs.tag }}-mc${{ github.event.inputs.mc_version }}-datapack.zip
asset_content_type: application/zip
diff --git a/.github/workflows/get-mc-version.sh b/.github/workflows/get-mc-version.sh
deleted file mode 100644
index 0deb638..0000000
--- a/.github/workflows/get-mc-version.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-# Derives the MC Version from the package version.
-pack_version=$(jq '.pack.pack_format' pack.mcmeta)
-case "$pack_version" in
- 1 )
- echo ::set-output name=MC_VERSION::"1.6.1-1.8.9"
- ;;
- 2 )
- echo ::set-output name=MC_VERSION::"1.9-1.10.2"
- ;;
- 3 )
- echo ::set-output name=MC_VERSION::"1.11-1.12.2"
- ;;
- 4 )
- echo ::set-output name=MC_VERSION::"1.13-1.14.4"
- ;;
- 5 )
- echo ::set-output name=MC_VERSION::"1.15-1.16.1"
- ;;
- 6 )
- echo ::set-output name=MC_VERSION::"1.16.2-1.16.5"
- ;;
- 7 )
- echo ::set-output name=MC_VERSION::"1.17"
- ;;
- 8 )
- echo ::set-output name=MC_VERSION::"1.18"
- ;;
- 9 )
- echo ::set-output name=MC_VERSION::"1.18.2"
- ;;
- 10 )
- echo ::set-output name=MC_VERSION::"1.19"
- ;;
-esac
diff --git a/README.md b/README.md
index 7efef3b..7f6f0d2 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@
-> A data pack for 1.17x-1.19x
+> A data pack for 1.17x-1.20x
YouTube showcase
@@ -18,21 +18,19 @@
-### Update to Minecraft 1.20 is in progress!
-
## Features
Supported entities and items such as torches or lanterns will emit light by using the light block added in 21w13a.
**Supported Items:** Torches, Lanterns, Campfires, Glowstone, Glowstone Dust, Blaze Rods, Blaze Powder, Spectral Arrows, Lava Buckets, Sea Lanterns, Prismarine Crystals, Froglights, Glow Ink Sacs, Glow Berries, Glow Item Frames, Glow Lichen, Jack o'Lanterns, Shroomlights, End Rods, End Crystals, Fire Charge, Amethyst Shards, Nether Stars, Ender Chests and Beacons
-Additionally, all enchanted items will emit light level 6 while Fire Aspect enchanted items will emit light level 9.
+Additionally, all enchanted items will emit light level 6 while Fire Aspect, Riptide or Channeling enchanted items emit light level 9.
**Always glowing entities:** Allays, Glow Squids, Glow Item Frames, Blazes, TNT, End Crystals, Fireballs, Spectral Arrows, Firework Rockets and Flying Wither Skulls
No Optifine needed!
-[-> For more information, take a look at the wiki <-](https://github.com/Tschipcraft/dynamiclights/wiki)
+[-> For available settings and planned features, take a look at the wiki <-](https://github.com/Tschipcraft/dynamiclights/wiki)
## Installation
@@ -52,8 +50,6 @@ Also available on Modrinth and CurseForge!
-If you are looking for a mod version, use something like [LambDynamicLights](https://modrinth.com/mod/lambdynamiclights) or Optifine for better performance.
-
## Manage
diff --git a/data/dynamiclights/functions/install.mcfunction b/data/dynamiclights/functions/install.mcfunction
index d88216b..afde4fc 100644
--- a/data/dynamiclights/functions/install.mcfunction
+++ b/data/dynamiclights/functions/install.mcfunction
@@ -31,28 +31,21 @@ scoreboard objectives add ts.dl.i.is_chann dummy
scoreboard objectives add ts.dl.l.level dummy
-
-# TODO:
-# Add setting for cues for riptide + channeling
-# Add Light Level 3 (Magma Blocks + standard enchants)
-# Finish #3
-# Add rain check to water sensitivity?
-
-
scoreboard objectives add ts.dl.mess.welc dummy
-scoreboard objectives add ts.dl.mess.how trigger
scoreboard objectives add ts.dl.settings dummy
-
# defaults
execute unless score $enable_on_fire ts.dl.settings matches 0..1 run scoreboard players set $enable_on_fire ts.dl.settings 1
execute unless score $enable_glowing ts.dl.settings matches 0..1 run scoreboard players set $enable_glowing ts.dl.settings 0
-execute unless score $enable_ghast ts.dl.settings matches 0..1 run scoreboard players set $enable_ghast ts.dl.settings 1
execute unless score $fire_aspect ts.dl.settings matches 0..1 run scoreboard players set $fire_aspect ts.dl.settings 1
execute unless score $riptide ts.dl.settings matches 0..1 run scoreboard players set $riptide ts.dl.settings 1
execute unless score $channeling ts.dl.settings matches 0..1 run scoreboard players set $channeling ts.dl.settings 1
execute unless score $enchanted_items ts.dl.settings matches 0..1 run scoreboard players set $enchanted_items ts.dl.settings 1
execute unless score $amethyst_trimmed ts.dl.settings matches 0..1 run scoreboard players set $amethyst_trimmed ts.dl.settings 1
+execute unless score $enable_ghast ts.dl.settings matches 0..1 run scoreboard players set $enable_ghast ts.dl.settings 1
+
+execute unless score $water_sensitive ts.dl.settings matches 0..1 run scoreboard players set $water_sensitive ts.dl.settings 1
+execute unless score $enable_sound ts.dl.settings matches 0..1 run scoreboard players set $enable_sound ts.dl.settings 1
scoreboard objectives add tschipcraft.menu trigger
diff --git a/data/dynamiclights/functions/internal/enchantments/activate/channeling.mcfunction b/data/dynamiclights/functions/internal/enchantments/activate/channeling.mcfunction
index 93b85b9..f6faac4 100644
--- a/data/dynamiclights/functions/internal/enchantments/activate/channeling.mcfunction
+++ b/data/dynamiclights/functions/internal/enchantments/activate/channeling.mcfunction
@@ -1,4 +1,4 @@
##by Tschipcraft
-playsound block.beacon.power_select player @a ~ ~ ~ 0.3
+execute if score $enable_sound ts.dl.settings matches 1 run playsound block.beacon.power_select player @a ~ ~ ~ 0.3
scoreboard players set @s ts.dl.sound 2
diff --git a/data/dynamiclights/functions/internal/enchantments/activate/riptide.mcfunction b/data/dynamiclights/functions/internal/enchantments/activate/riptide.mcfunction
index a61bde9..a7cced7 100644
--- a/data/dynamiclights/functions/internal/enchantments/activate/riptide.mcfunction
+++ b/data/dynamiclights/functions/internal/enchantments/activate/riptide.mcfunction
@@ -1,4 +1,4 @@
##by Tschipcraft
-playsound block.conduit.activate player @a ~ ~ ~ 0.8
+execute if score $enable_sound ts.dl.settings matches 1 run playsound block.conduit.activate player @a ~ ~ ~ 0.8
scoreboard players set @s ts.dl.sound 1
diff --git a/data/dynamiclights/functions/internal/enchantments/deactivate/channeling.mcfunction b/data/dynamiclights/functions/internal/enchantments/deactivate/channeling.mcfunction
index c674a82..79e112b 100644
--- a/data/dynamiclights/functions/internal/enchantments/deactivate/channeling.mcfunction
+++ b/data/dynamiclights/functions/internal/enchantments/deactivate/channeling.mcfunction
@@ -1,4 +1,4 @@
##by Tschipcraft
-playsound block.beacon.deactivate player @a ~ ~ ~ 0.3
+execute if score $enable_sound ts.dl.settings matches 1 run playsound block.beacon.deactivate player @a ~ ~ ~ 0.3
scoreboard players set @s ts.dl.sound 0
diff --git a/data/dynamiclights/functions/internal/enchantments/deactivate/riptide.mcfunction b/data/dynamiclights/functions/internal/enchantments/deactivate/riptide.mcfunction
index 4f36d99..af1e6c1 100644
--- a/data/dynamiclights/functions/internal/enchantments/deactivate/riptide.mcfunction
+++ b/data/dynamiclights/functions/internal/enchantments/deactivate/riptide.mcfunction
@@ -1,4 +1,4 @@
##by Tschipcraft
-playsound block.conduit.deactivate player @a ~ ~ ~ 0.3
+execute if score $enable_sound ts.dl.settings matches 1 run playsound block.conduit.deactivate player @a ~ ~ ~ 0.3
scoreboard players set @s ts.dl.sound 0
diff --git a/data/dynamiclights/functions/internal/ghast.mcfunction b/data/dynamiclights/functions/internal/ghast.mcfunction
index 28c6780..bb6581c 100644
--- a/data/dynamiclights/functions/internal/ghast.mcfunction
+++ b/data/dynamiclights/functions/internal/ghast.mcfunction
@@ -2,5 +2,5 @@
execute as @s[predicate=dynamiclights:ghast_targeting] run scoreboard players add @s ts.dl.ghast_cool 1
execute as @s[predicate=!dynamiclights:ghast_targeting] run scoreboard players reset @s ts.dl.ghast_cool
-execute as @s[scores={ts.dl.ghast_cool=10..20}] at @s run function dynamiclights:summon_light
+execute as @s[scores={ts.dl.ghast_cool=10..20}] at @s run function dynamiclights:internal/place_light/15/summon
execute as @s[scores={ts.dl.ghast_cool=60..}] run scoreboard players reset @s ts.dl.ghast_cool
diff --git a/data/dynamiclights/functions/internal/main.mcfunction b/data/dynamiclights/functions/internal/main.mcfunction
index 425cd64..9adb3b4 100644
--- a/data/dynamiclights/functions/internal/main.mcfunction
+++ b/data/dynamiclights/functions/internal/main.mcfunction
@@ -4,7 +4,7 @@
tag @e[type=minecraft:marker,tag=ts.dl.light] add ts.dl.remove
# Core
-# TODO: Change $unlimited behavior
+# TODO: Change $unlimited behavior?
execute unless score $unlimited ts.dl.settings matches 1 as @e[tag=!smithed.strict,tag=!global.ignore,tag=!global.ignore.gui] at @s if entity @a[gamemode=!spectator,distance=..65] run function dynamiclights:internal/main_exec
execute if score $unlimited ts.dl.settings matches 1 as @e[tag=!smithed.strict,tag=!global.ignore,tag=!global.ignore.gui] at @s run function dynamiclights:internal/main_exec
@@ -12,7 +12,7 @@ execute if score $unlimited ts.dl.settings matches 1 as @e[tag=!smithed.strict,t
execute as @e[type=minecraft:marker,tag=ts.dl.remove] at @s run function dynamiclights:internal/remove_light
# Menu
-function dynamiclights:menu
+function dynamiclights:internal/menu
# Repeat
schedule function dynamiclights:internal/main 1t
diff --git a/data/dynamiclights/functions/internal/main_exec.mcfunction b/data/dynamiclights/functions/internal/main_exec.mcfunction
index 2bacd00..c38e8de 100644
--- a/data/dynamiclights/functions/internal/main_exec.mcfunction
+++ b/data/dynamiclights/functions/internal/main_exec.mcfunction
@@ -2,8 +2,9 @@
## In water?
scoreboard players add @s ts.dl.in_water 0
-execute as @s[scores={ts.dl.in_water=0}] anchored eyes positioned ^ ^ ^ if predicate dynamiclights:in_water run function dynamiclights:internal/water/enter
-execute as @s[scores={ts.dl.in_water=1}] anchored eyes positioned ^ ^ ^ unless predicate dynamiclights:in_water run function dynamiclights:internal/water/exit
+execute if score $water_sensitive ts.dl.settings matches 1 as @s[scores={ts.dl.in_water=0}] anchored eyes positioned ^ ^ ^ if predicate dynamiclights:in_water run function dynamiclights:internal/water/enter
+execute as @s[scores={ts.dl.in_water=1},type=!minecraft:item] anchored eyes positioned ^ ^ ^ unless predicate dynamiclights:in_water run function dynamiclights:internal/water/exit
+execute as @s[scores={ts.dl.in_water=1},type=minecraft:item] anchored eyes positioned ^ ^ ^ positioned ~ ~-0.1 ~ unless predicate dynamiclights:in_water run function dynamiclights:internal/water/exit
## Sound cues for trident enchants
scoreboard players add @s ts.dl.sound 0
@@ -16,7 +17,6 @@ execute as @s[scores={ts.dl.sound=2},predicate=!dynamiclights:entity/has_channel
## Dispatch light
function dynamiclights:internal/sources/core
-
# Light block sadly blocks explosion damage
#execute as @s[type=minecraft:creeper,nbt={ignited:1b},tag=!global.ignore,tag=!smithed.strict] at @s run function dynamiclights:summon_light
@@ -24,5 +24,5 @@ function dynamiclights:internal/sources/core
execute as @s[type=minecraft:ghast] at @s run function dynamiclights:internal/ghast
## Extension for More Mobs
-execute as @s[type=minecraft:wither_skeleton,tag=ts.mm.magma_1] at @s run function dynamiclights:summon_redstone_light
-execute as @s[type=minecraft:wither_skeleton,tag=ts.mm.magma_2] at @s run function dynamiclights:summon_soul_light
+execute as @s[type=minecraft:wither_skeleton,tag=ts.mm.magma_1] at @s run function dynamiclights:internal/place_light/6/summon
+execute as @s[type=minecraft:wither_skeleton,tag=ts.mm.magma_2] at @s run function dynamiclights:internal/place_light/9/summon
diff --git a/data/dynamiclights/functions/menu.mcfunction b/data/dynamiclights/functions/internal/menu.mcfunction
similarity index 73%
rename from data/dynamiclights/functions/menu.mcfunction
rename to data/dynamiclights/functions/internal/menu.mcfunction
index 8db2d65..a59b9a8 100644
--- a/data/dynamiclights/functions/menu.mcfunction
+++ b/data/dynamiclights/functions/internal/menu.mcfunction
@@ -4,7 +4,6 @@
scoreboard players enable @a tschipcraft.menu
#scoreboard players add @a ts.dl.mess.welcome 0 - don't show menu on first boot
execute as @a[scores={tschipcraft.menu=1..}] run scoreboard players set @s ts.dl.mess.welc 0
-execute as @a[scores={ts.dl.mess.welc=0}] run function dynamiclights:messages/welcome
-execute as @a[scores={ts.dl.mess.how=1}] run function dynamiclights:messages/how_to_use
+execute as @a[scores={ts.dl.mess.welc=0}] run function dynamiclights:internal/messages/welcome
-execute as @a[scores={tschipcraft.menu=1..}] run schedule function dynamiclights:menu_reset 1t
+execute as @a[scores={tschipcraft.menu=1..}] run schedule function dynamiclights:internal/menu_reset 1t
diff --git a/data/dynamiclights/functions/menu_reset.mcfunction b/data/dynamiclights/functions/internal/menu_reset.mcfunction
similarity index 100%
rename from data/dynamiclights/functions/menu_reset.mcfunction
rename to data/dynamiclights/functions/internal/menu_reset.mcfunction
diff --git a/data/dynamiclights/functions/internal/messages/welcome.mcfunction b/data/dynamiclights/functions/internal/messages/welcome.mcfunction
new file mode 100644
index 0000000..b19928a
--- /dev/null
+++ b/data/dynamiclights/functions/internal/messages/welcome.mcfunction
@@ -0,0 +1,4 @@
+## by Tschipcraft
+
+tellraw @s ["",{"text":"➤ Dynamic Lights ${version} by Tschipcraft installed!","italic":false,"color":"green"},{"text":"\n"},{"text":"[Settings]","color":"aqua","clickEvent":{"action":"run_command","value":"/function dynamiclights:settings"},"hoverEvent":{"action":"show_text","contents":"Click here"}},{"text":" "},{"text":"[Reset]","color":"red","clickEvent":{"action":"run_command","value":"/function dynamiclights:reset"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Reset the whole data pack.","color":"white"}]}},{"text":" "},{"text":"[Uninstall]","color":"dark_red","clickEvent":{"action":"run_command","value":"/function dynamiclights:uninstall"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Uninstall the data pack. ","color":"white"},{"text":"Note: No entities/items will glow anymore!","color":"red"}]}},{"text":" "},{"text":"[Report an issue]","color":"gold","clickEvent":{"action":"open_url","value":"https://github.com/Tschipcraft/dynamiclights/issues/new/choose"},"hoverEvent":{"action":"show_text","contents":"Click here to report an issue."}},{"text":" "},{"text":"[Check for updates]","color":"blue","clickEvent":{"action":"open_url","value":"https://tschipcraft.ddns.net/update/test.html?pack=dynamiclights&v=${version}"},"hoverEvent":{"action":"show_text","contents":"Click here to check for updates."}}]
+scoreboard players set @s ts.dl.mess.welc 1
diff --git a/data/dynamiclights/functions/internal/version_checker/start.mcfunction b/data/dynamiclights/functions/internal/version_checker/start.mcfunction
index d0e75ae..1599fe7 100644
--- a/data/dynamiclights/functions/internal/version_checker/start.mcfunction
+++ b/data/dynamiclights/functions/internal/version_checker/start.mcfunction
@@ -1,16 +1,14 @@
##by Tschipcraft
-scoreboard objectives add ts_version dummy
-execute store result score $global ts_version run data get entity @r DataVersion
-execute unless score $global tvc_ignore matches 1 if score $global ts_version matches 3700.. run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"?","bold":true,"color":"gold"},{"text":" Minecraft version 1.20 or above detected! This data pack may not work correctly anymore! Please make sure to check for updates in the menu! (","color":"gold"},{"text":"/trigger tschipcraft.menu","underlined":true,"color":"gold","clickEvent":{"action":"run_command","value":"/trigger tschipcraft.menu"},"hoverEvent":{"action":"show_text","contents":"Click here"}},{"text":")","color":"gold"}]
-#execute if score $global ts_version matches 2976..3106 run say 1.19 detected!
-#execute if score $global ts_version matches 2731..2975 run say 1.18 detected!
-#execute if score $global ts_version matches 2587..2730 run say 1.17 detected!
-execute if score $global ts_version matches 2231..2586 run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"\u26a0 Minecraft version ","color":"red"},{"text":"1.16","color":"red","bold":true},{"text":" detected! This data pack does not work in 1.16! Please use ","color":"red"},{"text": "1.17 or above", "color":"red","underlined":true},{"text":"!","color":"red"}]
-execute if score $global ts_version matches 1977..2230 run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"\u26a0 Minecraft version ","color":"red"},{"text":"1.15","color":"red","bold": true},{"text":" detected! This data pack does not work in 1.15! Please use ","color":"red"},{"text": "1.17 or above", "color":"red","underlined":true},{"text":"!","color":"red"}]
-execute if score $global ts_version matches 1632..1976 run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"\u26a0 Minecraft version ","color":"red"},{"text":"1.14","color":"red","bold": true},{"text":" detected! This data pack does not work in 1.14! Please use ","color":"red"},{"text": "1.17 or above", "color":"red","underlined":true},{"text":"!","color":"red"}]
-execute if score $global ts_version matches 1343..1631 run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"\u26a0 Minecraft version ","color":"red"},{"text":"1.13","color":"red","bold": true},{"text":" detected! This data pack does not work in 1.13! Please use ","color":"red"},{"text": "1.17 or above", "color":"red","underlined":true},{"text":"!","color":"red"}]
+scoreboard objectives add ts.dl.version dummy
+execute store result score $global ts.dl.version run data get entity @r DataVersion
+execute unless score $global tvc_ignore matches 1 if score $global ts.dl.version matches 3700.. run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"?","bold":true,"color":"gold"},{"text":" Minecraft version 1.20 or above detected! This data pack may not work correctly anymore! Please make sure to check for updates in the menu! (","color":"gold"},{"text":"/trigger tschipcraft.menu","underlined":true,"color":"gold","clickEvent":{"action":"run_command","value":"/trigger tschipcraft.menu"},"hoverEvent":{"action":"show_text","contents":"Click here"}},{"text":")","color":"gold"}]
+#execute if score $global ts.dl.version matches 2976..3106 run say 1.19 detected!
+#execute if score $global ts.dl.version matches 2731..2975 run say 1.18 detected!
+#execute if score $global ts.dl.version matches 2587..2730 run say 1.17 detected!
+execute if score $global ts.dl.version matches 2231..2586 run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"\u26a0 Minecraft version ","color":"red"},{"text":"1.16","color":"red","bold":true},{"text":" detected! This data pack does not work in 1.16! Please use ","color":"red"},{"text": "1.17 or above", "color":"red","underlined":true},{"text":"!","color":"red"}]
+execute if score $global ts.dl.version matches 1977..2230 run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"\u26a0 Minecraft version ","color":"red"},{"text":"1.15","color":"red","bold": true},{"text":" detected! This data pack does not work in 1.15! Please use ","color":"red"},{"text": "1.17 or above", "color":"red","underlined":true},{"text":"!","color":"red"}]
+execute if score $global ts.dl.version matches 1632..1976 run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"\u26a0 Minecraft version ","color":"red"},{"text":"1.14","color":"red","bold": true},{"text":" detected! This data pack does not work in 1.14! Please use ","color":"red"},{"text": "1.17 or above", "color":"red","underlined":true},{"text":"!","color":"red"}]
+execute if score $global ts.dl.version matches 1343..1631 run tellraw @a [{"text":"[Dynamic Lights] ","color":"gray"},{"text":"\u26a0 Minecraft version ","color":"red"},{"text":"1.13","color":"red","bold": true},{"text":" detected! This data pack does not work in 1.13! Please use ","color":"red"},{"text": "1.17 or above", "color":"red","underlined":true},{"text":"!","color":"red"}]
-execute if score $global ts_version matches 0 run function dynamiclights:internal/version_checker/retry
-
-scoreboard objectives remove ts_version
+execute unless score $global ts.dl.version matches 1.. run function dynamiclights:internal/version_checker/retry
diff --git a/data/dynamiclights/functions/internal/water/enter.mcfunction b/data/dynamiclights/functions/internal/water/enter.mcfunction
index 78e5a70..61e8db5 100644
--- a/data/dynamiclights/functions/internal/water/enter.mcfunction
+++ b/data/dynamiclights/functions/internal/water/enter.mcfunction
@@ -2,7 +2,7 @@
# Any entity that is in water will run this function
# Test if a sound should be played
-execute unless predicate dynamiclights:entity/water_check/no_water_immersion_illuminate_items run playsound block.beacon.activate player @a ~ ~ ~ 0.3
-execute unless predicate dynamiclights:entity/water_check/no_water_immersion_extinguish_items run playsound block.fire.extinguish player @a ~ ~ ~ 0.3
+execute if score $enable_sound ts.dl.settings matches 1 unless predicate dynamiclights:entity/water_check/no_water_immersion_illuminate_items run playsound block.beacon.activate player @a ~ ~ ~ 0.3
+execute if score $enable_sound ts.dl.settings matches 1 unless predicate dynamiclights:entity/water_check/no_water_immersion_extinguish_items run playsound block.fire.extinguish player @a ~ ~ ~ 0.3
scoreboard players set @s ts.dl.in_water 1
diff --git a/data/dynamiclights/functions/internal/water/exit.mcfunction b/data/dynamiclights/functions/internal/water/exit.mcfunction
index 6cef564..3d14f83 100644
--- a/data/dynamiclights/functions/internal/water/exit.mcfunction
+++ b/data/dynamiclights/functions/internal/water/exit.mcfunction
@@ -2,7 +2,7 @@
# Any entity that is in water will run this function
# Test if a sound should be played
-execute unless predicate dynamiclights:entity/water_check/no_water_immersion_extinguish_items run playsound item.flintandsteel.use player @a ~ ~ ~ 0.3
-execute unless predicate dynamiclights:entity/water_check/no_water_immersion_illuminate_items run playsound block.beacon.deactivate player @a ~ ~ ~ 0.3
+execute if score $enable_sound ts.dl.settings matches 1 unless predicate dynamiclights:entity/water_check/no_water_immersion_extinguish_items run playsound item.flintandsteel.use player @a ~ ~ ~ 0.3
+execute if score $enable_sound ts.dl.settings matches 1 unless predicate dynamiclights:entity/water_check/no_water_immersion_illuminate_items run playsound block.beacon.deactivate player @a ~ ~ ~ 0.3
scoreboard players set @s ts.dl.in_water 0
diff --git a/data/dynamiclights/functions/messages/how_to_use.mcfunction b/data/dynamiclights/functions/messages/how_to_use.mcfunction
deleted file mode 100644
index a3153fa..0000000
--- a/data/dynamiclights/functions/messages/how_to_use.mcfunction
+++ /dev/null
@@ -1,5 +0,0 @@
-## by Tschipcraft
-
-tellraw @s ["",{"text":"=-= How to use =-=","bold":true,"color":"gold"},{"text":"\n"},{"text":"Supported entities/items such as torches or lanterns now emit light!","color":"green"}]
-scoreboard players reset @s ts.dl.mess.how
-scoreboard players enable @s ts.dl.mess.how
diff --git a/data/dynamiclights/functions/messages/welcome.mcfunction b/data/dynamiclights/functions/messages/welcome.mcfunction
deleted file mode 100644
index aaeeb06..0000000
--- a/data/dynamiclights/functions/messages/welcome.mcfunction
+++ /dev/null
@@ -1,5 +0,0 @@
-## by Tschipcraft
-
-tellraw @s ["",{"text":"➤ Dynamic Lights v1.5 by Tschipcraft installed!","italic":false,"color":"green"},{"text":"\n"},{"text":"[How to use]","color":"light_purple","clickEvent":{"action":"run_command","value":"/trigger ts.dl.mess.how"},"hoverEvent":{"action":"show_text","contents":"Click here"}},{"text":" "},{"text":"[Reset]","color":"red","clickEvent":{"action":"run_command","value":"/function dynamiclights:reset"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Reset the whole data pack.","color":"white"}]}},{"text":" "},{"text":"[Uninstall]","color":"dark_red","clickEvent":{"action":"run_command","value":"/function dynamiclights:uninstall"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Uninstall the data pack. ","color":"white"},{"text":"Note: No entities/items will glow anymore!","color":"red"}]}},{"text":" "},{"text":"[Report an issue]","color":"gold","clickEvent":{"action":"open_url","value":"https://github.com/Tschipcraft/dynamiclights/issues/new/choose"},"hoverEvent":{"action":"show_text","contents":"Click here to report an issue."}},{"text":" "},{"text":"[Check for updates]","color":"blue","clickEvent":{"action":"open_url","value":"https://tschipcraft.ddns.net/update/test.html?pack=dynamiclights&v=1.5"},"hoverEvent":{"action":"show_text","contents":"Click here to check for updates."}}]
-scoreboard players set @s ts.dl.mess.welc 1
-scoreboard players enable @s ts.dl.mess.how
diff --git a/data/dynamiclights/functions/settings.mcfunction b/data/dynamiclights/functions/settings.mcfunction
new file mode 100644
index 0000000..bd0246a
--- /dev/null
+++ b/data/dynamiclights/functions/settings.mcfunction
@@ -0,0 +1,3 @@
+##by Tschipcraft
+
+function dynamiclights:settings/core
diff --git a/data/dynamiclights/functions/settings/core.mcfunction b/data/dynamiclights/functions/settings/core.mcfunction
new file mode 100644
index 0000000..934ef34
--- /dev/null
+++ b/data/dynamiclights/functions/settings/core.mcfunction
@@ -0,0 +1,43 @@
+##by Tschipcraft
+
+tellraw @s {"text":"\n=-=Dynamic Lights Admin Settings=-=","bold":true,"color":"dark_green"}
+tellraw @s {"text":"\nEnable light emitting from...","bold":true,"color":"white"}
+
+execute if score $enable_on_fire ts.dl.settings matches 1 run tellraw @s [{"text":"[✔] ","bold":true,"color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_on_fire"}},{"text":"Burning entities","color":"white"}]
+execute if score $enable_on_fire ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":true,"color": "red","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"on","color":"green"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_on_fire"}},{"text":"Burning entities","color":"white"}]
+
+execute if score $enable_glowing ts.dl.settings matches 1 run tellraw @s [{"text":"[✔] ","bold":true,"color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_glowing"}},{"text":"Entities with the glowing potion effect","color":"white"}]
+execute if score $enable_glowing ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":true,"color":"red","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"on","color":"green"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_glowing"}},{"text":"Entities with the glowing potion effect","color":"white"}]
+
+execute if score $enable_ghast ts.dl.settings matches 1 run tellraw @s [{"text":"[✔] ","bold":true,"color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_ghast"}},{"text":"Ghasts about to shoot a fireball","color":"white"}]
+execute if score $enable_ghast ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":true,"color":"red","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"on","color":"green"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_ghast"}},{"text":"Ghasts about to shoot a fireball","color":"white"}]
+
+execute if score $enchanted_items ts.dl.settings matches 1 run tellraw @s [{"text":"[✔] ","bold":true,"color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_enchanted_items"}},{"text":"Enchanted items","color":"white"}]
+execute if score $enchanted_items ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":true,"color":"red","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"on","color":"green"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_enchanted_items"}},{"text":"Enchanted items","color":"white"}]
+
+execute if score $global ts.dl.version matches 3400.. if score $amethyst_trimmed ts.dl.settings matches 1 run tellraw @s [{"text":"[✔] ","bold":true,"color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_amethyst_trimmed"}},{"text":"Armor trimmed with amethyst","color":"white"}]
+execute if score $global ts.dl.version matches 3400.. if score $amethyst_trimmed ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":true,"color":"red","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"on","color":"green"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_amethyst_trimmed"}},{"text":"Armor trimmed with amethyst","color":"white"}]
+
+
+tellraw @s {"text":"\nEnable additional light emitting from...","bold":true,"color":"white"}
+
+execute if score $fire_aspect ts.dl.settings matches 1 run tellraw @s [{"text":"[✔] ","bold":true,"color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_fire_aspect"}},{"text":"Items enchanted with Fire Aspect","color":"white"}]
+execute if score $fire_aspect ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":true,"color":"red","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"on","color":"green"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_fire_aspect"}},{"text":"Items enchanted with Fire Aspect","color":"white"}]
+
+execute if score $water_sensitive ts.dl.settings matches 1 if score $riptide ts.dl.settings matches 1 run tellraw @s [{"text":"[✔] ","bold":true,"color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_riptide"}},{"text":"Tridents enchanted with Riptide inside water","color":"white"}]
+execute if score $water_sensitive ts.dl.settings matches 1 if score $riptide ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":true,"color":"red","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text": "on","color":"green"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_riptide"}},{"text":"Tridents enchanted with Riptide inside water","color":"white"}]
+execute if score $water_sensitive ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":false,"color":"gray","hoverEvent":{"action":"show_text","contents":[{"text":"Please enable the water sensitvity check first"}]}},{"text":"Tridents enchanted with Riptide inside water","color":"gray"}]
+
+execute if score $channeling ts.dl.settings matches 1 run tellraw @s [{"text":"[✔] ","bold":true,"color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_channeling"}},{"text":"Tridents enchanted with Channeling during a thunderstorm","color":"white"}]
+execute if score $channeling ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":true,"color":"red","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"on","color":"green"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_channeling"}},{"text":"Tridents enchanted with Channeling during a thunderstorm","color":"white"}]
+
+
+tellraw @s {"text":"","bold":true,"color":"white"}
+execute if score $water_sensitive ts.dl.settings matches 1 run tellraw @s [{"text":"[✔] ","bold":true,"color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"},{"text":". If enabled, water sensitive items such as torches will turn off inside water","color":"white"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_water_sensitivity"}},{"text":"Water Sensitivity Check","color":"white"}]
+execute if score $water_sensitive ts.dl.settings matches 0 run tellraw @s [{"text":"[❌] ","bold":true,"color":"red","hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"on","color":"green"},{"text":". If enabled, water sensitive items such as torches will turn off inside water","color":"white"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_water_sensitivity"}},{"text":"Water Sensitivity Check","color":"white"}]
+
+execute if score $enable_sound ts.dl.settings matches 1 run tellraw @s [{"text": " └","bold":true,"hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"off","color":"red"},{"text":". If enabled, sound cues play when a water sensitive item turns off or on","color":"white"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_sound"}},{"text":"[✔] ","color":"green"},{"text":"Sound cues","color":"white"}]
+execute if score $enable_sound ts.dl.settings matches 0 run tellraw @s [{"text": " └","bold":true,"hoverEvent":{"action":"show_text","contents":[{"text":"Click here to toggle this feature "},{"text":"on","color":"green"},{"text":". If enabled, sound cues play when a water sensitive item turns off or on","color":"white"}]},"clickEvent":{"action":"run_command","value":"/function dynamiclights:settings/toggle_sound"}},{"text":"[❌] ","color":"red"},{"text":"Sound cues","color":"white"}]
+
+function dynamiclights:settings/hide_feedback/main
+playsound minecraft:block.dispenser.dispense master @s ~ ~ ~ 0.2 2
diff --git a/data/dynamiclights/functions/settings/hide_feedback/hide.mcfunction b/data/dynamiclights/functions/settings/hide_feedback/hide.mcfunction
new file mode 100644
index 0000000..a45d564
--- /dev/null
+++ b/data/dynamiclights/functions/settings/hide_feedback/hide.mcfunction
@@ -0,0 +1,4 @@
+##by Tschipcraft
+
+gamerule sendCommandFeedback false
+schedule function dynamiclights:settings/hide_feedback/unhide 1t
diff --git a/data/dynamiclights/functions/settings/hide_feedback/main.mcfunction b/data/dynamiclights/functions/settings/hide_feedback/main.mcfunction
new file mode 100644
index 0000000..4058135
--- /dev/null
+++ b/data/dynamiclights/functions/settings/hide_feedback/main.mcfunction
@@ -0,0 +1,5 @@
+##by Tschipcraft
+
+execute store result score $gamerule.send_feedback ts.dl.settings run gamerule sendCommandFeedback
+
+execute if score $gamerule.send_feedback ts.dl.settings matches 1 run function dynamiclights:settings/hide_feedback/hide
diff --git a/data/dynamiclights/functions/settings/hide_feedback/unhide.mcfunction b/data/dynamiclights/functions/settings/hide_feedback/unhide.mcfunction
new file mode 100644
index 0000000..5620e7c
--- /dev/null
+++ b/data/dynamiclights/functions/settings/hide_feedback/unhide.mcfunction
@@ -0,0 +1,3 @@
+##by Tschipcraft
+
+gamerule sendCommandFeedback true
diff --git a/data/dynamiclights/functions/settings/toggle_amethyst_trimmed.mcfunction b/data/dynamiclights/functions/settings/toggle_amethyst_trimmed.mcfunction
new file mode 100644
index 0000000..4724559
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_amethyst_trimmed.mcfunction
@@ -0,0 +1,8 @@
+##by Tschipcraft
+
+execute if score $amethyst_trimmed ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Light emitting from armor trimmed with amethyst","color":"yellow"}]
+execute if score $amethyst_trimmed ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Light emitting from armor trimmed with amethyst","color":"yellow"}]
+
+scoreboard players add $amethyst_trimmed ts.dl.settings 1
+execute if score $amethyst_trimmed ts.dl.settings matches 2 run scoreboard players set $amethyst_trimmed ts.dl.settings 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/settings/toggle_channeling.mcfunction b/data/dynamiclights/functions/settings/toggle_channeling.mcfunction
new file mode 100644
index 0000000..d179599
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_channeling.mcfunction
@@ -0,0 +1,8 @@
+##by Tschipcraft
+
+execute if score $channeling ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Light emitting from tridents enchanted with channeling during a thunderstorm","color":"yellow"}]
+execute if score $channeling ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Light emitting from tridents enchanted with channeling during a thunderstorm","color":"yellow"}]
+
+scoreboard players add $channeling ts.dl.settings 1
+execute if score $channeling ts.dl.settings matches 2 run scoreboard players set $channeling ts.dl.settings 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/settings/toggle_enchanted_items.mcfunction b/data/dynamiclights/functions/settings/toggle_enchanted_items.mcfunction
new file mode 100644
index 0000000..d143785
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_enchanted_items.mcfunction
@@ -0,0 +1,8 @@
+##by Tschipcraft
+
+execute if score $enchanted_items ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Light emitting from enchanted items","color":"yellow"}]
+execute if score $enchanted_items ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Light emitting from enchanted items","color":"yellow"}]
+
+scoreboard players add $enchanted_items ts.dl.settings 1
+execute if score $enchanted_items ts.dl.settings matches 2 run scoreboard players set $enchanted_items ts.dl.settings 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/settings/toggle_fire_aspect.mcfunction b/data/dynamiclights/functions/settings/toggle_fire_aspect.mcfunction
new file mode 100644
index 0000000..1dc7611
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_fire_aspect.mcfunction
@@ -0,0 +1,8 @@
+##by Tschipcraft
+
+execute if score $fire_aspect ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Light emitting from items enchanted with Fire Aspect","color":"yellow"}]
+execute if score $fire_aspect ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Light emitting from items enchanted with Fire Aspect","color":"yellow"}]
+
+scoreboard players add $fire_aspect ts.dl.settings 1
+execute if score $fire_aspect ts.dl.settings matches 2 run scoreboard players set $fire_aspect ts.dl.settings 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/settings/toggle_ghast.mcfunction b/data/dynamiclights/functions/settings/toggle_ghast.mcfunction
new file mode 100644
index 0000000..c30291a
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_ghast.mcfunction
@@ -0,0 +1,8 @@
+##by Tschipcraft
+
+execute if score $enable_ghast ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Light emitting from ghasts about to shoot a fireball","color":"yellow"}]
+execute if score $enable_ghast ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Light emitting from ghasts about to shoot a fireball","color":"yellow"}]
+
+scoreboard players add $enable_ghast ts.dl.settings 1
+execute if score $enable_ghast ts.dl.settings matches 2 run scoreboard players set $enable_ghast ts.dl.settings 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/settings/toggle_glowing.mcfunction b/data/dynamiclights/functions/settings/toggle_glowing.mcfunction
new file mode 100644
index 0000000..59c8a94
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_glowing.mcfunction
@@ -0,0 +1,8 @@
+##by Tschipcraft
+
+execute if score $enable_glowing ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Light emitting from entities with the glowing effect","color":"yellow"}]
+execute if score $enable_glowing ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Light emitting from entities with the glowing effect","color":"yellow"}]
+
+scoreboard players add $enable_glowing ts.dl.settings 1
+execute if score $enable_glowing ts.dl.settings matches 2 run scoreboard players set $enable_glowing ts.dl.settings 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/settings/toggle_on_fire.mcfunction b/data/dynamiclights/functions/settings/toggle_on_fire.mcfunction
new file mode 100644
index 0000000..760882c
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_on_fire.mcfunction
@@ -0,0 +1,8 @@
+##by Tschipcraft
+
+execute if score $enable_on_fire ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Light emitting from entities on fire","color":"yellow"}]
+execute if score $enable_on_fire ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Light emitting from entities on fire","color":"yellow"}]
+
+scoreboard players add $enable_on_fire ts.dl.settings 1
+execute if score $enable_on_fire ts.dl.settings matches 2 run scoreboard players set $enable_on_fire ts.dl.settings 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/settings/toggle_riptide.mcfunction b/data/dynamiclights/functions/settings/toggle_riptide.mcfunction
new file mode 100644
index 0000000..8671d96
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_riptide.mcfunction
@@ -0,0 +1,8 @@
+##by Tschipcraft
+
+execute if score $riptide ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Light emitting from tridents enchanted with riptide underwater","color":"yellow"}]
+execute if score $riptide ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Light emitting from tridents enchanted with riptide underwater","color":"yellow"}]
+
+scoreboard players add $riptide ts.dl.settings 1
+execute if score $riptide ts.dl.settings matches 2 run scoreboard players set $riptide ts.dl.settings 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/settings/toggle_sound.mcfunction b/data/dynamiclights/functions/settings/toggle_sound.mcfunction
new file mode 100644
index 0000000..ec65ae2
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_sound.mcfunction
@@ -0,0 +1,8 @@
+##by Tschipcraft
+
+execute if score $enable_sound ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Sound Cues","color":"yellow"}]
+execute if score $enable_sound ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Sound Cues","color":"yellow"}]
+
+scoreboard players add $enable_sound ts.dl.settings 1
+execute if score $enable_sound ts.dl.settings matches 2 run scoreboard players set $enable_sound ts.dl.settings 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/settings/toggle_water_sensitivity.mcfunction b/data/dynamiclights/functions/settings/toggle_water_sensitivity.mcfunction
new file mode 100644
index 0000000..f49f7b1
--- /dev/null
+++ b/data/dynamiclights/functions/settings/toggle_water_sensitivity.mcfunction
@@ -0,0 +1,9 @@
+##by Tschipcraft
+
+execute if score $water_sensitive ts.dl.settings matches 1 run tellraw @s ["",{"text":"-> Disabled "},{"text":"Water sensitive items","color":"yellow"}]
+execute if score $water_sensitive ts.dl.settings matches 0 run tellraw @s ["",{"text":"-> Enabled "},{"text":"Water sensitive items","color":"yellow"}]
+
+scoreboard players add $water_sensitive ts.dl.settings 1
+execute if score $water_sensitive ts.dl.settings matches 2 run scoreboard players set $water_sensitive ts.dl.settings 0
+execute if score $water_sensitive ts.dl.settings matches 0 run scoreboard players set @e[type=!#dynamiclights:dyn_ignore,scores={ts.dl.in_water=1},tag=!smithed.strict,tag=!global.ignore,tag=!global.ignore.gui] ts.dl.in_water 0
+function dynamiclights:settings
diff --git a/data/dynamiclights/functions/uninstall.mcfunction b/data/dynamiclights/functions/uninstall.mcfunction
index 50a251c..791889f 100644
--- a/data/dynamiclights/functions/uninstall.mcfunction
+++ b/data/dynamiclights/functions/uninstall.mcfunction
@@ -16,14 +16,14 @@ scoreboard objectives remove ts.dl.i.is_chann
scoreboard objectives remove ts.dl.l.level
scoreboard objectives remove ts.dl.mess.welc
-scoreboard objectives remove ts.dl.mess.how
scoreboard objectives remove ts.dl.settings
scoreboard objectives remove tschipcraft.menu
+scoreboard objectives remove ts.dl.version
scoreboard objectives remove tvc_ignore
-say Dynamic Lights by Tschipcraft has been uninstalled by @s! It is safe to disable and remove the data pack.
-
datapack disable "file/dynamiclights"
datapack disable "file/dynamiclights.zip"
-datapack disable "file/dynamiclights-v1.6-mc1.20-datapack.zip"
+datapack disable "file/${file_name}"
+
+say Dynamic Lights ${version} by Tschipcraft has been uninstalled by @s! It is safe to disable and remove the data pack.