diff --git a/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java b/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java index 4ab9357..247832b 100644 --- a/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java +++ b/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java @@ -96,6 +96,9 @@ public class Placeholders { case("online-players"): { return Integer.toString(Bukkit.getServer().getOnlinePlayers().size()); } + case("online-players-true"): { + return Integer.toString(Bukkit.getOnlinePlayers().stream().filter(player -> !player.getMetadata("vanished").get(0).asBoolean()).collect(Collectors.toList()).size()); + } case("panel-position"): { return position.toString(); } @@ -323,12 +326,22 @@ public class Placeholders { //checks for players online if(identifier.startsWith("player-online-")) { try { - String playerLocation = identifier.replace("player-online-", ""); - Player[] playerFind = Bukkit.getOnlinePlayers().toArray(new Player[Bukkit.getOnlinePlayers().size()]); - if (Double.parseDouble(playerLocation) > playerFind.length) { - return plugin.tex.colour(Objects.requireNonNull(plugin.config.getString("config.format.offline"))); + if (identifier.endsWith("-true")){ + String playerLocation = identifier.replace("player-online-", ""); + Player[] playerFind = Bukkit.getOnlinePlayers().toArray(new Player[Bukkit.getOnlinePlayers().stream().filter(player -> !player.getMetadata("vanished").get(0).asBoolean()).collect(Collectors.toList()).size()]); + if (Double.parseDouble(playerLocation) > playerFind.length) { + return plugin.tex.colour(Objects.requireNonNull(plugin.config.getString("config.format.offline"))); + } else { + return playerFind[(int)(Double.parseDouble(playerLocation) - 1)].getName(); + } } else { - return playerFind[(int)(Double.parseDouble(playerLocation) - 1)].getName(); + String playerLocation = identifier.replace("player-online-", ""); + Player[] playerFind = Bukkit.getOnlinePlayers().toArray(new Player[Bukkit.getOnlinePlayers().size()]); + if (Double.parseDouble(playerLocation) > playerFind.length) { + return plugin.tex.colour(Objects.requireNonNull(plugin.config.getString("config.format.offline"))); + } else { + return playerFind[(int)(Double.parseDouble(playerLocation) - 1)].getName(); + } } }catch (Exception ex){ plugin.debug(ex,p); diff --git a/src/me/rockyhawk/commandpanels/commandtags/CommandTags.java b/src/me/rockyhawk/commandpanels/commandtags/CommandTags.java index 4a6f7cf..152182f 100644 --- a/src/me/rockyhawk/commandpanels/commandtags/CommandTags.java +++ b/src/me/rockyhawk/commandpanels/commandtags/CommandTags.java @@ -181,7 +181,7 @@ public class CommandTags { if(plugin.config.getBoolean("purchase.tokens.enable")){ plugin.tex.sendString(panel, PanelPosition.Top, p, Objects.requireNonNull(plugin.config.getString("purchase.tokens.success")).replaceAll("%cp-args%", command.split("\\s")[1])); } - plugin.tex.sendString(panel, PanelPosition.Top, p, Objects.requireNonNull(plugin.config.getString("purchase.tokens.success")).replaceAll("%cp-args%", command.split("\\s")[1])); + return PaywallOutput.Passed; } else { if(plugin.config.getBoolean("purchase.tokens.enable")){