diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java index 3c98dcff..a1065ae3 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java @@ -235,6 +235,7 @@ public class EcoEnchants { public static final EcoEnchant WARPED_ARTIFACT = new WarpedArtifact(); public static final EcoEnchant TEAR_ARTIFACT = new TearArtifact(); public static final EcoEnchant BACKSTAB = new Backstab(); + public static final EcoEnchant EXTRACTION = new Extraction(); /** * Get all registered {@link EcoEnchant}s diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Extraction.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Extraction.java new file mode 100644 index 00000000..2ef31da9 --- /dev/null +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Extraction.java @@ -0,0 +1,46 @@ +package com.willfp.ecoenchants.enchantments.ecoenchants.normal; + +import com.willfp.ecoenchants.enchantments.EcoEnchant; +import com.willfp.ecoenchants.enchantments.EcoEnchants; +import com.willfp.ecoenchants.enchantments.util.EnchantmentUtils; +import com.willfp.ecoenchants.queue.DropQueue; +import com.willfp.ecoenchants.util.NumberUtils; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.inventory.ItemStack; + +public final class Extraction extends EcoEnchant { + public Extraction() { + super( + "extraction", EnchantmentType.NORMAL + ); + } + + // START OF LISTENERS + + @Override + public void onBlockBreak(Player player, Block block, int level, BlockBreakEvent event) { + if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) + return; + + if(!EnchantmentUtils.passedChance(this, level)) + return; + + Material material = null; + + if(block.getType().equals(Material.GOLD_ORE)) material = Material.GOLD_NUGGET; + if(block.getType().equals(Material.IRON_ORE)) material = Material.IRON_NUGGET; + + if(material == null) return; + + ItemStack item = new ItemStack(material, 1); + + new DropQueue(player) + .setLocation(block.getLocation()) + .addItem(item) + .push(); + } +} diff --git a/Plugin/src/main/resources/enchants/normal/extraction.yml b/Plugin/src/main/resources/enchants/normal/extraction.yml new file mode 100644 index 00000000..f107d1ba --- /dev/null +++ b/Plugin/src/main/resources/enchants/normal/extraction.yml @@ -0,0 +1,25 @@ +# +# Extraction EcoEnchant +# + +name: "Extraction" +description: Breaking ores can drop a nugget of the material. +enabled: true + +obtaining: + table: true + villager: true + loot: true + rarity: legendary + +general-config: + targets: + - pickaxe + grindstoneable: true + conflicts: + - stone_switcher + - silk_touch + maximum-level: 6 + +config: + chance-per-level: 2.5 # Chance for dropping a nugget diff --git a/Plugin/src/main/resources/plugin.yml b/Plugin/src/main/resources/plugin.yml index 348304ac..b7a5946a 100644 --- a/Plugin/src/main/resources/plugin.yml +++ b/Plugin/src/main/resources/plugin.yml @@ -258,6 +258,7 @@ permissions: ecoenchants.fromtable.ashartifact: true ecoenchants.fromtable.tearartifact: true ecoenchants.fromtable.backstab: true + ecoenchants.fromtable.extracting: true ecoenchants.updateannounce: description: Informs admins of a new update @@ -895,4 +896,7 @@ permissions: default: true ecoenchants.fromtable.backstab: description: Allows getting backstab from an enchanting table + default: true + ecoenchants.fromtable.extracting: + description: Allows getting extracting from an enchanting table default: true \ No newline at end of file