diff --git a/src/main/java/com/gmail/artemis/the/gr8/playerstats/commands/StatCommand.java b/src/main/java/com/gmail/artemis/the/gr8/playerstats/commands/StatCommand.java index 1f29f26..54debd5 100644 --- a/src/main/java/com/gmail/artemis/the/gr8/playerstats/commands/StatCommand.java +++ b/src/main/java/com/gmail/artemis/the/gr8/playerstats/commands/StatCommand.java @@ -36,23 +36,49 @@ public class StatCommand implements CommandExecutor { item = EnumHandler.getItem(arg); } else if (EnumHandler.getEntityNames().contains(arg)) { - entity = EnumHandler.getEntityType(arg); + if (arg.equalsIgnoreCase("player")) { + if (!playerFlag) { + entity = (entity == null) ? EnumHandler.getEntityType(arg.toUpperCase()) : entity; + playerFlag = true; + } + else { + entity = EnumHandler.getEntityType(arg.toUpperCase()); + doublePlayerFlag = true; + } + } + else { + entity = EnumHandler.getEntityType(arg.toUpperCase()); + } } + else if (arg.equalsIgnoreCase("me") && sender instanceof Player) { playerName = sender.getName(); } - else if (arg.equalsIgnoreCase("player")) { - if (!playerFlag) playerFlag = true; - else doublePlayerFlag = true; - } else if (OfflinePlayerHandler.getAllOfflinePlayerNames().stream().anyMatch(arg::equalsIgnoreCase)) { playerName = arg; } } if (playerName != null && stat != null) { - if (stat.getType() == Statistic.Type.UNTYPED) { - sender.sendMessage(stat + " for " + playerName + ": " + OfflinePlayerHandler.getOfflinePlayer(playerName).getStatistic(stat)); + switch (stat.getType()) { + case UNTYPED: + sender.sendMessage(stat + " for " + playerName + ": " + OfflinePlayerHandler.getOfflinePlayer(playerName).getStatistic(stat)); + break; + case BLOCK: + if (block != null) { + sender.sendMessage(stat + " " + block + " for " + playerName + ": " + OfflinePlayerHandler.getOfflinePlayer(playerName).getStatistic(stat, block)); + } + break; + case ITEM: + if (item != null) { + sender.sendMessage(stat + " " + item + " for " + playerName + ": " + OfflinePlayerHandler.getOfflinePlayer(playerName).getStatistic(stat, item)); + } + case ENTITY: + if (entity != null) { + sender.sendMessage(stat + " " + entity + " for " + playerName + ": " + OfflinePlayerHandler.getOfflinePlayer(playerName).getStatistic(stat, entity)); + } } + + } } diff --git a/src/main/java/com/gmail/artemis/the/gr8/playerstats/commands/TabCompleter.java b/src/main/java/com/gmail/artemis/the/gr8/playerstats/commands/TabCompleter.java index 713d110..de603d0 100644 --- a/src/main/java/com/gmail/artemis/the/gr8/playerstats/commands/TabCompleter.java +++ b/src/main/java/com/gmail/artemis/the/gr8/playerstats/commands/TabCompleter.java @@ -64,19 +64,12 @@ public class TabCompleter implements org.bukkit.command.TabCompleter { } if (stat != null) { - if (stat.getType() == Statistic.Type.UNTYPED) { - tabSuggestions = commandOptions; - } - else if (stat.getType() == Statistic.Type.BLOCK) { - tabSuggestions = blockNames.stream().filter(block -> block.contains(args[args.length-1])).collect(Collectors.toList()); - } - else if (stat.getType() == Statistic.Type.ITEM) { - tabSuggestions = itemNames.stream().filter(item -> item.contains(args[args.length-1])).collect(Collectors.toList()); - - } - else if (stat.getType() == Statistic.Type.ENTITY) { - tabSuggestions = entityNames.stream().filter(entity -> entity.contains(args[args.length-1])).collect(Collectors.toList()); - } + tabSuggestions = switch (stat.getType()) { + case UNTYPED -> commandOptions; + case BLOCK -> blockNames.stream().filter(block -> block.contains(args[args.length - 1])).collect(Collectors.toList()); + case ITEM -> itemNames.stream().filter(item -> item.contains(args[args.length - 1])).collect(Collectors.toList()); + case ENTITY -> entityNames.stream().filter(entity -> entity.contains(args[args.length - 1])).collect(Collectors.toList()); + }; } }