From 8f2a7bfbdbababd772cfac9e604575a8e79119b2 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 29 Sep 2021 11:41:50 +0100 Subject: [PATCH] Added reward_block_break and incoming_damage_multiplier effects --- .../com/willfp/reforges/effects/Effects.java | 4 +++ .../EffectIncomingDamageMultiplier.java | 23 ++++++++++++++++ .../effects/EffectRewardBlockBreak.java | 26 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/effects/EffectIncomingDamageMultiplier.java create mode 100644 eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/effects/EffectRewardBlockBreak.java diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/Effects.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/Effects.java index 6f0c026..53fb178 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/Effects.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/Effects.java @@ -5,7 +5,9 @@ import com.google.common.collect.HashBiMap; import com.google.common.collect.ImmutableList; import com.willfp.reforges.effects.effects.EffectCritMultiplier; import com.willfp.reforges.effects.effects.EffectDamageMultiplier; +import com.willfp.reforges.effects.effects.EffectIncomingDamageMultiplier; import com.willfp.reforges.effects.effects.EffectKnockbackMultiplier; +import com.willfp.reforges.effects.effects.EffectRewardBlockBreak; import com.willfp.reforges.effects.effects.EffectRewardKill; import lombok.experimental.UtilityClass; import org.jetbrains.annotations.NotNull; @@ -25,6 +27,8 @@ public class Effects { public static final Effect CRIT_MULTIPLIER = new EffectCritMultiplier(); public static final Effect REWARD_KILL = new EffectRewardKill(); public static final Effect KNOCKBACK_MULTIPLIER = new EffectKnockbackMultiplier(); + public static final Effect REWARD_BLOCK_BREAK = new EffectRewardBlockBreak(); + public static final Effect INCOMING_DAMAGE_MULTIPLIER = new EffectIncomingDamageMultiplier(); /** * Get effect matching name. diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/effects/EffectIncomingDamageMultiplier.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/effects/EffectIncomingDamageMultiplier.java new file mode 100644 index 0000000..975b5b6 --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/effects/EffectIncomingDamageMultiplier.java @@ -0,0 +1,23 @@ +package com.willfp.reforges.effects.effects; + +import com.willfp.eco.core.config.interfaces.JSONConfig; +import com.willfp.reforges.effects.Effect; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.entity.EntityDamageEvent; +import org.jetbrains.annotations.NotNull; + +public class EffectIncomingDamageMultiplier extends Effect { + /** + * Create a new effect. + */ + public EffectIncomingDamageMultiplier() { + super("incoming_damage_multiplier"); + } + + @Override + public void onDamageWearingArmor(@NotNull final LivingEntity victim, + @NotNull final EntityDamageEvent event, + @NotNull final JSONConfig config) { + event.setDamage(event.getDamage() * config.getDouble("multiplier")); + } +} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/effects/EffectRewardBlockBreak.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/effects/EffectRewardBlockBreak.java new file mode 100644 index 0000000..de29855 --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/effects/effects/EffectRewardBlockBreak.java @@ -0,0 +1,26 @@ +package com.willfp.reforges.effects.effects; + +import com.willfp.eco.core.config.interfaces.JSONConfig; +import com.willfp.reforges.effects.Effect; +import com.willfp.reforges.vault.EconomyHandler; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockBreakEvent; +import org.jetbrains.annotations.NotNull; + +public class EffectRewardBlockBreak extends Effect { + /** + * Create a new effect. + */ + public EffectRewardBlockBreak() { + super("reward_kill"); + } + + @Override + public void onBlockBreak(@NotNull final Player player, + @NotNull final Block block, + @NotNull final BlockBreakEvent event, + @NotNull final JSONConfig config) { + EconomyHandler.getInstance().depositPlayer(player, config.getDouble("amount")); + } +}