From 8138a17f6c550143bc8d0c6691b1da3232bb6f71 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Thu, 2 Sep 2021 18:22:16 +0100 Subject: [PATCH] Autosell changes --- eco-extensions/autosell/build.gradle | 2 +- .../willfp/ecoenchants/autosell/Autosell.java | 31 +++++++++++++------ .../resources/enchants/normal/autosell.yml | 2 +- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/eco-extensions/autosell/build.gradle b/eco-extensions/autosell/build.gradle index fb664c6c..bb6c3cd7 100644 --- a/eco-extensions/autosell/build.gradle +++ b/eco-extensions/autosell/build.gradle @@ -1,5 +1,5 @@ group 'com.willfp' -version '1.0.0' +version '1.0.1' description = 'Autosell Extension' shadowJar { diff --git a/eco-extensions/autosell/src/main/java/com/willfp/ecoenchants/autosell/Autosell.java b/eco-extensions/autosell/src/main/java/com/willfp/ecoenchants/autosell/Autosell.java index 78f8d2f4..58a7e640 100644 --- a/eco-extensions/autosell/src/main/java/com/willfp/ecoenchants/autosell/Autosell.java +++ b/eco-extensions/autosell/src/main/java/com/willfp/ecoenchants/autosell/Autosell.java @@ -4,10 +4,10 @@ package com.willfp.ecoenchants.autosell; import com.willfp.eco.core.drops.DropQueue; import com.willfp.eco.core.integrations.antigrief.AntigriefManager; import com.willfp.ecoenchants.enchantments.EcoEnchant; -import com.willfp.ecoenchants.enchantments.EcoEnchants; import com.willfp.ecoenchants.enchantments.meta.EnchantmentType; import com.willfp.ecoenchants.enchantments.util.EnchantChecks; import net.brcdev.shopgui.ShopGuiPlusApi; +import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.block.Block; @@ -16,6 +16,7 @@ import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.block.BlockDropItemEvent; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -27,6 +28,8 @@ import java.util.HashSet; import java.util.Set; public class Autosell extends EcoEnchant { + private final Set noRepeat = new HashSet<>(); + private static final Set FORTUNE_MATERIALS = new HashSet<>( Arrays.asList( Material.GOLD_INGOT, @@ -40,8 +43,12 @@ public class Autosell extends EcoEnchant { ); } - @EventHandler - public void infernalTouchBreak(@NotNull final BlockDropItemEvent event) { + @EventHandler(priority = EventPriority.LOW) + public void autosellHandler(@NotNull final BlockDropItemEvent event) { + if (noRepeat.contains(event)) { + return; + } + Player player = event.getPlayer(); Block block = event.getBlock(); @@ -73,13 +80,21 @@ public class Autosell extends EcoEnchant { return; } + BlockDropItemEvent dropEvent = new BlockDropItemEvent(block, block.getState(), player, event.getItems()); + noRepeat.add(dropEvent); + + Bukkit.getPluginManager().callEvent(dropEvent); + + if (dropEvent.getItems().isEmpty() || dropEvent.isCancelled()) { + return; + } + Collection drops = new ArrayList<>(); - for (Item item : event.getItems()) { + for (Item item : dropEvent.getItems()) { drops.add(item.getItemStack()); } - int experience = 0; int fortune = EnchantChecks.getMainhandLevel(player, Enchantment.LOOT_BONUS_BLOCKS); for (ItemStack itemStack : drops) { @@ -97,16 +112,12 @@ public class Autosell extends EcoEnchant { drops.remove(itemStack); } + dropEvent.getItems().clear(); event.getItems().clear(); - if (!this.getConfig().getBool(EcoEnchants.CONFIG_LOCATION + "drop-xp")) { - experience = 0; - } - new DropQueue(player) .setLocation(block.getLocation()) .addItems(drops) - .addXP(experience) .push(); } } diff --git a/eco-extensions/autosell/src/main/resources/enchants/normal/autosell.yml b/eco-extensions/autosell/src/main/resources/enchants/normal/autosell.yml index 6a5fd80b..c9fb89b2 100644 --- a/eco-extensions/autosell/src/main/resources/enchants/normal/autosell.yml +++ b/eco-extensions/autosell/src/main/resources/enchants/normal/autosell.yml @@ -26,4 +26,4 @@ general-config: - silk_touch config: - drop-xp: true \ No newline at end of file + # No config is available for this enchantment \ No newline at end of file