diff --git a/TradeSystem-Spigot/src/main/java/de/codingair/tradesystem/spigot/extras/external/placeholderapi/PlaceholderDependency.java b/TradeSystem-Spigot/src/main/java/de/codingair/tradesystem/spigot/extras/external/placeholderapi/PlaceholderDependency.java index ddc0487d..6db9b868 100644 --- a/TradeSystem-Spigot/src/main/java/de/codingair/tradesystem/spigot/extras/external/placeholderapi/PlaceholderDependency.java +++ b/TradeSystem-Spigot/src/main/java/de/codingair/tradesystem/spigot/extras/external/placeholderapi/PlaceholderDependency.java @@ -1,5 +1,6 @@ package de.codingair.tradesystem.spigot.extras.external.placeholderapi; +import com.github.Anon8281.universalScheduler.UniversalScheduler; import de.codingair.tradesystem.spigot.TradeSystem; import de.codingair.tradesystem.spigot.events.TradeFinishEvent; import de.codingair.tradesystem.spigot.extras.external.PluginDependency; @@ -19,6 +20,7 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -27,7 +29,7 @@ public class PlaceholderDependency implements PluginDependency, Listener { static final String IDENTIFIER = "tradesystem"; static final Pattern PATTERN = Pattern.compile("%" + IDENTIFIER + "_[a-z_]+%", Pattern.CASE_INSENSITIVE); private TradeSystemPlaceholder placeholder; - private static final Map successfulTrades = new HashMap<>(); + private static final Map successfulTrades = new ConcurrentHashMap<>(); public PlaceholderDependency() { instance = this; @@ -43,8 +45,10 @@ public void onTradeFinish(TradeFinishEvent e) { @EventHandler public void onLogin(AsyncPlayerPreLoginEvent e) { - long trades = TradeLogService.count(e.getName(), TradeLog.FINISHED.get()); - if (trades > 0) successfulTrades.put(e.getUniqueId(), trades); + UniversalScheduler.getScheduler(TradeSystem.getInstance()).runTaskAsynchronously(() ->{ + long trades = TradeLogService.count(e.getName(), TradeLog.FINISHED.get()); + if (trades > 0) successfulTrades.put(e.getUniqueId(), trades); + }); } @EventHandler diff --git a/TradeSystem-Spigot/src/main/java/de/codingair/tradesystem/spigot/extras/tradelog/TradeLogListener.java b/TradeSystem-Spigot/src/main/java/de/codingair/tradesystem/spigot/extras/tradelog/TradeLogListener.java index 6de63f5c..f9eab8f6 100644 --- a/TradeSystem-Spigot/src/main/java/de/codingair/tradesystem/spigot/extras/tradelog/TradeLogListener.java +++ b/TradeSystem-Spigot/src/main/java/de/codingair/tradesystem/spigot/extras/tradelog/TradeLogListener.java @@ -1,13 +1,19 @@ package de.codingair.tradesystem.spigot.extras.tradelog; +import com.github.Anon8281.universalScheduler.UniversalScheduler; +import de.codingair.tradesystem.spigot.TradeSystem; +import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; +import org.bukkit.scheduler.BukkitScheduler; public class TradeLogListener implements Listener { @EventHandler public void onTradeFinish(AsyncPlayerPreLoginEvent e) { - TradeLogService.registerOrUpdatePlayer(e.getUniqueId(), e.getName()); + UniversalScheduler.getScheduler(TradeSystem.getInstance()).runTaskAsynchronously(() ->{ + TradeLogService.registerOrUpdatePlayer(e.getUniqueId(), e.getName()); + }); } }