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 5608150..d2f3a8c 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 @@ -13,6 +13,7 @@ import com.willfp.talismans.talismans.talismans.relic.ExtractionRelic; import com.willfp.talismans.talismans.talismans.relic.FeatherRelic; import com.willfp.talismans.talismans.talismans.relic.FlameRelic; import com.willfp.talismans.talismans.talismans.relic.FluxRelic; +import com.willfp.talismans.talismans.talismans.relic.HealingRelic; import com.willfp.talismans.talismans.talismans.relic.NetherRelic; import com.willfp.talismans.talismans.talismans.relic.PoseidonRelic; import com.willfp.talismans.talismans.talismans.relic.RaidRelic; @@ -27,6 +28,7 @@ import com.willfp.talismans.talismans.talismans.ring.ExtractionRing; import com.willfp.talismans.talismans.talismans.ring.FeatherRing; import com.willfp.talismans.talismans.talismans.ring.FlameRing; import com.willfp.talismans.talismans.talismans.ring.FluxRing; +import com.willfp.talismans.talismans.talismans.ring.HealingRing; import com.willfp.talismans.talismans.talismans.ring.NetherRing; import com.willfp.talismans.talismans.talismans.ring.PoseidonRing; import com.willfp.talismans.talismans.talismans.ring.RaidRing; @@ -42,6 +44,7 @@ import com.willfp.talismans.talismans.talismans.talisman.ExtractionTalisman; import com.willfp.talismans.talismans.talismans.talisman.FeatherTalisman; import com.willfp.talismans.talismans.talismans.talisman.FlameTalisman; import com.willfp.talismans.talismans.talismans.talisman.FluxTalisman; +import com.willfp.talismans.talismans.talismans.talisman.HealingTalisman; import com.willfp.talismans.talismans.talismans.talisman.ImmunityTalisman; import com.willfp.talismans.talismans.talismans.talisman.NetherTalisman; import com.willfp.talismans.talismans.talismans.talisman.PoseidonTalisman; @@ -121,6 +124,9 @@ public class Talismans { public static final Talisman FLUX_TALISMAN = new FluxTalisman(); public static final Talisman FLUX_RING = new FluxRing(); public static final Talisman FLUX_RELIC = new FluxRelic(); + public static final Talisman HEALING_TALISMAN = new HealingTalisman(); + public static final Talisman HEALING_RING = new HealingRing(); + public static final Talisman HEALING_RELIC = new HealingRelic(); /** diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/relic/HealingRelic.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/relic/HealingRelic.java new file mode 100644 index 0000000..77fded7 --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/relic/HealingRelic.java @@ -0,0 +1,42 @@ +package com.willfp.talismans.talismans.talismans.relic; + +import com.willfp.talismans.talismans.Talisman; +import com.willfp.talismans.talismans.Talismans; +import com.willfp.talismans.talismans.meta.TalismanStrength; +import com.willfp.talismans.talismans.util.TalismanChecks; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.jetbrains.annotations.NotNull; + +public class HealingRelic extends Talisman { + public HealingRelic() { + super("healing_relic", TalismanStrength.RELIC); + } + + @EventHandler + public void onHeal(@NotNull final EntityRegainHealthEvent event) { + if (!(event.getEntity() instanceof Player)) { + return; + } + + if (!event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.SATIATED) && !event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.REGEN)) { + return; + } + + Player player = (Player) event.getEntity(); + + if (this.getDisabledWorlds().contains(player.getWorld())) { + return; + } + + if (!TalismanChecks.hasTalisman(player, this)) { + return; + } + + double amount = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier"); + amount += 1; + + event.setAmount(event.getAmount() * amount); + } +} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ring/HealingRing.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ring/HealingRing.java new file mode 100644 index 0000000..4ef3abf --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ring/HealingRing.java @@ -0,0 +1,42 @@ +package com.willfp.talismans.talismans.talismans.ring; + +import com.willfp.talismans.talismans.Talisman; +import com.willfp.talismans.talismans.Talismans; +import com.willfp.talismans.talismans.meta.TalismanStrength; +import com.willfp.talismans.talismans.util.TalismanChecks; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.jetbrains.annotations.NotNull; + +public class HealingRing extends Talisman { + public HealingRing() { + super("healing_ring", TalismanStrength.RING); + } + + @EventHandler + public void onHeal(@NotNull final EntityRegainHealthEvent event) { + if (!(event.getEntity() instanceof Player)) { + return; + } + + if (!event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.SATIATED) && !event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.REGEN)) { + return; + } + + Player player = (Player) event.getEntity(); + + if (this.getDisabledWorlds().contains(player.getWorld())) { + return; + } + + if (!TalismanChecks.hasTalisman(player, this)) { + return; + } + + double amount = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier"); + amount += 1; + + event.setAmount(event.getAmount() * amount); + } +} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/talisman/HealingTalisman.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/talisman/HealingTalisman.java new file mode 100644 index 0000000..c4caccc --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/talisman/HealingTalisman.java @@ -0,0 +1,42 @@ +package com.willfp.talismans.talismans.talismans.talisman; + +import com.willfp.talismans.talismans.Talisman; +import com.willfp.talismans.talismans.Talismans; +import com.willfp.talismans.talismans.meta.TalismanStrength; +import com.willfp.talismans.talismans.util.TalismanChecks; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.jetbrains.annotations.NotNull; + +public class HealingTalisman extends Talisman { + public HealingTalisman() { + super("healing_talisman", TalismanStrength.TALISMAN); + } + + @EventHandler + public void onHeal(@NotNull final EntityRegainHealthEvent event) { + if (!(event.getEntity() instanceof Player)) { + return; + } + + if (!event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.SATIATED) && !event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.REGEN)) { + return; + } + + Player player = (Player) event.getEntity(); + + if (this.getDisabledWorlds().contains(player.getWorld())) { + return; + } + + if (!TalismanChecks.hasTalisman(player, this)) { + return; + } + + double amount = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier"); + amount += 1; + + event.setAmount(event.getAmount() * amount); + } +} diff --git a/eco-core/core-plugin/src/main/resources/talismans/relic/healingrelic.yml b/eco-core/core-plugin/src/main/resources/talismans/relic/healingrelic.yml new file mode 100644 index 0000000..66e2984 --- /dev/null +++ b/eco-core/core-plugin/src/main/resources/talismans/relic/healingrelic.yml @@ -0,0 +1,27 @@ +name: "Healing Relic" +description: Heal 25% faster. +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: + - talisman:healing_ring + - talisman:healing_ring + - talisman:healing_ring + + - talisman:healing_ring + - nether_star + - talisman:healing_ring + + - talisman:healing_ring + - talisman:healing_ring + - talisman:healing_ring + +general-config: + disabled-in-worlds: [] + # Texture is base64, https://minecraft-heads.com has a list of skulls. + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODc5M2VlZjQ4NDkwNzhkZjRjY2Q0OTgwNTRjNzRlMjE3MWM3NzFmMjczMDk0NDE2NGE4ZWU3YjJkNTYzODMyIn19fQ== + +config: + multiplier: 0.25 \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/talismans/ring/healingring.yml b/eco-core/core-plugin/src/main/resources/talismans/ring/healingring.yml new file mode 100644 index 0000000..0351de3 --- /dev/null +++ b/eco-core/core-plugin/src/main/resources/talismans/ring/healingring.yml @@ -0,0 +1,27 @@ +name: "Healing Ring" +description: Heal 10% faster. +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: + - talisman:healing_talisman + - talisman:healing_talisman + - talisman:healing_talisman + + - talisman:healing_talisman + - heart_of_the_sea + - talisman:healing_talisman + + - talisman:healing_talisman + - talisman:healing_talisman + - talisman:healing_talisman + +general-config: + disabled-in-worlds: [] + # Texture is base64, https://minecraft-heads.com has a list of skulls. + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDY2YTVmN2JjZDNjMWMyMjVhOTM2NmVlZTZkZmFiMWNjNjZhNmJmNzM2M2ZlZDA4NzUxMmU2ZWY0N2ExZCJ9fX0= + +config: + multiplier: 0.1 \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/talismans/talisman/healingtalisman.yml b/eco-core/core-plugin/src/main/resources/talismans/talisman/healingtalisman.yml new file mode 100644 index 0000000..83173f2 --- /dev/null +++ b/eco-core/core-plugin/src/main/resources/talismans/talisman/healingtalisman.yml @@ -0,0 +1,27 @@ +name: "Healing Talisman" +description: Heal 5% faster. +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: + - glistering_melon_slice + - glistering_melon_slice + - glistering_melon_slice + + - glistering_melon_slice + - ender_eye + - glistering_melon_slice + + - glistering_melon_slice + - glistering_melon_slice + - glistering_melon_slice + +general-config: + disabled-in-worlds: [] + # Texture is base64, https://minecraft-heads.com has a list of skulls. + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjUyOGNmNmZhYjhhZTdlZmZiNTFjZDNhYzQyZDJlZTI3NTA0ZTQ0MDAyZmE0ZjYyOWE0NTA5MGZhMTY3YTQ3OCJ9fX0= + +config: + multiplier: 0.05 \ No newline at end of file