Update logical iframes via datapack

This commit is contained in:
Sergeant Acoustic 2025-09-03 02:04:55 +01:00
parent 41562e1ba7
commit cb06105892
49 changed files with 411 additions and 15 deletions

View file

@ -1028,21 +1028,6 @@
},
"path": "mods/kotlinforforge-4.11.0-all.jar"
},
{
"downloads": [
"https://cdn.modrinth.com/data/6sYYcZFx/versions/ogY1TqWD/logical-iframes-1.0.1.jar"
],
"env": {
"client": "required",
"server": "required"
},
"fileSize": 35440,
"hashes": {
"sha1": "c6f32b2aafda3f39880022026b1b58702d1863ab",
"sha512": "7fab7f901a5414dfc428b55f4e3a90e8f66c2b81888cd2fe80a9b16d63e79711409d08594d94f48f44800f0033f04fd80168da18d606d93180dbfd0208192f64"
},
"path": "mods/logical-iframes-1.0.1.jar"
},
{
"downloads": [
"https://cdn.modrinth.com/data/NRjRiSSD/versions/3w0IxNtk/memoryleakfix-forge-1.17%2B-1.1.5.jar"

View file

@ -0,0 +1,23 @@
{
"parent": "logical_iframes:root",
"criteria": {
"requirement": {
"trigger": "minecraft:entity_hurt_player",
"conditions": {
"damage": {
"type": {
"tags": [
{
"id": "logical_iframes:melee",
"expected": true
}
]
}
}
}
}
},
"rewards": {
"function": "logical_iframes:damage/entity_hurt_player"
}
}

View file

@ -0,0 +1,47 @@
{
"parent": "logical_iframes:root",
"criteria": {
"requirement": {
"trigger": "minecraft:player_hurt_entity",
"conditions": {
"damage": {
"type": {
"tags": [
{
"id": "logical_iframes:melee",
"expected": true
}
]
}
},
"entity": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"logical_iframes.timer": {
"min": 1
}
}
}
},
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"type": "minecraft:player"
}
}
}
]
}
}
},
"rewards": {
"function": "logical_iframes:damage/player_hurt_entity"
}
}

View file

@ -0,0 +1,7 @@
{
"criteria": {
"root": {
"trigger": "minecraft:tick"
}
}
}

View file

@ -0,0 +1,18 @@
{
"parent": "logical_iframes:root",
"criteria": {
"requirement": {
"trigger": "minecraft:entity_hurt_player",
"conditions": {
"damage": {
"source_entity": {
"type": "#logical_iframes:slimes"
}
}
}
}
},
"rewards": {
"function": "logical_iframes:slime_fix"
}
}

View file

@ -0,0 +1,4 @@
advancement revoke @s only logical_iframes:entity_hurt_player
execute unless entity @s[tag=logical_iframes.tick] run function logical_iframes:damage/knockback/apply
execute if score @s logical_iframes.timer matches 1..9 run function logical_iframes:damage/player_prevent_armor_damage/armor

View file

@ -0,0 +1,2 @@
scoreboard players set @s logical_iframes.timer 10
tag @s add logical_iframes.tick

View file

@ -0,0 +1,3 @@
attribute @s minecraft:generic.knockback_resistance modifier remove logical_iframes:kb_res
tag @s remove logical_iframes.tick

View file

@ -0,0 +1,3 @@
advancement revoke @s only logical_iframes:player_hurt_entity
execute as @e[type=!#logical_iframes:invalid_targets,nbt={HurtTime:10s},distance=0.01..10] run function logical_iframes:damage/knockback/apply

View file

@ -0,0 +1,16 @@
data modify storage logical_iframes:temp Inventory set from entity @s Inventory
function logical_iframes:damage/player_prevent_armor_damage/fix_armor_macro_1 {slot_num:100,slot:"feet"}
function logical_iframes:damage/player_prevent_armor_damage/fix_armor_macro_1 {slot_num:101,slot:"legs"}
function logical_iframes:damage/player_prevent_armor_damage/fix_armor_macro_1 {slot_num:102,slot:"chest"}
function logical_iframes:damage/player_prevent_armor_damage/fix_armor_macro_1 {slot_num:103,slot:"head"}
stopsound @a[distance=..16] * minecraft:item.armor.equip_chain
stopsound @a[distance=..16] * minecraft:item.armor.equip_diamond
stopsound @a[distance=..16] * minecraft:item.armor.equip_elytra
stopsound @a[distance=..16] * minecraft:item.armor.equip_generic
stopsound @a[distance=..16] * minecraft:item.armor.equip_gold
stopsound @a[distance=..16] * minecraft:item.armor.equip_iron
stopsound @a[distance=..16] * minecraft:item.armor.equip_leather
stopsound @a[distance=..16] * minecraft:item.armor.equip_netherite
stopsound @a[distance=..16] * minecraft:item.armor.equip_turtle

View file

@ -0,0 +1,9 @@
$data modify storage logical_iframes:temp item set from storage logical_iframes:temp Inventory[{Slot:$(slot_num)b}]
execute if data storage logical_iframes:temp {item:{components:{"minecraft:unbreakable":{}}}} run return 1
execute store result score #damage logical_iframes.misc run data get storage logical_iframes:temp item.components."minecraft:damage"
scoreboard players remove #damage logical_iframes.misc 1
execute store result storage logical_iframes:temp for_macro.damage int 1 run scoreboard players get #damage logical_iframes.misc
$data modify storage logical_iframes:temp for_macro.slot set value $(slot)
function logical_iframes:damage/player_prevent_armor_damage/fix_armor_macro_2 with storage logical_iframes:temp for_macro

View file

@ -0,0 +1 @@
$item modify entity @s armor.$(slot) [{"function":"minecraft:set_components","components":{"minecraft:damage":$(damage)}}]

View file

@ -0,0 +1,4 @@
execute if score @s logical_iframes.timer matches 10 run attribute @s minecraft:generic.knockback_resistance modifier add logical_iframes:kb_res 1 add_value
scoreboard players remove @s logical_iframes.timer 1
execute if score @s logical_iframes.timer matches 0 run function logical_iframes:damage/knockback/remove

View file

@ -0,0 +1,2 @@
scoreboard objectives add logical_iframes.timer dummy
scoreboard objectives add logical_iframes.misc dummy

View file

@ -0,0 +1 @@
execute as @e[type=!#logical_iframes:invalid_targets,tag=logical_iframes.tick] run function logical_iframes:damage/tickdown

View file

@ -0,0 +1,3 @@
advancement revoke @s only logical_iframes:slimes_hurt_player
execute on attacker run effect give @s weakness 1 255 true

View file

@ -0,0 +1,7 @@
{
"values": [
"minecraft:magic",
"minecraft:wither"//,
// "minecraft:on_fire"
]
}

View file

@ -0,0 +1,7 @@
{
"values": [
"minecraft:mob_attack",
"minecraft:mob_attack_no_aggro",
"minecraft:player_attack"
]
}

View file

@ -0,0 +1,50 @@
{
"values": [
"minecraft:area_effect_cloud",
"minecraft:armor_stand",
"minecraft:arrow",
"minecraft:block_display",
"minecraft:boat",
"minecraft:breeze_wind_charge",
"minecraft:chest_boat",
"minecraft:chest_minecart",
"minecraft:command_block_minecart",
"minecraft:dragon_fireball",
"minecraft:egg",
"minecraft:end_crystal",
"minecraft:ender_pearl",
"minecraft:evoker_fangs",
"minecraft:experience_bottle",
"minecraft:experience_orb",
"minecraft:eye_of_ender",
"minecraft:falling_block",
"minecraft:fireball",
"minecraft:firework_rocket",
"minecraft:fishing_bobber",
"minecraft:furnace_minecart",
"minecraft:glow_item_frame",
"minecraft:hopper_minecart",
"minecraft:interaction",
"minecraft:item",
"minecraft:item_display",
"minecraft:item_frame",
"minecraft:leash_knot",
"minecraft:lightning_bolt",
"minecraft:llama_spit",
"minecraft:marker",
"minecraft:ominous_item_spawner",
"minecraft:painting",
"minecraft:potion",
"minecraft:shulker_bullet",
"minecraft:small_fireball",
"minecraft:snowball",
"minecraft:spawner_minecart",
"minecraft:spectral_arrow",
"minecraft:text_display",
"minecraft:tnt",
"minecraft:tnt_minecart",
"minecraft:trident",
"minecraft:wind_charge",
"minecraft:wither_skull"
]
}

View file

@ -0,0 +1,6 @@
{
"values": [
"slime",
"magma_cube"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"#minecraft:is_explosion"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:out_of_world"
]
}

View file

@ -0,0 +1,8 @@
{
"values": [
"minecraft:magic",
"minecraft:thorns",
"#minecraft:is_projectile",
"#minecraft:is_explosion"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:on_fire"
]
}

View file

@ -0,0 +1,22 @@
{
"values": [
"minecraft:on_fire",
"minecraft:in_wall",
"minecraft:cramming",
"minecraft:drown",
"minecraft:fly_into_wall",
"minecraft:generic",
"minecraft:wither",
"minecraft:dragon_breath",
"minecraft:starve",
"minecraft:fall",
"minecraft:freeze",
"minecraft:stalagmite",
"minecraft:magic",
"minecraft:indirect_magic",
"minecraft:out_of_world",
"minecraft:generic_kill",
"minecraft:sonic_boom",
"minecraft:outside_border"
]
}

View file

@ -0,0 +1,10 @@
{
"values": [
"minecraft:sonic_boom",
"#minecraft:is_projectile",
"#logical_iframes:melee",
"#logical_iframes:dot",
"#minecraft:is_explosion",
"minecraft:fall"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:starve"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:sonic_boom"
]
}

View file

@ -0,0 +1,6 @@
{
"values": [
"minecraft:out_of_world",
"minecraft:generic_kill"
]
}

View file

@ -0,0 +1,6 @@
{
"values": [
"minecraft:out_of_world",
"minecraft:generic_kill"
]
}

View file

@ -0,0 +1,7 @@
{
"values": [
"#minecraft:bypasses_armor",
"minecraft:falling_anvil",
"minecraft:falling_stalactite"
]
}

View file

@ -0,0 +1,7 @@
{
"values": [
"minecraft:falling_anvil",
"minecraft:falling_block",
"minecraft:falling_stalactite"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:in_fire"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:drown"
]
}

View file

@ -0,0 +1,8 @@
{
"values": [
"minecraft:fireworks",
"minecraft:explosion",
"minecraft:player_explosion",
"minecraft:bad_respawn_point"
]
}

View file

@ -0,0 +1,6 @@
{
"values": [
"minecraft:fall",
"minecraft:stalagmite"
]
}

View file

@ -0,0 +1,10 @@
{
"values": [
"minecraft:in_fire",
"minecraft:on_fire",
"minecraft:lava",
"minecraft:hot_floor",
"minecraft:unattributed_fireball",
"minecraft:fireball"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:freeze"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:lightning_bolt"
]
}

View file

@ -0,0 +1,11 @@
{
"values": [
"minecraft:arrow",
"minecraft:trident",
"minecraft:mob_projectile",
"minecraft:unattributed_fireball",
"minecraft:fireball",
"minecraft:wither_skull",
"minecraft:thrown"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:mob_attack_no_aggro"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"minecraft:drown"
]
}

View file

@ -0,0 +1,7 @@
{
"values": [
"minecraft:explosion",
"minecraft:player_explosion",
"minecraft:bad_respawn_point"
]
}

View file

@ -0,0 +1,8 @@
{
"replace": true,
"values": [
"minecraft:magic",
"minecraft:indirect_magic",
"minecraft:thorns"
]
}

View file

@ -0,0 +1,6 @@
{
"values": [
"minecraft:drown",
"minecraft:in_wall"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"logical_iframes:load"
]
}

View file

@ -0,0 +1,5 @@
{
"values": [
"logical_iframes:main"
]
}

View file

@ -0,0 +1,6 @@
{
"pack": {
"pack_format": 15,
"description": "Reinventing the entire I-frames mechanic"
}
}