bukkitHiding Players

Syntax

  • void hide(Player toHide);
  • void show(Player toShow);
  • boolean canSee(Player toBeSeen);

Remarks

Events are better covered in StackOverflow's List of Events documentation

Hiding a Player from other Players

Player playerToHide;
Player playerToNotSee;


playerToNotSee.hide(playerToHide);
//playerToHide will no longer be seen by playerToNotSee.

If player is already hidden, nothing happens

Showing a Player to another Player

Player toUnhide;
Player toSeeAgain

toSeeAgain.show(toUnhide);
//Player toSeeAgain will now see Player toUnhide again.

If player is already visible, nothing happens.

Checking if player can be seen

Player playerToCheck;
Player playerSeeing;

boolean isVisible = playerSeeing.canSee(playerToCheck);
//isVisible returns true if playerSeeing can see playerToCheck and false otherwhise

Hiding Player from an Entity

This can be done by using the event EntityTargetEvent

Entities won't target the player if you cancel the event:

@EventHandler
public void onEntityTarget(EntityTargetEvent e) {
    Entity target = e.getEntity();
    if(target instanceof Player) {
        Player playerTargetted = (Player) target;
        if (shouldBeInvisible(playerTargetted) {
            e.setCancelled(true);    //Cancel the target event
        }
    }
}