From 3b42bec4eae0de39b942f18264c61f3763ec18cf Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 21 Dec 2020 13:11:28 +0000 Subject: [PATCH] Fixed FastCollatedDropQueue breaking on /ecoreload --- .../ecoenchants/util/internal/Loader.java | 2 ++ .../internal/drops/FastCollatedDropQueue.java | 26 +++++++++++-------- .../internal/drops/InternalDropQueue.java | 3 +++ 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/Loader.java b/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/Loader.java index f4fe2fd2..30a9b584 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/Loader.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/Loader.java @@ -399,5 +399,7 @@ public class Loader { } }, 1); })); + + Bukkit.getScheduler().runTaskTimer(EcoEnchantsPlugin.getInstance(), FastCollatedDropQueue.RUNNABLE, 0, 1); } } diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/drops/FastCollatedDropQueue.java b/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/drops/FastCollatedDropQueue.java index 06703cf5..a5ba2708 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/drops/FastCollatedDropQueue.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/drops/FastCollatedDropQueue.java @@ -7,6 +7,7 @@ import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.scheduler.BukkitRunnable; import java.util.HashMap; import java.util.List; @@ -21,6 +22,19 @@ import java.util.Map; public class FastCollatedDropQueue extends InternalDropQueue { private static boolean collate = false; private static final HashMap COLLATED_MAP = new HashMap<>(); + public static final Runnable RUNNABLE = new BukkitRunnable() { + @Override + public void run() { + for (Map.Entry entry : COLLATED_MAP.entrySet()) { + new InternalDropQueue(entry.getKey()) + .setLocation(entry.getValue().getLocation()) + .addItems(entry.getValue().getDrops()) + .addXP(entry.getValue().getXp()) + .push(); + } + COLLATED_MAP.clear(); + } + }; /** * Create {@link DropQueue} linked to player @@ -47,17 +61,7 @@ public class FastCollatedDropQueue extends InternalDropQueue { } static { - Bukkit.getScheduler().runTaskTimer(EcoEnchantsPlugin.getInstance(), () -> { - for (Map.Entry entry : COLLATED_MAP.entrySet()) { - new InternalDropQueue(entry.getKey()) - .setLocation(entry.getValue().getLocation()) - .addItems(entry.getValue().getDrops()) - .addXP(entry.getValue().getXp()) - .push(); - } - COLLATED_MAP.clear(); - }, 0, 1); - + Bukkit.getScheduler().runTaskTimer(EcoEnchantsPlugin.getInstance(), RUNNABLE, 0, 1); update(); } diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/drops/InternalDropQueue.java b/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/drops/InternalDropQueue.java index 3a76ace1..0963b6d5 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/drops/InternalDropQueue.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/util/internal/drops/InternalDropQueue.java @@ -3,6 +3,7 @@ package com.willfp.ecoenchants.util.internal.drops; import com.willfp.ecoenchants.enchantments.EcoEnchants; import com.willfp.ecoenchants.enchantments.util.EnchantChecks; import com.willfp.ecoenchants.util.NumberUtils; +import com.willfp.ecoenchants.util.internal.Logger; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Sound; @@ -126,6 +127,7 @@ public class InternalDropQueue implements AbstractDropQueue { public void push() { if(!hasTelekinesis) hasTelekinesis = EnchantChecks.item(item, EcoEnchants.TELEKINESIS); if(hasTelekinesis && !EcoEnchants.TELEKINESIS.isEnabled()) hasTelekinesis = false; + Logger.info("1"); World world = loc.getWorld(); assert world != null; @@ -150,6 +152,7 @@ public class InternalDropQueue implements AbstractDropQueue { } } else { for (ItemStack drop : items) { + Logger.info(drop + ""); world.dropItem(loc, drop).setVelocity(new Vector()); } if (xp > 0) {