diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/loot/BeheadingLootLoader.java b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/loot/BeheadingLootLoader.java index afb591040..60afddc80 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/loot/BeheadingLootLoader.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/loot/BeheadingLootLoader.java @@ -29,6 +29,8 @@ import java.util.Map; public class BeheadingLootLoader { + private static final EnchantmentPredicate BEHEADING_ANY = + new EnchantmentPredicate(ModEnchantments.BEHEADING.get(), MinMaxBounds.Ints.ANY); private static final EnchantmentPredicate BEHEADING_1 = new EnchantmentPredicate(ModEnchantments.BEHEADING.get(), MinMaxBounds.Ints.between(1, 1)); private static final EnchantmentPredicate BEHEADING_2 = @@ -101,41 +103,7 @@ public class BeheadingLootLoader { LootContext.EntityTarget.KILLER, EntityPredicate.Builder.entity() .equipment(EntityEquipmentPredicate.Builder.equipment().mainhand( - ItemPredicate.Builder.item().hasEnchantment(BEHEADING_1).build() - ).build()) - )) - .when(LootItemKilledByPlayerCondition.killedByPlayer()) - .when(LootItemRandomChanceCondition.randomChance(0.5f)) - ) - .withPool( - LootPool.lootPool() - .setRolls(ConstantValue.exactly(1.0f)) - .add( - LootItem.lootTableItem(Items.PLAYER_HEAD) - .apply(FillPlayerHead.fillPlayerHead(LootContext.EntityTarget.THIS)) - ) - .when(LootItemEntityPropertyCondition.hasProperties( - LootContext.EntityTarget.KILLER, - EntityPredicate.Builder.entity() - .equipment(EntityEquipmentPredicate.Builder.equipment().mainhand( - ItemPredicate.Builder.item().hasEnchantment(BEHEADING_2).build() - ).build()) - )) - .when(LootItemKilledByPlayerCondition.killedByPlayer()) - .when(LootItemRandomChanceCondition.randomChance(0.8f)) - ) - .withPool( - LootPool.lootPool() - .setRolls(ConstantValue.exactly(1.0f)) - .add( - LootItem.lootTableItem(Items.PLAYER_HEAD) - .apply(FillPlayerHead.fillPlayerHead(LootContext.EntityTarget.THIS)) - ) - .when(LootItemEntityPropertyCondition.hasProperties( - LootContext.EntityTarget.KILLER, - EntityPredicate.Builder.entity() - .equipment(EntityEquipmentPredicate.Builder.equipment().mainhand( - ItemPredicate.Builder.item().hasEnchantment(BEHEADING_3).build() + ItemPredicate.Builder.item().hasEnchantment(BEHEADING_ANY).build() ).build()) )) .when(LootItemKilledByPlayerCondition.killedByPlayer()) @@ -151,35 +119,7 @@ public class BeheadingLootLoader { LootContext.EntityTarget.KILLER, EntityPredicate.Builder.entity() .equipment(EntityEquipmentPredicate.Builder.equipment().mainhand( - ItemPredicate.Builder.item().hasEnchantment(BEHEADING_1).build() - ).build()) - )) - .when(LootItemKilledByPlayerCondition.killedByPlayer()) - .when(LootItemRandomChanceCondition.randomChance(0.5f)) - ) - .withPool( - LootPool.lootPool() - .setRolls(ConstantValue.exactly(1.0f)) - .add(LootItem.lootTableItem(Items.DRAGON_HEAD)) - .when(LootItemEntityPropertyCondition.hasProperties( - LootContext.EntityTarget.KILLER, - EntityPredicate.Builder.entity() - .equipment(EntityEquipmentPredicate.Builder.equipment().mainhand( - ItemPredicate.Builder.item().hasEnchantment(BEHEADING_2).build() - ).build()) - )) - .when(LootItemKilledByPlayerCondition.killedByPlayer()) - .when(LootItemRandomChanceCondition.randomChance(0.8f)) - ) - .withPool( - LootPool.lootPool() - .setRolls(ConstantValue.exactly(1.0f)) - .add(LootItem.lootTableItem(Items.DRAGON_HEAD)) - .when(LootItemEntityPropertyCondition.hasProperties( - LootContext.EntityTarget.KILLER, - EntityPredicate.Builder.entity() - .equipment(EntityEquipmentPredicate.Builder.equipment().mainhand( - ItemPredicate.Builder.item().hasEnchantment(BEHEADING_3).build() + ItemPredicate.Builder.item().hasEnchantment(BEHEADING_ANY).build() ).build()) )) .when(LootItemKilledByPlayerCondition.killedByPlayer()) diff --git a/fabric/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/ender_dragon.json b/fabric/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/ender_dragon.json index 3e77bda1d..d038f1a55 100644 --- a/fabric/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/ender_dragon.json +++ b/fabric/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/ender_dragon.json @@ -12,78 +12,7 @@ "mainhand": { "enchantments": [ { - "enchantment": "anvilcraft:beheading", - "levels": 1 - } - ] - } - } - } - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "chance": 0.5, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:dragon_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:entity_properties", - "entity": "killer", - "predicate": { - "equipment": { - "mainhand": { - "enchantments": [ - { - "enchantment": "anvilcraft:beheading", - "levels": 2 - } - ] - } - } - } - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "chance": 0.8, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:dragon_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:entity_properties", - "entity": "killer", - "predicate": { - "equipment": { - "mainhand": { - "enchantments": [ - { - "enchantment": "anvilcraft:beheading", - "levels": 3 + "enchantment": "anvilcraft:beheading" } ] } diff --git a/fabric/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/player.json b/fabric/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/player.json index 95f4f96e4..ef9fc365e 100644 --- a/fabric/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/player.json +++ b/fabric/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/player.json @@ -12,90 +12,7 @@ "mainhand": { "enchantments": [ { - "enchantment": "anvilcraft:beheading", - "levels": 1 - } - ] - } - } - } - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "chance": 0.5, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "entity": "this", - "function": "minecraft:fill_player_head" - } - ], - "name": "minecraft:player_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:entity_properties", - "entity": "killer", - "predicate": { - "equipment": { - "mainhand": { - "enchantments": [ - { - "enchantment": "anvilcraft:beheading", - "levels": 2 - } - ] - } - } - } - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "chance": 0.8, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "entity": "this", - "function": "minecraft:fill_player_head" - } - ], - "name": "minecraft:player_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:entity_properties", - "entity": "killer", - "predicate": { - "equipment": { - "mainhand": { - "enchantments": [ - { - "enchantment": "anvilcraft:beheading", - "levels": 3 + "enchantment": "anvilcraft:beheading" } ] } diff --git a/forge/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/ender_dragon.json b/forge/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/ender_dragon.json index 3e77bda1d..d038f1a55 100644 --- a/forge/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/ender_dragon.json +++ b/forge/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/ender_dragon.json @@ -12,78 +12,7 @@ "mainhand": { "enchantments": [ { - "enchantment": "anvilcraft:beheading", - "levels": 1 - } - ] - } - } - } - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "chance": 0.5, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:dragon_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:entity_properties", - "entity": "killer", - "predicate": { - "equipment": { - "mainhand": { - "enchantments": [ - { - "enchantment": "anvilcraft:beheading", - "levels": 2 - } - ] - } - } - } - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "chance": 0.8, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:dragon_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:entity_properties", - "entity": "killer", - "predicate": { - "equipment": { - "mainhand": { - "enchantments": [ - { - "enchantment": "anvilcraft:beheading", - "levels": 3 + "enchantment": "anvilcraft:beheading" } ] } diff --git a/forge/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/player.json b/forge/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/player.json index 95f4f96e4..ef9fc365e 100644 --- a/forge/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/player.json +++ b/forge/src/generated/resources/data/anvilcraft/loot_tables/entities/beheading/player.json @@ -12,90 +12,7 @@ "mainhand": { "enchantments": [ { - "enchantment": "anvilcraft:beheading", - "levels": 1 - } - ] - } - } - } - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "chance": 0.5, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "entity": "this", - "function": "minecraft:fill_player_head" - } - ], - "name": "minecraft:player_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:entity_properties", - "entity": "killer", - "predicate": { - "equipment": { - "mainhand": { - "enchantments": [ - { - "enchantment": "anvilcraft:beheading", - "levels": 2 - } - ] - } - } - } - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "chance": 0.8, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "entity": "this", - "function": "minecraft:fill_player_head" - } - ], - "name": "minecraft:player_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:entity_properties", - "entity": "killer", - "predicate": { - "equipment": { - "mainhand": { - "enchantments": [ - { - "enchantment": "anvilcraft:beheading", - "levels": 3 + "enchantment": "anvilcraft:beheading" } ] }