diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java index f15f6d8..8b4f31f 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talismans.java @@ -17,6 +17,7 @@ import com.willfp.talismans.talismans.talismans.PoseidonTalisman; import com.willfp.talismans.talismans.talismans.RaidTalisman; import com.willfp.talismans.talismans.talismans.SharpnessTalisman; import com.willfp.talismans.talismans.talismans.SkeletonTalisman; +import com.willfp.talismans.talismans.talismans.SpiderResistanceTalisman; import com.willfp.talismans.talismans.talismans.SpiderTalisman; import com.willfp.talismans.talismans.talismans.ZombieResistanceTalisman; import com.willfp.talismans.talismans.talismans.ZombieTalisman; @@ -53,6 +54,7 @@ public class Talismans { public static final Talisman EXTRACTION_TALISMAN = new ExtractionTalisman(); public static final Talisman SHARPNESS_TALISMAN = new SharpnessTalisman(); public static final Talisman ZOMBIE_RESISTANCE_TALISMAN = new ZombieResistanceTalisman(); + public static final Talisman SPIDER_RESISTANCE_TALISMAN = new SpiderResistanceTalisman(); /** * Get all registered {@link Talisman}s. diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/SpiderResistanceTalisman.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/SpiderResistanceTalisman.java new file mode 100644 index 0000000..1c3d53b --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/SpiderResistanceTalisman.java @@ -0,0 +1,26 @@ +package com.willfp.talismans.talismans.talismans; + +import com.willfp.talismans.talismans.Talisman; +import com.willfp.talismans.talismans.Talismans; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Spider; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.jetbrains.annotations.NotNull; + +public class SpiderResistanceTalisman extends Talisman { + public SpiderResistanceTalisman() { + super("spider_resistance_talisman"); + } + + @Override + public void onDamageByEntity(@NotNull final Player victim, + @NotNull final Entity attacker, + @NotNull final EntityDamageByEntityEvent event) { + if (!(attacker instanceof Spider)) { + return; + } + + event.setDamage(event.getDamage() * (1 - (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-less-damage")) / 100)); + } +} diff --git a/eco-core/core-plugin/src/main/resources/talismans/spiderresistancetalisman.yml b/eco-core/core-plugin/src/main/resources/talismans/spiderresistancetalisman.yml new file mode 100644 index 0000000..bcb9d67 --- /dev/null +++ b/eco-core/core-plugin/src/main/resources/talismans/spiderresistancetalisman.yml @@ -0,0 +1,27 @@ +name: "Spider Resistance Talisman" +description: Take 10% less damage from spiders. +enabled: true + +obtaining: + # Recipes are left-right, top-bottom + # The first item is the top left, the second is top middle, and so on. The last is bottom right. + recipe: + - string + - string + - string + + - string + - shield + - string + + - string + - string + - string + +general-config: + disabled-in-worlds: [] + # Texture is base64, https://minecraft-heads.com has a list of skulls. + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWVjZWRmNDJhNjFlMTQyMzEzMTE3NzI4YTEwMTMzMjljZjlmNjcxN2Q2YWNjYzVhNzVmYzA0NDI1ODA0NSJ9fX0= + +config: + percent-less-damage: 10 \ No newline at end of file