From 94f0ff4e22ef0a190b27aaadc9d8c24834d16d7c Mon Sep 17 00:00:00 2001 From: tastybento Date: Wed, 27 May 2020 16:48:20 -0700 Subject: [PATCH] Sign Cache could get out of sync with signs. https://github.com/BentoBoxWorld/Warps/issues/80 --- src/main/java/world/bentobox/warps/SignCacheManager.java | 5 +++-- src/main/java/world/bentobox/warps/WarpSignsManager.java | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/world/bentobox/warps/SignCacheManager.java b/src/main/java/world/bentobox/warps/SignCacheManager.java index b0611f8..d590604 100644 --- a/src/main/java/world/bentobox/warps/SignCacheManager.java +++ b/src/main/java/world/bentobox/warps/SignCacheManager.java @@ -72,8 +72,9 @@ public class SignCacheManager { * @param key - uuid of owner */ void removeWarp(World world, UUID key) { - cachedSigns.putIfAbsent(world, new HashMap<>()); - cachedSigns.get(world).remove(key); + if (cachedSigns.containsKey(world)) { + cachedSigns.get(world).remove(key); + } } } diff --git a/src/main/java/world/bentobox/warps/WarpSignsManager.java b/src/main/java/world/bentobox/warps/WarpSignsManager.java index 9789547..6c6e317 100644 --- a/src/main/java/world/bentobox/warps/WarpSignsManager.java +++ b/src/main/java/world/bentobox/warps/WarpSignsManager.java @@ -245,9 +245,10 @@ public class WarpSignsManager { if (getWarpMap(world).containsKey(uuid)) { popSign(getWarpMap(world).get(uuid)); getWarpMap(world).remove(uuid); - // Remove sign from warp panel cache - addon.getWarpPanelManager().removeWarp(world, uuid); + } + // Remove sign from warp panel cache + addon.getWarpPanelManager().removeWarp(world, uuid); saveWarpList(); } @@ -255,7 +256,8 @@ public class WarpSignsManager { * Saves the warp lists to the database */ public void saveWarpList() { - handler.saveObject(warpsData .save(worldsWarpList)); + handler.saveObject(warpsData.save(worldsWarpList)); + addon.getWarpPanelManager().saveCache(); } /**