From 0079d1ea6e5464666bf99265885dabb939cd79e5 Mon Sep 17 00:00:00 2001 From: runcows Date: Tue, 16 Jun 2026 12:53:30 -0400 Subject: [PATCH 1/4] crossbow cartridges sulfur cube --- .../function/check_projectile.mcfunction | 2 +- .../function/projectile/bucket.mcfunction | 9 +++++---- .../bucket/multishot/sulfur_cube.mcfunction | 12 ++++++++++++ .../projectile/bucket/sulfur_cube.mcfunction | 17 +++++++++++++++++ .../predicate/items/bucket.json | 9 +++++---- .../predicate/items/sulfur_cube.json | 13 +++++++++++++ .../tags/item/bucket.json | 9 +++++---- 7 files changed, 58 insertions(+), 13 deletions(-) create mode 100644 gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction create mode 100644 gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/sulfur_cube.mcfunction create mode 100644 gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/sulfur_cube.json diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/check_projectile.mcfunction b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/check_projectile.mcfunction index a5525466f2..ee29fd3634 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/check_projectile.mcfunction +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/check_projectile.mcfunction @@ -6,7 +6,7 @@ # tripwire execute if entity @s[gamemode=!adventure,predicate=gm4_crossbow_cartridges:items/string,x_rotation=-15..15] align xyz positioned ~0.5 ~ ~0.5 run function gm4_crossbow_cartridges:cables/shoot_arrow -# bucket with fish/axolotl +# bucket with mob execute if entity @s[tag=!gm4_cb_use,predicate=gm4_crossbow_cartridges:items/bucket] run function gm4_crossbow_cartridges:projectile/bucket # torch diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction index 6fb5ff70eb..d6f74b2b56 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction @@ -1,16 +1,17 @@ -# Check fish/axolotl and shoot +# Check bucket type and shoot # @s = player using the crossbow # at arrow # run from check_projectile tag @s add gm4_cb_use +execute if predicate gm4_crossbow_cartridges:items/axolotl run function gm4_crossbow_cartridges:projectile/bucket/axolotl execute if predicate gm4_crossbow_cartridges:items/cod run function gm4_crossbow_cartridges:projectile/bucket/cod -execute if predicate gm4_crossbow_cartridges:items/salmon run function gm4_crossbow_cartridges:projectile/bucket/salmon execute if predicate gm4_crossbow_cartridges:items/pufferfish run function gm4_crossbow_cartridges:projectile/bucket/pufferfish -execute if predicate gm4_crossbow_cartridges:items/tropical run function gm4_crossbow_cartridges:projectile/bucket/tropical -execute if predicate gm4_crossbow_cartridges:items/axolotl run function gm4_crossbow_cartridges:projectile/bucket/axolotl +execute if predicate gm4_crossbow_cartridges:items/salmon run function gm4_crossbow_cartridges:projectile/bucket/salmon +execute if predicate gm4_crossbow_cartridges:items/sulfur_cube run function gm4_crossbow_cartridges:projectile/bucket/sulfur_cube execute if predicate gm4_crossbow_cartridges:items/tadpole run function gm4_crossbow_cartridges:projectile/bucket/tadpole +execute if predicate gm4_crossbow_cartridges:items/tropical run function gm4_crossbow_cartridges:projectile/bucket/tropical # replace filled bucket in player's offhand with water bucket item replace entity @s[gamemode=!creative] weapon.offhand with minecraft:water_bucket diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction new file mode 100644 index 0000000000..f1d7c2f225 --- /dev/null +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction @@ -0,0 +1,12 @@ +# Summon sulfur cube +# @s = player using the crossbow +# at @s +# run from projectile/bucket + +# replace arrow with sulfur cube and copy data +summon minecraft:sulfur_cube ~ ~ ~ {FromBucket:1b,Tags:["gm4_cb_projectile"],active_effects:[{id:'minecraft:instant_damage',amplifier:10,duration:1}],Silent:1b,DeathLootTable:"gm4:empty"} + +execute as @e[type=minecraft:sulfur_cube,tag=gm4_cb_projectile,limit=1,distance=..1] run function gm4_crossbow_cartridges:projectile/arrow_motion + +# sulfur cube sound +playsound minecraft:entity.axolotl.idle_air player @a[distance=..15] ^ ^ ^1 2 .5 diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/sulfur_cube.mcfunction b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/sulfur_cube.mcfunction new file mode 100644 index 0000000000..2e5d119d36 --- /dev/null +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/sulfur_cube.mcfunction @@ -0,0 +1,17 @@ +# Summon sulfur cube +# @s = player using the crossbow +# at arrow +# run from projectile/bucket + +# replace arrow with sulfur cube and copy data +summon minecraft:sulfur_cube ~ ~ ~ {FromBucket:1b,Tags:["gm4_cb_projectile"],active_effects:[{id:'minecraft:regeneration',amplifier:10,duration:200,show_particles:0b}]} + +data modify storage gm4_crossbow_cartridges:temp projectile merge from entity @s equipment.offhand.components."minecraft:bucket_entity_data" +data modify storage gm4_crossbow_cartridges:temp projectile.equipment.body set from entity @s equipment.offhand.components."minecraft:sulfur_cube_content" +execute as @e[type=minecraft:sulfur_cube,tag=gm4_cb_projectile,limit=1,distance=..1] run function gm4_crossbow_cartridges:projectile/arrow_motion + +# sulfur cube sound +playsound minecraft:entity.sulfur_cube.jump player @a[distance=..15] ^ ^ ^1 2 .5 + +# shoot 2 more if using multishot +execute at @e[tag=gm4_cb_arrow,distance=..1,limit=2] run function gm4_crossbow_cartridges:projectile/bucket/multishot/sulfur_cube diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/bucket.json b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/bucket.json index 01411d2c8a..655b234cd0 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/bucket.json +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/bucket.json @@ -5,12 +5,13 @@ "equipment": { "offhand": { "items": [ + "minecraft:axolotl_bucket", "minecraft:cod_bucket", - "minecraft:salmon_bucket", "minecraft:pufferfish_bucket", - "minecraft:tropical_fish_bucket", - "minecraft:axolotl_bucket", - "minecraft:tadpole_bucket" + "minecraft:salmon_bucket", + "minecraft:sulfur_cube_bucket", + "minecraft:tadpole_bucket", + "minecraft:tropical_fish_bucket" ] } } diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/sulfur_cube.json b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/sulfur_cube.json new file mode 100644 index 0000000000..5158fbb2db --- /dev/null +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/sulfur_cube.json @@ -0,0 +1,13 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "offhand": { + "items": [ + "minecraft:sulfur_cube_bucket" + ] + } + } + } +} diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/tags/item/bucket.json b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/tags/item/bucket.json index 1437bb8e1f..2e37537f17 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/tags/item/bucket.json +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/tags/item/bucket.json @@ -1,10 +1,11 @@ { "values": [ + "minecraft:axolotl_bucket", "minecraft:cod_bucket", - "minecraft:salmon_bucket", "minecraft:pufferfish_bucket", - "minecraft:tropical_fish_bucket", - "minecraft:axolotl_bucket", - "minecraft:tadpole_bucket" + "minecraft:salmon_bucket", + "minecraft:sulfur_cube_bucket", + "minecraft:tadpole_bucket", + "minecraft:tropical_fish_bucket" ] } From 2091f63c5ce53eec82752c8550f565c442a0c653 Mon Sep 17 00:00:00 2001 From: runcows Date: Tue, 16 Jun 2026 12:55:20 -0400 Subject: [PATCH 2/4] oops --- .../function/projectile/bucket/multishot/sulfur_cube.mcfunction | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction index f1d7c2f225..5feae6e7e3 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction @@ -9,4 +9,4 @@ summon minecraft:sulfur_cube ~ ~ ~ {FromBucket:1b,Tags:["gm4_cb_projectile"],act execute as @e[type=minecraft:sulfur_cube,tag=gm4_cb_projectile,limit=1,distance=..1] run function gm4_crossbow_cartridges:projectile/arrow_motion # sulfur cube sound -playsound minecraft:entity.axolotl.idle_air player @a[distance=..15] ^ ^ ^1 2 .5 +playsound minecraft:entity.sulfur_cube.jump player @a[distance=..15] ^ ^ ^1 2 .5 From 9cc410e4045ef71263206d4c95411841834527eb Mon Sep 17 00:00:00 2001 From: runcows Date: Tue, 16 Jun 2026 13:22:27 -0400 Subject: [PATCH 3/4] misode review --- .../function/projectile/bucket.mcfunction | 7 +++--- .../bucket/multishot/sulfur_cube.mcfunction | 2 +- .../projectile/bucket/sulfur_cube.mcfunction | 5 ++-- .../predicate/items/bucket.json | 24 +++++++------------ 4 files changed, 16 insertions(+), 22 deletions(-) diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction index d6f74b2b56..3d08d33e42 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction @@ -13,8 +13,9 @@ execute if predicate gm4_crossbow_cartridges:items/sulfur_cube run function gm4_ execute if predicate gm4_crossbow_cartridges:items/tadpole run function gm4_crossbow_cartridges:projectile/bucket/tadpole execute if predicate gm4_crossbow_cartridges:items/tropical run function gm4_crossbow_cartridges:projectile/bucket/tropical +# give advancement for launching mob in a bucket +execute unless predicate gm4_crossbow_cartridges:items/sulfur_cube advancement grant @s only gm4:crossbow_cartridges_bucket + # replace filled bucket in player's offhand with water bucket +execute if predicate gm4_crossbow_cartridges:items/sulfur_cube run return run item replace entity @s[gamemode=!creative] weapon.offhand with minecraft:bucket item replace entity @s[gamemode=!creative] weapon.offhand with minecraft:water_bucket - -# give advancement for launching mob in a bucket -advancement grant @s only gm4:crossbow_cartridges_bucket diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction index 5feae6e7e3..18349473a6 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/multishot/sulfur_cube.mcfunction @@ -9,4 +9,4 @@ summon minecraft:sulfur_cube ~ ~ ~ {FromBucket:1b,Tags:["gm4_cb_projectile"],act execute as @e[type=minecraft:sulfur_cube,tag=gm4_cb_projectile,limit=1,distance=..1] run function gm4_crossbow_cartridges:projectile/arrow_motion # sulfur cube sound -playsound minecraft:entity.sulfur_cube.jump player @a[distance=..15] ^ ^ ^1 2 .5 +playsound minecraft:entity.sulfur_cube.squish player @a[distance=..15] ^ ^ ^1 2 1 diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/sulfur_cube.mcfunction b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/sulfur_cube.mcfunction index 2e5d119d36..0c131ddf56 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/sulfur_cube.mcfunction +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket/sulfur_cube.mcfunction @@ -6,12 +6,13 @@ # replace arrow with sulfur cube and copy data summon minecraft:sulfur_cube ~ ~ ~ {FromBucket:1b,Tags:["gm4_cb_projectile"],active_effects:[{id:'minecraft:regeneration',amplifier:10,duration:200,show_particles:0b}]} -data modify storage gm4_crossbow_cartridges:temp projectile merge from entity @s equipment.offhand.components."minecraft:bucket_entity_data" +data modify storage gm4_crossbow_cartridges:temp projectile.Age merge from entity @s equipment.offhand.components."minecraft:bucket_entity_data".age +data modify storage gm4_crossbow_cartridges:temp projectile.AgeLocked merge from entity @s equipment.offhand.components."minecraft:bucket_entity_data".age_locked data modify storage gm4_crossbow_cartridges:temp projectile.equipment.body set from entity @s equipment.offhand.components."minecraft:sulfur_cube_content" execute as @e[type=minecraft:sulfur_cube,tag=gm4_cb_projectile,limit=1,distance=..1] run function gm4_crossbow_cartridges:projectile/arrow_motion # sulfur cube sound -playsound minecraft:entity.sulfur_cube.jump player @a[distance=..15] ^ ^ ^1 2 .5 +playsound minecraft:entity.sulfur_cube.squish player @a[distance=..15] ^ ^ ^1 2 1 # shoot 2 more if using multishot execute at @e[tag=gm4_cb_arrow,distance=..1,limit=2] run function gm4_crossbow_cartridges:projectile/bucket/multishot/sulfur_cube diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/bucket.json b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/bucket.json index 655b234cd0..8312b0a3b1 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/bucket.json +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/predicate/items/bucket.json @@ -1,19 +1,11 @@ { - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": [ - "minecraft:axolotl_bucket", - "minecraft:cod_bucket", - "minecraft:pufferfish_bucket", - "minecraft:salmon_bucket", - "minecraft:sulfur_cube_bucket", - "minecraft:tadpole_bucket", - "minecraft:tropical_fish_bucket" - ] - } + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "offhand": { + "items": "#gm4_crossbow_cartridges:bucket" + } + } } - } } From acf681d270dcee35649e7e6a7f41613f3c7a05e8 Mon Sep 17 00:00:00 2001 From: runcows Date: Tue, 16 Jun 2026 13:23:42 -0400 Subject: [PATCH 4/4] oops --- .../function/projectile/bucket.mcfunction | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction index 3d08d33e42..67c4c4897c 100644 --- a/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction +++ b/gm4_crossbow_cartridges/data/gm4_crossbow_cartridges/function/projectile/bucket.mcfunction @@ -14,7 +14,7 @@ execute if predicate gm4_crossbow_cartridges:items/tadpole run function gm4_cros execute if predicate gm4_crossbow_cartridges:items/tropical run function gm4_crossbow_cartridges:projectile/bucket/tropical # give advancement for launching mob in a bucket -execute unless predicate gm4_crossbow_cartridges:items/sulfur_cube advancement grant @s only gm4:crossbow_cartridges_bucket +execute unless predicate gm4_crossbow_cartridges:items/sulfur_cube run advancement grant @s only gm4:crossbow_cartridges_bucket # replace filled bucket in player's offhand with water bucket execute if predicate gm4_crossbow_cartridges:items/sulfur_cube run return run item replace entity @s[gamemode=!creative] weapon.offhand with minecraft:bucket