diff --git a/src/main/java/com/wasteofplastic/invswitcher/Store.java b/src/main/java/com/wasteofplastic/invswitcher/Store.java index 9502ae0..46769d3 100644 --- a/src/main/java/com/wasteofplastic/invswitcher/Store.java +++ b/src/main/java/com/wasteofplastic/invswitcher/Store.java @@ -24,11 +24,11 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Objects; import java.util.UUID; import java.util.stream.Collectors; @@ -312,39 +312,18 @@ private void getStats(InventoryStorage store, Player player, String worldName) { private void getStat(Statistic s, InventoryStorage store, Player player, String worldName) { switch(s.getType()) { - case BLOCK: - if (store.getBlockStats(worldName).containsKey(s)) { - for (Entry en : store.getBlockStats(worldName).get(s).entrySet()) { - player.setStatistic(s, en.getKey(), en.getValue()); - } - } - break; - case ITEM: - if (store.getItemStats(worldName).containsKey(s)) { - for (Entry en : store.getItemStats(worldName).get(s).entrySet()) { - player.setStatistic(s, en.getKey(), en.getValue()); - } - } - break; - case ENTITY: - if (store.getEntityStats(worldName).containsKey(s)) { - for (Entry en : store.getEntityStats(worldName).get(s).entrySet()) { - player.setStatistic(s, en.getKey(), en.getValue()); - } - } - break; - case UNTYPED: + case BLOCK -> store.getBlockStats(worldName).getOrDefault(s, Collections.emptyMap()).forEach((k,v) -> player.setStatistic(s, k, v)); + case ITEM -> store.getItemStats(worldName).getOrDefault(s, Collections.emptyMap()).forEach((k,v) -> player.setStatistic(s, k, v)); + case ENTITY -> store.getEntityStats(worldName).getOrDefault(s, Collections.emptyMap()).forEach((k,v) -> player.setStatistic(s, k, v)); + case UNTYPED -> { if (store.getUntypedStats(worldName).containsKey(s)) { player.setStatistic(s, store.getUntypedStats(worldName).get(s)); } - break; - default: - break; - + } + default -> {} } } - @SuppressWarnings("deprecation") private void clearPlayer(Player player) { if (this.addon.getSettings().isInventory()) { @@ -361,13 +340,7 @@ private void clearPlayer(Player player) { if (this.addon.getSettings().isAdvancements()) { // Reset advancements - Iterator it = Bukkit.advancementIterator(); - while (it.hasNext()) - { - Advancement a = it.next(); - AdvancementProgress p = player.getAdvancementProgress(a); - p.getAwardedCriteria().forEach(p::revokeCriteria); - } + resetAdv(player); } if (this.addon.getSettings().isEnderChest()) @@ -379,45 +352,61 @@ private void clearPlayer(Player player) { if (this.addon.getSettings().isStatistics()) { // Reset Statistics - Arrays.stream(Statistic.values()).forEach(s -> + resetStats(player); + } + } + + private void resetAdv(Player player) { + Iterator it = Bukkit.advancementIterator(); + while (it.hasNext()) + { + Advancement a = it.next(); + AdvancementProgress p = player.getAdvancementProgress(a); + p.getAwardedCriteria().forEach(p::revokeCriteria); + } + } + + @SuppressWarnings("deprecation") + private void resetStats(Player player) { + Arrays.stream(Statistic.values()).forEach(s -> + { + switch (s.getType()) { - switch (s.getType()) + case BLOCK: + for (Material m : Material.values()) { - case BLOCK: - for (Material m : Material.values()) + if (m.isBlock() && !m.isLegacy()) { - if (m.isBlock() && !m.isLegacy()) - { - player.setStatistic(s, m, 0); - } + player.setStatistic(s, m, 0); } - break; - case ITEM: - for (Material m : Material.values()) + } + break; + case ITEM: + for (Material m : Material.values()) + { + if (m.isItem() && !m.isLegacy()) { - if (m.isItem() && !m.isLegacy()) - { - player.setStatistic(s, m, 0); - } + player.setStatistic(s, m, 0); } - break; - case ENTITY: - for (EntityType en : EntityType.values()) + } + break; + case ENTITY: + for (EntityType en : EntityType.values()) + { + if (en.isAlive()) { - if (en.isAlive()) - { - player.setStatistic(s, en, 0); - } + player.setStatistic(s, en, 0); } - break; - case UNTYPED: - player.setStatistic(s, 0); - break; - default: - break; } - }); - } + break; + case UNTYPED: + player.setStatistic(s, 0); + break; + default: + break; + } + }); + } //new Exp Math from 1.8