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 5ca087c..1ba9301 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 @@ -9,6 +9,7 @@ import com.willfp.talismans.talismans.talismans.ArcheryTalisman; import com.willfp.talismans.talismans.talismans.CreeperTalisman; import com.willfp.talismans.talismans.talismans.EndTalisman; import com.willfp.talismans.talismans.talismans.ExperienceTalisman; +import com.willfp.talismans.talismans.talismans.ExtractionTalisman; import com.willfp.talismans.talismans.talismans.FeatherTalisman; import com.willfp.talismans.talismans.talismans.FlameTalisman; import com.willfp.talismans.talismans.talismans.NetherTalisman; @@ -47,6 +48,7 @@ public class Talismans { public static final Talisman ARCHERY_TALISMAN = new ArcheryTalisman(); public static final Talisman POSEIDON_TALISMAN = new PoseidonTalisman(); public static final Talisman EXPERIENCE_TALISMAN = new ExperienceTalisman(); + public static final Talisman EXTRACTION_TALISMAN = new ExtractionTalisman(); /** * Get all registered {@link Talisman}s. diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ExtractionTalisman.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ExtractionTalisman.java new file mode 100644 index 0000000..bdcb480 --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/talismans/ExtractionTalisman.java @@ -0,0 +1,30 @@ +package com.willfp.talismans.talismans.talismans; + +import com.willfp.eco.util.drops.DropQueue; +import com.willfp.talismans.talismans.Talisman; +import com.willfp.talismans.talismans.Talismans; +import com.willfp.talismans.talismans.util.TalismanUtils; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockBreakEvent; +import org.jetbrains.annotations.NotNull; + +public class ExtractionTalisman extends Talisman { + public ExtractionTalisman() { + super("extraction_talisman"); + } + + @Override + public void onBlockBreak(@NotNull final Player player, + @NotNull final Block block, + @NotNull final BlockBreakEvent event) { + if (!TalismanUtils.passedChance(this)) { + return; + } + + new DropQueue(player) + .addXP(this.getConfig().getInt(Talismans.CONFIG_LOCATION + "xp-amount")) + .setLocation(block.getLocation()) + .push(); + } +} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanUtils.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanUtils.java index fd89d26..efdd581 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanUtils.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanUtils.java @@ -19,7 +19,7 @@ public class TalismanUtils { * @return If the talisman should then be executed. */ public static boolean passedChance(@NotNull final Talisman talisman) { - return NumberUtils.randFloat(0, 1) < (talisman.getConfig().getDouble(Talismans.CONFIG_LOCATION + "chance-per-level") / 100); + return NumberUtils.randFloat(0, 1) < (talisman.getConfig().getDouble(Talismans.CONFIG_LOCATION + "chance") / 100); } /** diff --git a/eco-core/core-plugin/src/main/resources/talismans/extractiontalisman.yml b/eco-core/core-plugin/src/main/resources/talismans/extractiontalisman.yml new file mode 100644 index 0000000..9291abe --- /dev/null +++ b/eco-core/core-plugin/src/main/resources/talismans/extractiontalisman.yml @@ -0,0 +1,28 @@ +name: "Extraction Talisman" +description: Chance to get xp while mining. +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: + - cobblestone + - stone + - cobblestone + + - stone + - gold_block + - stone + + - cobblestone + - stone + - cooblestone + +general-config: + disabled-in-worlds: [] + # Texture is base64, https://minecraft-heads.com has a list of skulls. + texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjU2NjM0YjU1NmNhZjUzODJkZTY1MDM4YTEwZTRkNzljN2MxODY5NTA0ODU5OWRmNzRmOWM2N2MxZTFlODczNiJ9fX0= + +config: + chance: 5 + xp-amount: 10 \ No newline at end of file