Skip to content

Commit

Permalink
Refactored to reduce complexity
Browse files Browse the repository at this point in the history
  • Loading branch information
tastybento committed Feb 10, 2023
1 parent 0b4f5fe commit 60937c6
Showing 1 changed file with 54 additions and 65 deletions.
119 changes: 54 additions & 65 deletions src/main/java/com/wasteofplastic/invswitcher/Store.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<Material, Integer> 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<Material, Integer> 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<EntityType, Integer> 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())
{
Expand All @@ -361,13 +340,7 @@ private void clearPlayer(Player player) {
if (this.addon.getSettings().isAdvancements())
{
// Reset advancements
Iterator<Advancement> 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())
Expand All @@ -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<Advancement> 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
Expand Down

0 comments on commit 60937c6

Please sign in to comment.