first commit

This commit is contained in:
2025-02-18 15:25:17 +01:00
commit 37cf0e8062
7403 changed files with 1227142 additions and 0 deletions

View File

@ -0,0 +1,12 @@
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International
Link: http://creativecommons.org/licenses/by-nc-nd/4.0/
EN
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/legalcode or contact Creative Commons at https://creativecommons.org.
An exception is made for video, image, sound, blog, and any other media that would share the project.
Content creators must simply give appropriate credit and provide a link to the original work.
FR
Cette oeuvre, création, site ou texte est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International. Pour accéder à une copie de cette licence, merci de vous rendre à l'adresse suivante http://creativecommons.org/licenses/by-nc-nd/4.0/ ou envoyez un courrier à Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
Une exception est faite pour le contenu vidéo, image, sonore, blog, et tous autres supports qui auraient pour but de partager le projet.
Les créateurs de contenus doivent simplement accorder un crédit approprié et fournir un lien vers l'oeuvre initiale.

View File

@ -0,0 +1,20 @@
# OceanBreaths
A Minecraft datapack to add some ways to live under the oceans, breathing bubbles and chimney's oxygen.
# Requires
- Minecraft 1.20+
# Use
1. Download the package
2. Copy/paste the entire "OceanBreaths/" folder in your "saves/your-map/datapacks/" folder.
3. Launch the game/server and play your map as you always do.
# Author
- Name : FunkyToc
- Website : https://funkytoc.fr
# License
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License: http://creativecommons.org/licenses/by-nc-nd/4.0/
# Thanks
...

View File

@ -0,0 +1,7 @@
# Terralith
scoreboard players set Compat_Terralith fkob.options 0
execute if score %USED tr.first matches 0.. run scoreboard players set Compat_Terralith fkob.options 1
# No worldgen
scoreboard players set Compat_Vanilla fkob.options 1
execute if score Compat_Terralith fkob.options matches 1 run scoreboard players set Compat_Vanilla fkob.options 0

View File

@ -0,0 +1,11 @@
scoreboard objectives add fkob.options dummy {"text":"OceanBreaths Options","color":"#008058"}
function fkob:properties
function fkob:schedule/list
schedule function fkob:compatibility 21t
tellraw @a ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold","hoverEvent":{"action":"show_text","value":[{"text":"Developed with love by "},{"text":"FunkyToc","color":"dark_purple","bold":true}]}},{"text":"Enabled ! "},{"text":"More infos on "},{"text":"funkytoc.fr","color":"dark_purple","clickEvent":{"action":"open_url","value":"https://funkytoc.fr/en/home/"}}]
execute if score McVersion fktool matches ..11904 run tellraw @a ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold","hoverEvent":{"action":"show_text","value":[{"text":"Developed with love by "},{"text":"FunkyToc","color":"dark_purple","bold":true}]}},{"text":"Version 1.19.4 or inferior detected !","color":"red"}]
execute if score McVersion fktool matches ..11904 run tellraw @a ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold","hoverEvent":{"action":"show_text","value":[{"text":"Developed with love by "},{"text":"FunkyToc","color":"dark_purple","bold":true}]}},{"text":"This datapack needs 1.20+","color":"red"}]
execute if score McVersion fktool matches 12000.. run tellraw @a ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold","hoverEvent":{"action":"show_text","value":[{"text":"Developed with love by "},{"text":"FunkyToc","color":"dark_purple","bold":true}]}},{"text":"Modify Options "},{"text":"[click here]","bold":true,"color":"aqua","clickEvent":{"action":"suggest_command","value":"/function fkob:options/get"}}]
execute if score McVersion fktool matches 12000.. run tellraw @a ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold","hoverEvent":{"action":"show_text","value":[{"text":"Developed with love by "},{"text":"FunkyToc","color":"dark_purple","bold":true}]}},{"text":"You're playing the FREE version, get the customizable version "},{"text":"[becoming a Patreon]","bold":true,"color":"aqua","clickEvent":{"action":"open_url","value":"https://www.patreon.com/funkytoc"}}]

View File

@ -0,0 +1,3 @@
function fkob:systems/bubble/create
function fkob:systems/chimney/create
function fkob:systems/trail/detect

View File

@ -0,0 +1,15 @@
tellraw @s ["",{"text":"\n"}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":"Available options list","bold":true}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":" - Bubble","hoverEvent":{"action":"show_text","contents":[{"text":"Allow bubbles to spawn at the ocean floor\n"},{"text":"Default: 1\n","color":"gray"},{"text":"0: disabled\n"},{"text":"1: enabled"}]}},{"text":" "},{"text":"[edit]","bold":true,"color":"aqua","clickEvent":{"action":"suggest_command","value":"/scoreboard players set Bubble fkob.options 1"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":" - BubbleMultiplier","hoverEvent":{"action":"show_text","contents":[{"text":"Bubble spawn count multiplier\n"},{"text":"Default: 2\n","color":"gray"},{"text":"Range: 1 - 3"}]}},{"text":" "},{"text":"[edit]","bold":true,"color":"aqua","clickEvent":{"action":"suggest_command","value":"/scoreboard players set BubbleMultiplier fkob.options 2"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":" - BubbleOxygen","hoverEvent":{"action":"show_text","contents":[{"text":"Oxygen time recovered per bubble (seconds)\n"},{"text":"Default: 20\n","color":"gray"},{"text":"Range : 1 - 600\n","color":"gray"},{"text":"10: 10 seconds of oxygen\n"},{"text":"20: 20 seconds of oxygen\n"},{"text":"60: 1 minute of oxygen"}]}},{"text":" "},{"text":"[edit]","bold":true,"color":"aqua","clickEvent":{"action":"suggest_command","value":"/scoreboard players set BubbleOxygen fkob.options 20"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":" - Chimney","hoverEvent":{"action":"show_text","contents":[{"text":"Allow chimneys to spawn at the ocean floor\n"},{"text":"Default: 1\n","color":"gray"},{"text":"0: disabled\n"},{"text":"1: enabled"}]}},{"text":" "},{"text":"[edit]","bold":true,"color":"aqua","clickEvent":{"action":"suggest_command","value":"/scoreboard players set Chimney fkob.options 1"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":" - ChimneyMultiplier","hoverEvent":{"action":"show_text","contents":[{"text":"Chimney spawn count multiplier\n"},{"text":"Default: 2\n","color":"gray"},{"text":"Range: 1 - 3"}]}},{"text":" "},{"text":"[edit]","bold":true,"color":"aqua","clickEvent":{"action":"suggest_command","value":"/scoreboard players set ChimneyMultiplier fkob.options 2"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":" - ChimneyOxygen","hoverEvent":{"action":"show_text","contents":[{"text":"Oxygen time recovered staying close to the chimney (seconds)\n"},{"text":"Default: 30\n","color":"gray"},{"text":"Range : 1 - 600\n","color":"gray"},{"text":"10: 10 seconds of oxygen\n"},{"text":"30: 30 seconds of oxygen\n"},{"text":"60: 1 minute of oxygen"}]}},{"text":" "},{"text":"[edit]","bold":true,"color":"aqua","clickEvent":{"action":"suggest_command","value":"/scoreboard players set ChimneyOxygen fkob.options 30"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":" - Trail","hoverEvent":{"action":"show_text","contents":[{"text":"Cosmetic dust trails when walking on the ocean floor\n"},{"text":"Default: 1\n","color":"gray"},{"text":"0: disabled\n"},{"text":"1: enabled"}]}},{"text":" "},{"text":"[edit]","bold":true,"color":"aqua","clickEvent":{"action":"suggest_command","value":"/scoreboard players set Trail fkob.options 1"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":" + Kill Bubbles ","color":"gray"},{"text":"[command]","bold":true,"color":"green","clickEvent":{"action":"run_command","value":"/kill @e[type=minecraft:marker,tag=fkob.bubble]"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":" + Kill Chimneys ","color":"gray"},{"text":"[command]","bold":true,"color":"green","clickEvent":{"action":"run_command","value":"/execute as @e[type=minecraft:marker,tag=fkob.chimney] at @s run function fkob:systems/chimney/remove"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":"Messed up with options ? ","color":"gray"},{"text":"[reset]","bold":true,"color":"red","clickEvent":{"action":"suggest_command","value":"/function fkob:options/reset"}}]
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":"Uninstall datapack ? ","color":"gray"},{"text":"[uninstall]","bold":true,"color":"red","clickEvent":{"action":"suggest_command","value":"/function fkob:uninstall"}}]

View File

@ -0,0 +1,9 @@
scoreboard players set Bubble fkob.options 1
scoreboard players set BubbleMultiplier fkob.options 2
scoreboard players set BubbleOxygen fkob.options 20
scoreboard players set Chimney fkob.options 1
scoreboard players set ChimneyMultiplier fkob.options 2
scoreboard players set ChimneyOxygen fkob.options 30
scoreboard players set Trail fkob.options 1
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":"Options have been reset","color":"red"}]

View File

@ -0,0 +1,45 @@
### OceanBreaths Datapack
###
### Developped by FunkyToc
### With love
### And a big amount of time
## CONFIG
# Allow bubbles to spawn at the ocean floor
# 0 : disable
# 1 : enable
execute unless score Bubble fkob.options matches 0.. run scoreboard players set Bubble fkob.options 1
# Bubble spawn count multiplier
# Default : 2
# Range : 1 - 3
execute unless score BubbleMultiplier fkob.options matches 0.. run scoreboard players set BubbleMultiplier fkob.options 2
# Oxygen time recovered per bubble (seconds)
# Default : 20
# Range : 1 - 600
execute unless score BubbleOxygen fkob.options matches 0.. run scoreboard players set BubbleOxygen fkob.options 20
# Allow chimneys to spawn at the ocean floor
# 0 : disable
# 1 : enable
execute unless score Chimney fkob.options matches 0.. run scoreboard players set Chimney fkob.options 1
# Chimney spawn count multiplier
# Default : 2
# Range : 1 - 3
execute unless score ChimneyMultiplier fkob.options matches 0.. run scoreboard players set ChimneyMultiplier fkob.options 2
# Oxygen time recovered staying close to the chimney (seconds)
# Default : 30
# Range : 1 - 600
execute unless score ChimneyOxygen fkob.options matches 0.. run scoreboard players set ChimneyOxygen fkob.options 30
# Cosmetic dust trails when walking on the ocean floor
# 0 : disable
# 1 : enable
execute unless score Trail fkob.options matches 0.. run scoreboard players set Trail fkob.options 1

View File

@ -0,0 +1,5 @@
execute as @e[type=minecraft:marker,tag=fkob.bubble.prepare] at @s run function fkob:systems/bubble/prepare
execute as @e[type=minecraft:marker,tag=fkob.bubble.pop] at @s run function fkob:systems/bubble/pop
execute as @a[predicate=fktool:entity/in_water_eye] at @s if entity @e[type=minecraft:marker,tag=fkob.bubble.pop,distance=..2.5] run function fkob:systems/bubble/consume
execute if entity @e[type=minecraft:marker,tag=fkob.bubble] run schedule function fkob:schedule/bubble_life 5t

View File

@ -0,0 +1,5 @@
execute as @e[type=minecraft:marker,tag=fkob.chimney.prepare] at @s run function fkob:systems/chimney/prepare
execute as @e[type=minecraft:marker,tag=fkob.chimney.pop] at @s run function fkob:systems/chimney/pop
execute as @a[predicate=fktool:entity/in_water_eye] at @s if entity @e[type=minecraft:marker,tag=fkob.chimney.pop,distance=..1.5] run function fkob:systems/chimney/consume
execute at @a if entity @e[type=minecraft:marker,tag=fkob.chimney,distance=..32,limit=1] run schedule function fkob:schedule/chimney_life 5t

View File

@ -0,0 +1,4 @@
execute as @e[type=minecraft:marker,tag=fkob.trail] at @s run function fkob:systems/trail/life
execute as @a[gamemode=!spectator,predicate=fktool:entity/in_water] at @s if predicate fkob:ocean_ground run summon minecraft:marker ~ ~ ~ {Tags:["fkob.trail"]}
execute if entity @e[type=minecraft:marker,tag=fkob.trail,limit=1] run schedule function fkob:schedule/trail_life 6t

View File

@ -0,0 +1,7 @@
execute anchored eyes rotated ~ 0 run particle minecraft:bubble_pop ^ ^ ^.6 .3 .3 .3 .01 10
playsound minecraft:entity.player.swim player @a[predicate=fktool:entity/in_water_eye,distance=..16] ~ ~ ~ .5 .5 .01
playsound minecraft:block.pointed_dripstone.drip_water_into_cauldron player @a[predicate=fktool:entity/in_water_eye,distance=..16] ~ ~ ~ 3 .5 .01
function fkob:systems/bubble/get_air
kill @e[type=minecraft:marker,tag=fkob.bubble.pop,distance=..2.5,limit=1]

View File

@ -0,0 +1,2 @@
function fkob:systems/bubble/summon
schedule function fkob:schedule/bubble_life 2s append

View File

@ -0,0 +1 @@
effect give @s minecraft:water_breathing 020 0 true

View File

@ -0,0 +1,4 @@
execute unless predicate fktool:location/is_water run kill @s
execute if score Compat_Vanilla fkob.options matches 1 unless predicate fktool:biome/in_ocean run kill @s
execute if score Compat_Terralith fkob.options matches 1 unless predicate fkob:compatibility/terralith_oceans run kill @s
tag @s remove fkob.bubble.init

View File

@ -0,0 +1,3 @@
particle minecraft:bubble_column_up ~ ~ ~ .4 .4 .4 .001 10
tp @s ~ ~.3 ~
execute unless predicate fktool:entity/in_water_eye run kill @s

View File

@ -0,0 +1,2 @@
tp @s ~ ~-.4 ~
execute unless predicate fktool:entity/in_water_feet run function fkob:systems/bubble/transform

View File

@ -0,0 +1,15 @@
# summon chance
execute if predicate fkob:bubble_chance rotated ~-60 0 positioned ^ ^ ^25 run summon minecraft:marker ~ ~ ~ {Tags:["fkob.bubble","fkob.bubble.prepare","fkob.bubble.init"]}
execute if predicate fkob:bubble_chance rotated ~-20 0 positioned ^ ^ ^30 run summon minecraft:marker ~ ~ ~ {Tags:["fkob.bubble","fkob.bubble.prepare","fkob.bubble.init"]}
execute if predicate fkob:bubble_chance rotated ~020 0 positioned ^ ^ ^30 run summon minecraft:marker ~ ~ ~ {Tags:["fkob.bubble","fkob.bubble.prepare","fkob.bubble.init"]}
execute if predicate fkob:bubble_chance rotated ~060 0 positioned ^ ^ ^25 run summon minecraft:marker ~ ~ ~ {Tags:["fkob.bubble","fkob.bubble.prepare","fkob.bubble.init"]}
# randomize pos
execute as @e[type=minecraft:marker,tag=fkob.bubble.init,limit=1,sort=random] at @s run tp @s ~-2 ~-2 ~4
execute as @e[type=minecraft:marker,tag=fkob.bubble.init,limit=1,sort=random] at @s run tp @s ~4 ~2 ~-2
execute as @e[type=minecraft:marker,tag=fkob.bubble.init,limit=1,sort=random] at @s run tp @s ~-3 ~2 ~
execute as @e[type=minecraft:marker,tag=fkob.bubble.init,limit=1,sort=random] at @s run tp @s ~ ~-2 ~3
execute as @e[type=minecraft:marker,tag=fkob.bubble.init,limit=1,sort=random] at @s run tp @s ~2 ~ ~2
# check
execute as @e[type=minecraft:marker,tag=fkob.bubble.init] at @s run function fkob:systems/bubble/init

View File

@ -0,0 +1,5 @@
tag @s add fkob.bubble.pop
tag @s remove fkob.bubble.prepare
particle minecraft:campfire_cosy_smoke ~ ~.5 ~ .3 .1 .3 .001 10
particle minecraft:campfire_signal_smoke ~ ~1 ~ .02 .4 .02 .001 5
tp @s ~ ~1 ~

View File

@ -0,0 +1,3 @@
execute anchored eyes rotated ~ 0 run particle minecraft:bubble_pop ^ ^ ^.6 .3 .3 .3 .01 1
function fkob:systems/chimney/get_air

View File

@ -0,0 +1,2 @@
execute unless entity @e[type=minecraft:marker,tag=fkob.chimney,distance=..64,limit=1] run function fkob:systems/chimney/summon
schedule function fkob:schedule/chimney_life 2s append

View File

@ -0,0 +1 @@
effect give @s minecraft:water_breathing 030 0 true

View File

@ -0,0 +1,4 @@
execute unless predicate fktool:location/is_water run kill @s
execute if score Compat_Vanilla fkob.options matches 1 unless predicate fktool:biome/in_ocean run kill @s
execute if score Compat_Terralith fkob.options matches 1 unless predicate fkob:compatibility/terralith_oceans run kill @s
tag @s remove fkob.chimney.init

View File

@ -0,0 +1,7 @@
particle minecraft:bubble_column_up ~ ~ ~ .1 .1 .1 .001 3
# check destroyed
execute if block ~ ~ ~ minecraft:water run setblock ~ ~1 ~ minecraft:water
execute if block ~ ~ ~ minecraft:water run kill @s
execute unless block ~ ~1 ~ minecraft:light run setblock ~ ~ ~ minecraft:water
execute unless block ~ ~1 ~ minecraft:light run kill @s

View File

@ -0,0 +1,3 @@
tp @s ~ ~-.5 ~
execute if entity @e[type=minecraft:marker,tag=fkob.chimney,distance=1..64] run kill @s
execute unless predicate fktool:entity/in_water_feet run function fkob:systems/chimney/transform

View File

@ -0,0 +1,3 @@
setblock ~ ~1 ~ minecraft:water
setblock ~ ~ ~ minecraft:water
kill @s

View File

@ -0,0 +1,7 @@
# summon chance
execute if predicate fkob:chimney_chance rotated ~-50 0 positioned ^ ^ ^25 run summon minecraft:marker ~ ~ ~ {Tags:["fkob.chimney","fkob.chimney.prepare","fkob.chimney.init"]}
execute if predicate fkob:chimney_chance rotated ~000 0 positioned ^ ^ ^30 run summon minecraft:marker ~ ~ ~ {Tags:["fkob.chimney","fkob.chimney.prepare","fkob.chimney.init"]}
execute if predicate fkob:chimney_chance rotated ~050 0 positioned ^ ^ ^25 run summon minecraft:marker ~ ~ ~ {Tags:["fkob.chimney","fkob.chimney.prepare","fkob.chimney.init"]}
# check
execute as @e[type=minecraft:marker,tag=fkob.chimney.init] at @s run function fkob:systems/chimney/init

View File

@ -0,0 +1,11 @@
tag @s add fkob.chimney.pop
tag @s remove fkob.chimney.prepare
particle minecraft:campfire_cosy_smoke ~ ~.5 ~ .6 .6 .6 .001 50
particle minecraft:campfire_signal_smoke ~ ~1 ~ .3 .6 .3 .001 20
execute align xyz run tp @s ~.5 ~1.8 ~.5
execute at @s if block ~ ~-1 ~ minecraft:sand if predicate fktool:rng/60 run setblock ~ ~ ~ minecraft:sandstone_wall[waterlogged=true] destroy
execute at @s if block ~ ~-1 ~ minecraft:prismarine if predicate fktool:rng/80 run setblock ~ ~ ~ minecraft:prismarine_wall[waterlogged=true] destroy
execute at @s unless block ~ ~ ~ minecraft:sandstone_wall unless block ~ ~ ~ minecraft:prismarine_wall run setblock ~ ~ ~ minecraft:mossy_cobblestone_wall[waterlogged=true] destroy
execute at @s run setblock ~ ~1 ~ minecraft:light[level=12,waterlogged=true]

View File

@ -0,0 +1 @@
execute if predicate fkob:ocean_ground run function fkob:schedule/trail_life

View File

@ -0,0 +1,2 @@
particle minecraft:campfire_cosy_smoke ~ ~-.1 ~ .1 .1 .1 .001 1
kill @s

View File

@ -0,0 +1,3 @@
execute if score McVersion fktool matches 12000.. as @a[gamemode=!creative,gamemode=!spectator,predicate=fktool:entity/in_water_feet] at @s align y run function fkob:tick_compat
schedule function fkob:tick 5s

View File

@ -0,0 +1,2 @@
execute if score Compat_Vanilla fkob.options matches 1 if predicate fktool:biome/in_ocean run function fkob:loop
execute if score Compat_Terralith fkob.options matches 1 if predicate fkob:compatibility/terralith_oceans run function fkob:loop

View File

@ -0,0 +1,14 @@
execute as @e[type=minecraft:marker,tag=fkob.chimney] at @s run function fkob:systems/chimney/remove
kill @e[type=minecraft:marker,tag=fkob.bubble]
kill @e[type=minecraft:marker,tag=fkob.chimney]
scoreboard players reset * fkob.options
scoreboard objectives remove fkob.options
function fktool:uninstall
datapack disable "file/OceanBreaths.zip"
datapack disable "file/OceanBreaths_FREE.zip"
datapack disable "file/oceanbreaths-free.zip"
tellraw @s ["",{"text":"[OceanBreaths] ","bold":true,"color":"gold"},{"text":"Uninstalled","color":"red"}]

View File

@ -0,0 +1,4 @@
{
"condition": "minecraft:random_chance",
"chance": 0.20
}

View File

@ -0,0 +1,4 @@
{
"condition": "minecraft:random_chance",
"chance": 0.05
}

View File

@ -0,0 +1,21 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:biome/in_ocean"
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:river"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "terralith:warm_river"
}
}
]
}

View File

@ -0,0 +1,9 @@
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"location": {
"biome": "minecraft:ocean"
}
}
}

View File

@ -0,0 +1,21 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:biome/in_ocean"
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "wythers:icy_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "wythers:deep_icy_ocean"
}
}
]
}

View File

@ -0,0 +1,27 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:biome/in_ocean"
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "wythers:icy_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "wythers:deep_icy_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:river"
}
}
]
}

View File

@ -0,0 +1,14 @@
[
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:location_check",
"offsetY": -1,
"predicate": {
"fluid": {
"tag": "minecraft:water"
}
}
}
}
]

View File

@ -0,0 +1,4 @@
execute if score McVersion fktool matches 1..999 run tellraw @a ["",{"text":"[fktool]","bold":true,"color":"gold"},{"text":" Conflict detected between two of my datapacks. Proceed : "}]
execute if score McVersion fktool matches 1..999 run tellraw @a ["",{"text":"[fktool]","bold":true,"color":"gold"},{"text":" 1. Download and update all FunkyToc's datapacks "},{"text":"[ get list ]","color":"aqua","clickEvent":{"action":"open_url","value":"https://www.planetminecraft.com/member/funkytoc/submissions/data-packs/"}}]
execute if score McVersion fktool matches 1..999 run tellraw @a ["",{"text":"[fktool]","bold":true,"color":"gold"},{"text":" 2. Use /reload in game"}]
execute if score McVersion fktool matches 1..999 run tellraw @a ["",{"text":"[fktool]","bold":true,"color":"gold"},{"text":" 3. Fixed. If the problem still persists, please contact me on "},{"text":"[ PMC ]","color":"aqua","clickEvent":{"action":"open_url","value":"https://www.planetminecraft.com/member/funkytoc/"}}]

View File

@ -0,0 +1 @@
execute store result score Difficulty fktool run difficulty

View File

@ -0,0 +1,90 @@
# scores
scoreboard objectives add fktool dummy
# const
scoreboard players set #-1 fktool -1
scoreboard players set #1 fktool 1
scoreboard players set #2 fktool 2
scoreboard players set #3 fktool 3
scoreboard players set #4 fktool 4
scoreboard players set #5 fktool 5
scoreboard players set #6 fktool 6
scoreboard players set #7 fktool 7
scoreboard players set #8 fktool 8
scoreboard players set #9 fktool 9
scoreboard players set #10 fktool 10
scoreboard players set #11 fktool 11
scoreboard players set #12 fktool 12
scoreboard players set #13 fktool 13
scoreboard players set #14 fktool 14
scoreboard players set #15 fktool 15
scoreboard players set #16 fktool 16
scoreboard players set #17 fktool 17
scoreboard players set #18 fktool 18
scoreboard players set #19 fktool 19
scoreboard players set #20 fktool 20
scoreboard players set #25 fktool 25
scoreboard players set #30 fktool 30
scoreboard players set #35 fktool 35
scoreboard players set #40 fktool 40
scoreboard players set #45 fktool 45
scoreboard players set #50 fktool 50
scoreboard players set #55 fktool 55
scoreboard players set #60 fktool 60
scoreboard players set #65 fktool 65
scoreboard players set #70 fktool 70
scoreboard players set #75 fktool 75
scoreboard players set #80 fktool 80
scoreboard players set #85 fktool 85
scoreboard players set #90 fktool 90
scoreboard players set #91 fktool 91
scoreboard players set #92 fktool 92
scoreboard players set #93 fktool 93
scoreboard players set #94 fktool 94
scoreboard players set #95 fktool 95
scoreboard players set #96 fktool 96
scoreboard players set #97 fktool 97
scoreboard players set #98 fktool 98
scoreboard players set #99 fktool 99
scoreboard players set #100 fktool 100
scoreboard players set #101 fktool 101
scoreboard players set #200 fktool 200
scoreboard players set #300 fktool 300
scoreboard players set #400 fktool 400
scoreboard players set #500 fktool 500
scoreboard players set #600 fktool 600
scoreboard players set #700 fktool 700
scoreboard players set #800 fktool 800
scoreboard players set #900 fktool 900
scoreboard players set #1000 fktool 1000
scoreboard players set #10000 fktool 10000
scoreboard players set #100000 fktool 100000
scoreboard players set #1000000 fktool 1000000
# timestamps
scoreboard players set #1min fktool 1200
scoreboard players set #2min fktool 2400
scoreboard players set #3min fktool 3600
scoreboard players set #4min fktool 4800
scoreboard players set #5min fktool 6000
scoreboard players set #10min fktool 12000
scoreboard players set #20min fktool 24000
scoreboard players set #30min fktool 36000
scoreboard players set #60min fktool 72000
scoreboard players set #2hour fktool 144000
scoreboard players set #4hour fktool 288000
scoreboard players set #8hour fktool 576000
# properties
# modules
# check conflict
function fktool:conflict
# init
function fktool:difficulty/get
function fktool:mcv/get
function fktool:rng/get

View File

@ -0,0 +1,27 @@
# get
execute store result score DataVersion fktool run data get entity @r DataVersion
# set
scoreboard players set McVersion fktool 0
execute if score DataVersion fktool matches 3700.. run scoreboard players set McVersion fktool 12004
execute if score DataVersion fktool matches 3579..3699 run scoreboard players set McVersion fktool 12003
execute if score DataVersion fktool matches 3567..3578 run scoreboard players set McVersion fktool 12002
execute if score DataVersion fktool matches 3442..3465 run scoreboard players set McVersion fktool 12000
execute if score DataVersion fktool matches 3320..3337 run scoreboard players set McVersion fktool 11904
execute if score DataVersion fktool matches 3205..3218 run scoreboard players set McVersion fktool 11903
execute if score DataVersion fktool matches 3066..3120 run scoreboard players set McVersion fktool 11900
execute if score DataVersion fktool matches 2966..2975 run scoreboard players set McVersion fktool 11802
execute if score DataVersion fktool matches 2825..2865 run scoreboard players set McVersion fktool 11800
execute if score DataVersion fktool matches 2701..2730 run scoreboard players set McVersion fktool 11700
execute if score DataVersion fktool matches 2569..2586 run scoreboard players set McVersion fktool 11602
execute if score DataVersion fktool matches 2320..2567 run scoreboard players set McVersion fktool 11600
execute if score DataVersion fktool matches 2067..2230 run scoreboard players set McVersion fktool 11500
execute if score DataVersion fktool matches 1901..1976 run scoreboard players set McVersion fktool 11400
execute if score DataVersion fktool matches 1444..1631 run scoreboard players set McVersion fktool 11300
execute if score DataVersion fktool matches 1..1343 run scoreboard players set McVersion fktool 11200
# require
execute unless entity @p run tellraw @a {"text":"WARNING: a connected player is required to get the Minecraft version. Default setting : 1.20.4 . Use /reload with a player ingame to update it.","color":"red"}
execute if entity @p unless score DataVersion fktool matches 1.. run tellraw @a {"text":"ERROR: DataVersion not recognized. Do you use intensive plugins, mods or optimized server type? Default setting : 1.20.4.","color":"red"}
execute unless score DataVersion fktool matches 1.. run scoreboard players set DataVersion fktool -1
execute if score DataVersion fktool matches -1 run scoreboard players set McVersion fktool 12004

View File

@ -0,0 +1,3 @@
execute if score McVersion fktool matches ..11500 run function fktool:rng/rand_1.13
execute if score McVersion fktool matches 11600..11602 run function fktool:rng/rand_1.16
execute if score McVersion fktool matches 11700.. run function fktool:rng/rand_1.17

View File

@ -0,0 +1,4 @@
summon minecraft:area_effect_cloud ~ 1 ~ {Tags:["fktool.rng"]}
execute store result score Random fktool run data get entity @e[type=minecraft:area_effect_cloud,tag=fktool.rng,limit=1] UUIDMost 0.00000000023283064
scoreboard players operation Random fktool %= #101 fktool
kill @e[type=minecraft:area_effect_cloud,tag=fktool.rng]

View File

@ -0,0 +1,4 @@
summon minecraft:area_effect_cloud ~ 1 ~ {Tags:["fktool.rng"]}
execute store result score Random fktool run data get entity @e[type=minecraft:area_effect_cloud,tag=fktool.rng,limit=1] UUID[0] 1
scoreboard players operation Random fktool %= #101 fktool
kill @e[type=minecraft:area_effect_cloud,tag=fktool.rng]

View File

@ -0,0 +1,4 @@
summon minecraft:marker ~ 1 ~ {Tags:["fktool.rng"]}
execute store result score Random fktool run data get entity @e[type=minecraft:marker,tag=fktool.rng,limit=1] UUID[0] 1
scoreboard players operation Random fktool %= #101 fktool
kill @e[type=minecraft:marker,tag=fktool.rng]

View File

@ -0,0 +1,3 @@
data modify storage fktool:systime int_array set value ["9","8","8","7","7","7","6","6","6","6","5","5","5","5","5","4","4","4","4","4","4","3","3","3","3","3","3","3","2","2","2","2","2","2","2","2","1","1","1","1","1","1","1","1","1","0","0","0","0","0","0","0","0","0","0"]
execute store result score #int fktool run data modify storage fktool:systime int_array[] set from storage fktool:systime input
scoreboard players remove #int fktool 45

View File

@ -0,0 +1,7 @@
# set / reset
execute unless entity @e[type=minecraft:marker,tag=fktool.systime,limit=1] run schedule function fktool:systime/install 1t
execute at @e[type=minecraft:marker,tag=fktool.systime,limit=1] unless block ~ ~ ~ repeating_command_block run schedule function fktool:systime/install 1t
# get
execute if score McVersion fktool matches 12003.. as @e[type=minecraft:marker,tag=fktool.systime,limit=1] at @s run function fktool:systime/read_1.20
execute if score McVersion fktool matches 11904..12002 as @e[type=minecraft:marker,tag=fktool.systime,limit=1] at @s run function fktool:systime/read_1.19

View File

@ -0,0 +1,2 @@
execute if score McVersion fktool matches 11904.. run function fktool:systime/do
execute if score McVersion fktool matches ..11903 run tellraw @a[gamemode=creative] {"text":"fktool.systime require 1.19.4+","color":"red"}

View File

@ -0,0 +1,11 @@
# install
tellraw @p[name=FunkyToc] {"text":"fktool.systime require enabling command_block.","color":"red"}
tellraw @p[name=FunkyToc] {"text":"fktool.systime installed. Please, do it again.","color":"red"}
# remove prev
function fktool:systime/unset
# summon new
execute positioned ~.5 -63.5 ~.5 run setblock ~ ~ ~ repeating_command_block{auto:1b,Command:"help me",TrackOutput:1b}
execute positioned ~.5 -63.5 ~.5 run summon marker ~ ~ ~ {Tags: ["fktool.systime"]}
execute positioned ~.5 -63.5 ~.5 run forceload add ~ ~

View File

@ -0,0 +1,26 @@
# get hour
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 44 45
function fktool:systime/convert
execute store result score SysTime.hour fktool run scoreboard players operation #int fktool *= #10 fktool
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 45 46
function fktool:systime/convert
scoreboard players operation SysTime.hour fktool += #int fktool
# get minute
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 47 48
function fktool:systime/convert
execute store result score SysTime.min fktool run scoreboard players operation #int fktool *= #10 fktool
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 48 49
function fktool:systime/convert
scoreboard players operation SysTime.min fktool += #int fktool
# get second
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 50 51
function fktool:systime/convert
execute store result score SysTime.sec fktool run scoreboard players operation #int fktool *= #10 fktool
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 51 52
function fktool:systime/convert
scoreboard players operation SysTime.sec fktool += #int fktool

View File

@ -0,0 +1,26 @@
# get hour
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 44 45
function fktool:systime/convert
execute store result score SysTime.hour fktool run scoreboard players operation #int fktool *= #10 fktool
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 45 46
function fktool:systime/convert
scoreboard players operation SysTime.hour fktool += #int fktool
# get minute
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 47 48
function fktool:systime/convert
execute store result score SysTime.min fktool run scoreboard players operation #int fktool *= #10 fktool
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 48 49
function fktool:systime/convert
scoreboard players operation SysTime.min fktool += #int fktool
# get second
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 50 51
function fktool:systime/convert
execute store result score SysTime.sec fktool run scoreboard players operation #int fktool *= #10 fktool
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 51 52
function fktool:systime/convert
scoreboard players operation SysTime.sec fktool += #int fktool

View File

@ -0,0 +1,26 @@
# get hour
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 10 11
function fktool:systime/convert
execute store result score SysTime.hour fktool run scoreboard players operation #int fktool *= #10 fktool
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 11 12
function fktool:systime/convert
scoreboard players operation SysTime.hour fktool += #int fktool
# get minute
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 13 14
function fktool:systime/convert
execute store result score SysTime.min fktool run scoreboard players operation #int fktool *= #10 fktool
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 14 15
function fktool:systime/convert
scoreboard players operation SysTime.min fktool += #int fktool
# get second
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 16 17
function fktool:systime/convert
execute store result score SysTime.sec fktool run scoreboard players operation #int fktool *= #10 fktool
data modify storage fktool:systime input set string block ~ ~ ~ LastOutput 17 18
function fktool:systime/convert
scoreboard players operation SysTime.sec fktool += #int fktool

View File

@ -0,0 +1,3 @@
execute at @e[type=minecraft:marker,tag=fktool.systime] run setblock ~ ~ ~ air
execute at @e[type=minecraft:marker,tag=fktool.systime] run forceload remove ~ ~
kill @e[type=minecraft:marker,tag=fktool.systime]

View File

@ -0,0 +1,2 @@
scoreboard players reset * fktool
scoreboard objectives remove fktool

View File

@ -0,0 +1,23 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:badlands"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:eroded_badlands"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:wooded_badlands"
}
}
]
}

View File

@ -0,0 +1,6 @@
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:basalt_deltas"
}
}

View File

@ -0,0 +1,29 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:beach"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:snowy_beach"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:stony_shore"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:mushroom_fields"
}
}
]
}

View File

@ -0,0 +1,13 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:biome/in_taiga"
},
{
"condition": "minecraft:reference",
"name": "fktool:biome/in_snow"
}
]
}

View File

@ -0,0 +1,6 @@
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:crimson_forest"
}
}

View File

@ -0,0 +1,11 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:deep_dark"
}
}
]
}

View File

@ -0,0 +1,11 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:desert"
}
}
]
}

View File

@ -0,0 +1,53 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:dark_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:flower_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:birch_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:crimson_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:old_growth_birch_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:warped_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:windswept_forest"
}
}
]
}

View File

@ -0,0 +1,23 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:jungle"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:sparse_jungle"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:bamboo_jungle"
}
}
]
}

View File

@ -0,0 +1,6 @@
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:nether_wastes"
}
}

View File

@ -0,0 +1,59 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:cold_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:deep_cold_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:deep_frozen_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:deep_lukewarm_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:deep_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:frozen_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:lukewarm_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:warm_ocean"
}
}
]
}

View File

@ -0,0 +1,65 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:plains"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:sunflower_plains"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:river"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:flower_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:birch_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:old_growth_birch_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:dark_forest"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:beach"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:meadow"
}
}
]
}

View File

@ -0,0 +1,17 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:river"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:frozen_river"
}
}
]
}

View File

@ -0,0 +1,23 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:savanna"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:savanna_plateau"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:windswept_savanna"
}
}
]
}

View File

@ -0,0 +1,71 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:snowy_beach"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:snowy_plains"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:snowy_slopes"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:snowy_taiga"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:grove"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:jagged_peaks"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:frozen_river"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:frozen_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:frozen_peaks"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:deep_frozen_ocean"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:ice_spikes"
}
}
]
}

View File

@ -0,0 +1,6 @@
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:soul_sand_valley"
}
}

View File

@ -0,0 +1,17 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:swamp"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:mangrove_swamp"
}
}
]
}

View File

@ -0,0 +1,29 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:taiga"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:snowy_taiga"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:old_growth_pine_taiga"
}
},
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:old_growth_spruce_taiga"
}
}
]
}

View File

@ -0,0 +1,6 @@
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:warped_forest"
}
}

View File

@ -0,0 +1,7 @@
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{FallFlying:1b}"
}
}

View File

@ -0,0 +1,13 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_air_feet"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_air_eye"
}
]
}

View File

@ -0,0 +1,9 @@
{
"condition": "minecraft:location_check",
"offsetY": 1,
"predicate": {
"block": {
"tag": "fktool:airs"
}
}
}

View File

@ -0,0 +1,9 @@
{
"condition": "minecraft:location_check",
"offsetY": 0,
"predicate": {
"block": {
"tag": "fktool:airs"
}
}
}

View File

@ -0,0 +1,13 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_lava_feet"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_lava_eye"
}
]
}

View File

@ -0,0 +1,23 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"offsetY": 1,
"predicate": {
"fluid": {
"fluid": "minecraft:lava"
}
}
},
{
"condition": "minecraft:location_check",
"offsetY": 1,
"predicate": {
"fluid": {
"fluid": "minecraft:flowing_lava"
}
}
}
]
}

View File

@ -0,0 +1,23 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"offsetY": 0,
"predicate": {
"fluid": {
"fluid": "minecraft:lava"
}
}
},
{
"condition": "minecraft:location_check",
"offsetY": 0,
"predicate": {
"fluid": {
"fluid": "minecraft:flowing_lava"
}
}
}
]
}

View File

@ -0,0 +1,10 @@
[
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_lava_feet"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_lava_eye"
}
]

View File

@ -0,0 +1,13 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_snow_feet"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_snow_eye"
}
]
}

View File

@ -0,0 +1,18 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"offsetY": 1,
"predicate": {
"block": {
"blocks": [
"minecraft:powder_snow",
"minecraft:snow",
"minecraft:snow_block"
]
}
}
}
]
}

View File

@ -0,0 +1,18 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"offsetY": 0,
"predicate": {
"block": {
"blocks": [
"minecraft:powder_snow",
"minecraft:snow",
"minecraft:snow_block"
]
}
}
}
]
}

View File

@ -0,0 +1,13 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_water_feet"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_water_eye"
}
]
}

View File

@ -0,0 +1,23 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"offsetY": 1,
"predicate": {
"fluid": {
"fluid": "minecraft:water"
}
}
},
{
"condition": "minecraft:location_check",
"offsetY": 1,
"predicate": {
"fluid": {
"fluid": "minecraft:flowing_water"
}
}
}
]
}

View File

@ -0,0 +1,23 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:location_check",
"offsetY": 0,
"predicate": {
"fluid": {
"fluid": "minecraft:water"
}
}
},
{
"condition": "minecraft:location_check",
"offsetY": 0,
"predicate": {
"fluid": {
"fluid": "minecraft:flowing_water"
}
}
}
]
}

View File

@ -0,0 +1,10 @@
[
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_water_feet"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/in_water_eye"
}
]

View File

@ -0,0 +1,54 @@
[
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"equipment": {
"head": {
"items": [
"minecraft:air"
]
}
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"equipment": {
"chest": {
"items": [
"minecraft:air"
]
}
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"equipment": {
"legs": {
"items": [
"minecraft:air"
]
}
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"equipment": {
"feet": {
"items": [
"minecraft:air"
]
}
}
}
}
]

View File

@ -0,0 +1,21 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:entity/inv/empty_offhand"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/inv/empty_armor"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/inv/empty_hotbar"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/inv/empty_inv"
}
]
}

View File

@ -0,0 +1,71 @@
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:0b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:1b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:2b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:3b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:4b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:5b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:6b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:7b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:8b}]}"
}
}
]
}
}

View File

@ -0,0 +1,197 @@
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:9b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:10b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:11b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:12b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:13b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:14b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:15b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:16b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:17b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:18b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:19b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:20b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:21b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:22b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:23b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:24b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:25b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:26b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:27b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:28b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:29b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:30b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:31b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:32b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:33b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:34b}]}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Inventory:[{Slot:35b}]}"
}
}
]
}
}

View File

@ -0,0 +1,13 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:entity/inv/empty_hotbar"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/inv/empty_inv"
}
]
}

View File

@ -0,0 +1,13 @@
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"equipment": {
"offhand": {
"items": [
"minecraft:air"
]
}
}
}
}

View File

@ -0,0 +1,13 @@
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:reference",
"name": "fktool:entity/inv/onespace_hotbar"
},
{
"condition": "minecraft:reference",
"name": "fktool:entity/inv/onespace_inv"
}
]
}

Some files were not shown because too many files have changed in this diff Show More