@@ -59,6 +59,15 @@ public ItemStack[] getItemStackArrayById(String id) {
5959 return kitByKitIDMap .get (id );
6060 }
6161
62+ private void cacheKit (String id , ItemStack [] kit ) {
63+ if (kit == null ) {
64+ kitByKitIDMap .remove (id );
65+ return ;
66+ }
67+
68+ kitByKitIDMap .put (id , kit );
69+ }
70+
6271 public List <PublicKit > getPublicKitList () {
6372 return publicKitList ;
6473 }
@@ -105,7 +114,7 @@ public boolean savekit(UUID uuid, int slot, ItemStack[] kit) {
105114 }
106115 }
107116
108- kitByKitIDMap . put (IDUtil .getPlayerKitId (uuid , slot ), kit );
117+ cacheKit (IDUtil .getPlayerKitId (uuid , slot ), kit );
109118 player .sendMessage (ChatColor .GREEN + "Kit " + slot + " saved!" );
110119
111120 Bukkit .getScheduler ().runTaskAsynchronously (plugin , () -> savePlayerKitToDB (uuid , slot ));
@@ -150,7 +159,7 @@ public boolean savePublicKit(Player player, String publickit, ItemStack[] kit) {
150159 }
151160 }
152161
153- kitByKitIDMap . put (IDUtil .getPublicKitId (publickit ), kit );
162+ cacheKit (IDUtil .getPublicKitId (publickit ), kit );
154163 player .sendMessage (ChatColor .GREEN + "Public Kit " + publickit + " saved!" );
155164
156165 Bukkit .getScheduler ().runTaskAsynchronously (plugin , () -> savePublicKitToDB (publickit ));
@@ -193,7 +202,7 @@ public boolean savePublicKit(String id, ItemStack[] kit) {
193202 }
194203 }
195204
196- kitByKitIDMap . put (IDUtil .getPublicKitId (id ), kit );
205+ cacheKit (IDUtil .getPublicKitId (id ), kit );
197206 return true ;
198207 }
199208 return false ;
@@ -213,7 +222,7 @@ public boolean saveEC(UUID uuid, int slot, ItemStack[] kit) {
213222 }
214223
215224 if (notEmpty ) {
216- kitByKitIDMap . put (IDUtil .getECId (uuid , slot ), kit );
225+ cacheKit (IDUtil .getECId (uuid , slot ), kit );
217226 player .sendMessage (ChatColor .GREEN + "Enderchest " + slot + " saved!" );
218227 Bukkit .getScheduler ().runTaskAsynchronously (plugin , () -> saveEnderchestToDB (uuid , slot ));
219228 return true ;
@@ -238,7 +247,7 @@ public boolean saveECSilent(UUID uuid, int slot, ItemStack[] kit) {
238247 return false ;
239248 }
240249
241- kitByKitIDMap . put (IDUtil .getECId (uuid , slot ), kit );
250+ cacheKit (IDUtil .getECId (uuid , slot ), kit );
242251 Bukkit .getScheduler ().runTaskAsynchronously (plugin , () -> saveEnderchestToDB (uuid , slot ));
243252 return true ;
244253 }
@@ -270,7 +279,7 @@ public boolean savekit(UUID uuid, int slot, ItemStack[] kit, boolean silent) {
270279 kit [39 ] = null ;
271280 }
272281
273- kitByKitIDMap . put (IDUtil .getPlayerKitId (uuid , slot ), ItemFilter .get ().filterItemStack (kit ));
282+ cacheKit (IDUtil .getPlayerKitId (uuid , slot ), ItemFilter .get ().filterItemStack (kit ));
274283 Bukkit .getScheduler ().runTaskAsynchronously (plugin , () -> savePlayerKitToDB (uuid , slot ));
275284 return true ;
276285 } else {
@@ -437,7 +446,8 @@ public void loadPlayerDataFromDB(UUID uuid) {
437446 if (!data .equalsIgnoreCase ("error" )) {
438447 try {
439448 ItemStack [] kit = Serializer .itemStackArrayFromBase64 (data );
440- kitByKitIDMap .put (IDUtil .getPlayerKitId (uuid , slot ), ItemFilter .get ().filterItemStack (Serializer .itemStackArrayFromBase64 (data )));
449+ cacheKit (IDUtil .getPlayerKitId (uuid , slot ),
450+ ItemFilter .get ().filterItemStack (Serializer .itemStackArrayFromBase64 (data )));
441451 } catch (IOException ignored ) {
442452 }
443453 }
@@ -447,7 +457,8 @@ public void loadPlayerDataFromDB(UUID uuid) {
447457 if (!data .equalsIgnoreCase ("error" )) {
448458 try {
449459 ItemStack [] kit = Serializer .itemStackArrayFromBase64 (data );
450- kitByKitIDMap .put (IDUtil .getECId (uuid , slot ), ItemFilter .get ().filterItemStack (Serializer .itemStackArrayFromBase64 (data )));
460+ cacheKit (IDUtil .getECId (uuid , slot ),
461+ ItemFilter .get ().filterItemStack (Serializer .itemStackArrayFromBase64 (data )));
451462 } catch (IOException ignored ) {
452463 }
453464 }
@@ -487,7 +498,7 @@ public void loadPublicKitFromDB(String id) {
487498 if (!data .equalsIgnoreCase ("error" )) {
488499 try {
489500 ItemStack [] kit = Serializer .itemStackArrayFromBase64 (data );
490- kitByKitIDMap . put (IDUtil .getPublicKitId (id ), ItemFilter .get ().filterItemStack (kit ));
501+ cacheKit (IDUtil .getPublicKitId (id ), ItemFilter .get ().filterItemStack (kit ));
491502 } catch (IOException ignored ) {
492503 plugin .getLogger ().info ("Error loading public kit " + id );
493504 }
0 commit comments