mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-05 18:27:17 +01:00
[Bleeding] Added Vanish API for hiding players from each other.
Adds Player.hidePlayer, Player.showPlayer, and Player.canSee for managing what players are hidden from a player. When someone is hidden from a player the player cannot see them in the user list or /list and they cannot /tell them so they appear to be completely gone from the server. By: Travis Watkins <amaranth@ubuntu.com>
This commit is contained in:
parent
b2d95b3937
commit
f7f18879e3
4 changed files with 40 additions and 1 deletions
|
@ -19,6 +19,10 @@ public class ListCommand extends VanillaCommand {
|
|||
StringBuilder players = new StringBuilder();
|
||||
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
// 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 (players.length() > 0) {
|
||||
players.append(", ");
|
||||
}
|
||||
|
|
|
@ -24,7 +24,8 @@ public class TellCommand extends VanillaCommand {
|
|||
|
||||
Player player = Bukkit.getPlayerExact(args[0]);
|
||||
|
||||
if (player == null) {
|
||||
// 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();
|
||||
|
|
|
@ -490,4 +490,26 @@ public interface Player extends HumanEntity, CommandSender, OfflinePlayer, Plugi
|
|||
*/
|
||||
public void setAllowFlight(boolean flight);
|
||||
|
||||
/**
|
||||
* Hides a player from this player
|
||||
*
|
||||
* @param player Player to hide
|
||||
*/
|
||||
public void hidePlayer(Player player);
|
||||
|
||||
/**
|
||||
* Allows this player to see a player that was previously hidden
|
||||
*
|
||||
* @param player Player to show
|
||||
*/
|
||||
public void showPlayer(Player player);
|
||||
|
||||
/**
|
||||
* Checks to see if a player has been hidden from this player
|
||||
*
|
||||
* @param player Player to check
|
||||
* @return True if the provided player is not being hidden from this player
|
||||
*/
|
||||
public boolean canSee(Player player);
|
||||
|
||||
}
|
||||
|
|
|
@ -609,4 +609,16 @@ public class TestPlayer implements Player {
|
|||
public void setBedSpawnLocation(Location location) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
public void hidePlayer(Player player) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
public void showPlayer(Player player) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
public boolean canSee(Player player) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue