@Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if (!testPermission(sender)) return true; StringBuilder online = new StringBuilder(); final Collection<? extends Player> players = Bukkit.getOnlinePlayers(); for (Player player : players) { // If a player is hidden from the sender don't show them in the list if (sender instanceof Player && !((Player) sender).canSee(player)) continue; if (online.length() > 0) { online.append(", "); } online.append(player.getDisplayName()); } sender.sendMessage("There are " + players.size() + "/" + Bukkit.getMaxPlayers() + " players online:\n" + online.toString()); return true; }
for (Player player : sender.getServer().getOnlinePlayers()) { String name = player.getName(); if (!senderPlayer.canSee(player) || player.isOp()) { continue;
/** * Executed on tab completion for this command, returning a list of * options the player can tab through. * * @param sender Source object which is executing this command * @param alias the alias being used * @param args All arguments passed to the command, split via ' ' * @return a list of tab-completions for the specified arguments. This * will never be null. List may be immutable. * @throws IllegalArgumentException if sender, alias, or args is null */ public List<String> tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException { Validate.notNull(sender, "Sender cannot be null"); Validate.notNull(args, "Arguments cannot be null"); Validate.notNull(alias, "Alias cannot be null"); if (args.length == 0) { return ImmutableList.of(); } String lastWord = args[args.length - 1]; Player senderPlayer = sender instanceof Player ? (Player) sender : null; ArrayList<String> matchedPlayers = new ArrayList<String>(); for (Player player : sender.getServer().getOnlinePlayers()) { String name = player.getName(); if ((senderPlayer == null || senderPlayer.canSee(player)) && StringUtil.startsWithIgnoreCase(name, lastWord)) { matchedPlayers.add(name); } } Collections.sort(matchedPlayers, String.CASE_INSENSITIVE_ORDER); return matchedPlayers; }
@Override public <T> void spawnParticle(Particle particle, List<Player> receivers, Player source, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data) { if (receivers == null) { receivers = getPlayers(); } for (Player player : receivers) { if (player.canSee(source) && ((GlowPlayer) player).canSeeEntity((GlowPlayer) source)) { player.spawnParticle(particle, x, y, z, count, offsetX, offsetY, offsetZ, extra, data); } } }
@Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if (!testPermission(sender)) return true; if (args.length < 2) { sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); return false; } Player player = Bukkit.getPlayerExact(args[0]); // If a player is hidden from the sender pretend they are offline if (player == null || (sender instanceof Player && !((Player) sender).canSee(player))) { sender.sendMessage("There's no player by that name online."); } else { StringBuilder message = new StringBuilder(); for (int i = 1; i < args.length; i++) { if (i > 1) message.append(" "); message.append(args[i]); } String result = ChatColor.GRAY + sender.getName() + " whispers " + message; sender.sendMessage("[" + sender.getName() + "->" + player.getName() + "] " + message); player.sendMessage(result); } return true; } }
if (player == null || sender instanceof Player && !((Player) sender).canSee(player)) { commandMessages.getNoSuchPlayer().send(sender, args[0]); return false;
if (player == null || sender instanceof Player && !((Player) sender).canSee(player)) { commandMessages.getNoSuchPlayer().send(sender, args[0]); return false;
public static boolean hidden(CommandSender sender, Player target, boolean hasPermission) { return sender instanceof Player && !((Player) sender).canSee(target) && !hasPermission; }
public List<Player> getVisibleMembers(Player commandSender) { ArrayList<Player> visibleMembers = new ArrayList<>(); for(Player p : onlineMembers) { if(commandSender.canSee(p)) visibleMembers.add(p); } return visibleMembers; }
private boolean canSee(CommandSender sender, String playerName) { if (sender instanceof Player) { return ((Player) sender).canSee(Bukkit.getPlayerExact(playerName)); } return true; } }
private void sendUpdateOthers() throws FieldAccessException { //triggers an update for others player to see the new skin Bukkit.getOnlinePlayers().stream() .filter(onlinePlayer -> onlinePlayer.canSee(receiver)) .forEach(this::hideAndShow); }
@Override public boolean canSee(MCPlayer p) { return this.p.canSee(((BukkitMCPlayer) p)._Player()); }
public boolean isOnlineAndVisibleTo(Player player) { Player target = this.getPlayer(); return target != null && player.canSee(target); }
private static void findMatches(String search, CommandSender requester, List<Player> matches, List<Player> confirmList) { // Remove vanished players from smart matching. Iterator<Player> iter = matches.iterator(); //noinspection Duplicates while (iter.hasNext()) { Player player = iter.next(); if (requester instanceof Player && !((Player) requester).canSee(player)) { if (requester.hasPermission("acf.seevanish")) { if (!search.endsWith(":confirm")) { confirmList.add(player); iter.remove(); } } else { iter.remove(); } } } }
public List<String> getOnlinePlayerNames(CommandSender sender) { Player player = sender instanceof Player ? (Player) sender : null; List<String> onlinePlayerNames = new ArrayList<String>(); for (Player onlinePlayer : getOnlineMembers()) { if (player != null && player.canSee(onlinePlayer)) { onlinePlayerNames.add(onlinePlayer.getName()); } } return onlinePlayerNames; }
/** * Return a list of online players this player can see, i.e. are not invisible * @param user - the User - if null, all player names on the server are shown * @return a list of online players this player can see */ public static List<String> getOnlinePlayerList(User user) { if (user == null || !user.isPlayer()) { // Console and null get to see every player return Bukkit.getOnlinePlayers().stream().map(Player::getName).collect(Collectors.toList()); } // Otherwise prevent invisible players from seeing return Bukkit.getOnlinePlayers().stream().filter(p -> user.getPlayer().canSee(p)).map(Player::getName).collect(Collectors.toList()); }
public static List<String> getOnlinePlayerNames(CommandSender sender) { Player player = sender instanceof Player ? (Player) sender : null; List<String> onlinePlayerNames = new ArrayList<String>(); for (Player onlinePlayer : mcMMO.p.getServer().getOnlinePlayers()) { if (player != null && player.canSee(onlinePlayer)) { onlinePlayerNames.add(onlinePlayer.getName()); } } return onlinePlayerNames; }
@Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if (!testPermission(sender)) return true; StringBuilder online = new StringBuilder(); final Collection<? extends Player> players = Bukkit.getOnlinePlayers(); for (Player player : players) { // If a player is hidden from the sender don't show them in the list if (sender instanceof Player && !((Player) sender).canSee(player)) continue; if (online.length() > 0) { online.append(", "); } online.append(player.getDisplayName()); } sender.sendMessage("There are " + players.size() + "/" + Bukkit.getMaxPlayers() + " players online:\n" + online.toString()); return true; }
@Override public Optional<List<String>> tabComplete(User user, String alias, List<String> args) { if (args.isEmpty()) { // Don't show every player on the server. Require at least the first letter return Optional.empty(); } Island island = getIslands().getIsland(getWorld(), user.getUniqueId()); if (island != null) { List<String> options = Bukkit.getOnlinePlayers().stream() .filter(p -> !p.getUniqueId().equals(user.getUniqueId())) .filter(p -> !island.isBanned(p.getUniqueId())) .filter(p -> user.getPlayer().canSee(p)) .map(Player::getName).collect(Collectors.toList()); String lastArg = !args.isEmpty() ? args.get(args.size()-1) : ""; return Optional.of(Util.tabLimit(options, lastArg)); } else { return Optional.empty(); } } }
static void refreshPlayer(final Player player, final Player forWhom) { Preconditions.checkState(Main.getInst().isEnabled(), "Not Enabled!"); Preconditions.checkNotNull(player, "player"); Preconditions.checkNotNull(forWhom, "forWhom"); if (player != forWhom && player.getWorld() == forWhom.getWorld() && forWhom.canSee(player)) { forWhom.hidePlayer(player); Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.getInst(), () -> forWhom.showPlayer(player), 2); } }