package org.bukkit.entity; import java.net.InetSocketAddress; import org.bukkit.Achievement; import org.bukkit.ChatColor; import org.bukkit.Effect; import org.bukkit.Instrument; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Note; import org.bukkit.OfflinePlayer; import org.bukkit.Statistic; import org.bukkit.command.CommandSender; import org.bukkit.map.MapView; import org.bukkit.plugin.messaging.PluginMessageRecipient; /** * Represents a player, connected or not */ public interface Player extends HumanEntity, CommandSender, OfflinePlayer, PluginMessageRecipient { /** * Gets the "friendly" name to display of this player. This may include color. *
* Note that this name will not be displayed in game, only in chat and places * defined by plugins * * @return the friendly name */ public String getDisplayName(); /** * Sets the "friendly" name to display of this player. This may include color. * * Note that this name will not be displayed in game, only in chat and places * defined by plugins * * @param name The new display name. */ public void setDisplayName(String name); /** * Gets the name that is shown on the player list. * * @return the player list name */ public String getPlayerListName(); /** * Sets the name that is shown on the in-game player list. ** The name cannot be longer than 16 characters, but {@link ChatColor} is supported. *
* If the value is null, the name will be identical to {@link #getName()}. *
* This name is case sensitive and unique, two names with different casing will * appear as two different people. If a player joins afterwards with * a name that conflicts with a player's custom list name, the * joining player's player list name will have a random number appended to it * (1-2 characters long in the default implementation). If the joining * player's name is 15 or 16 characters long, part of the name will * be truncated at the end to allow the addition of the two digits. * * @param name new player list name * @throws IllegalArgumentException if the name is already used by someone else * @throws IllegalArgumentException if the length of the name is too long */ public void setPlayerListName(String name); /** * Set the target of the player's compass. * * @param loc Location to point to */ public void setCompassTarget(Location loc); /** * Get the previously set compass target. * * @return location of the target */ public Location getCompassTarget(); /** * Gets the socket address of this player * * @return the player's address */ public InetSocketAddress getAddress(); /** * Sends this sender a message raw * * @param message Message to be displayed */ public void sendRawMessage(String message); /** * Kicks player with custom kick message. * * @param message kick message */ public void kickPlayer(String message); /** * Says a message (or runs a command). * * @param msg message to print */ public void chat(String msg); /** * Makes the player perform the given command * * @param command Command to perform * @return true if the command was successful, otherwise false */ public boolean performCommand(String command); /** * Returns if the player is in sneak mode * * @return true if player is in sneak mode */ public boolean isSneaking(); /** * Sets the sneak mode the player * * @param sneak true if player should appear sneaking */ public void setSneaking(boolean sneak); /** * Gets whether the player is sprinting or not. * * @return true if player is sprinting. */ public boolean isSprinting(); /** * Sets whether the player is sprinting or not. * * @param sprinting true if the player should be sprinting */ public void setSprinting(boolean sprinting); /** * Saves the players current location, health, inventory, motion, and other information into the username.dat file, in the world/player folder */ public void saveData(); /** * Loads the players current location, health, inventory, motion, and other information from the username.dat file, in the world/player folder *
* Note: This will overwrite the players current inventory, health, motion, etc, with the state from the saved dat file. */ public void loadData(); /** * Sets whether the player is ignored as not sleeping. If everyone is * either sleeping or has this flag set, then time will advance to the * next day. If everyone has this flag set but no one is actually in bed, * then nothing will happen. * * @param isSleeping Whether to ignore. */ public void setSleepingIgnored(boolean isSleeping); /** * Returns whether the player is sleeping ignored. * * @return Whether player is ignoring sleep. */ public boolean isSleepingIgnored(); /** * Play a note for a player at a location. This requires a note block * at the particular location (as far as the client is concerned). This * will not work without a note block. This will not work with cake. * * @param loc The location of a note block. * @param instrument The instrument ID. * @param note The note ID. */ public void playNote(Location loc, byte instrument, byte note); /** * Play a note for a player at a location. This requires a note block * at the particular location (as far as the client is concerned). This * will not work without a note block. This will not work with cake. * * @param loc The location of a note block * @param instrument The instrument * @param note The note */ public void playNote(Location loc, Instrument instrument, Note note); /** * Plays an effect to just this player. * * @param loc the location to play the effect at * @param effect the {@link Effect} * @param data a data bit needed for some effects */ public void playEffect(Location loc, Effect effect, int data); /** * Plays an effect to just this player. * * @param loc the location to play the effect at * @param effect the {@link Effect} * @param data a data bit needed for some effects */ public* This is a percentage value. 0 is "no progress" and 1 is "next level". * * @return Current experience points */ public float getExp(); /** * Sets the players current experience points towards the next level *
* This is a percentage value. 0 is "no progress" and 1 is "next level". * * @param exp New experience points */ public void setExp(float exp); /** * Gets the players current experience level * * @return Current experience level */ public int getLevel(); /** * Sets the players current experience level * * @param level New experience level */ public void setLevel(int level); /** * Gets the players total experience points * * @return Current total experience points */ public int getTotalExperience(); /** * Sets the players current experience level * * @param exp New experience level */ public void setTotalExperience(int exp); /** * Gets the players current exhaustion level. *
* Exhaustion controls how fast the food level drops. While you have a certain * amount of exhaustion, your saturation will drop to zero, and then your food * will drop to zero. * * @return Exhaustion level */ public float getExhaustion(); /** * Sets the players current exhaustion level * * @param value Exhaustion level */ public void setExhaustion(float value); /** * Gets the players current saturation level. *
* Saturation is a buffer for food level. Your food level will not drop if you * are saturated > 0. * * @return Saturation level */ public float getSaturation(); /** * Sets the players current saturation level * * @param value Exhaustion level */ public void setSaturation(float value); /** * Gets the players current food level * * @return Food level */ public int getFoodLevel(); /** * Sets the players current food level * * @param value New food level */ public void setFoodLevel(int value); /** * Gets the Location where the player will spawn at their bed, null if they have not slept in one or their current bed spawn is invalid. * * @return Bed Spawn Location if bed exists, otherwise null. */ public Location getBedSpawnLocation(); /** * Sets the Location where the player will spawn at their bed. * * @param location where to set the respawn location */ public void setBedSpawnLocation(Location location); /** * Determines if the Player is allowed to fly via jump key double-tap like in creative mode. * * @return True if the player is allowed to fly. */ public boolean getAllowFlight(); /** * Sets if the Player is allowed to fly via jump key double-tap like in creative mode. * * @param flight If flight should be allowed. */ 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); }