|
34 | 34 | import org.spongepowered.api.data.type.SkinPart; |
35 | 35 | import org.spongepowered.api.data.value.mutable.Value; |
36 | 36 | import org.spongepowered.api.effect.Viewer; |
| 37 | +import org.spongepowered.api.entity.Entity; |
37 | 38 | import org.spongepowered.api.entity.living.Humanoid; |
38 | 39 | import org.spongepowered.api.entity.living.player.gamemode.GameMode; |
| 40 | +import org.spongepowered.api.entity.living.player.gamemode.GameModes; |
39 | 41 | import org.spongepowered.api.entity.living.player.tab.TabList; |
40 | 42 | import org.spongepowered.api.event.cause.Cause; |
41 | 43 | import org.spongepowered.api.item.inventory.Container; |
|
52 | 54 | import java.util.Optional; |
53 | 55 | import java.util.Set; |
54 | 56 |
|
| 57 | +import javax.annotation.Nullable; |
| 58 | + |
55 | 59 | /** |
56 | 60 | * A Player represents the in-game entity of a human playing on a server. |
57 | 61 | * This is in contrast to User which represents the storage and data |
@@ -294,4 +298,20 @@ default Value<GameMode> gameMode() { |
294 | 298 | */ |
295 | 299 | boolean respawnPlayer(); |
296 | 300 |
|
| 301 | + /** |
| 302 | + * Gets the {@link Entity} followed by the camera when in the |
| 303 | + * {@link GameModes#SPECTATOR spectator gamemode}. |
| 304 | + * |
| 305 | + * @return The followed entity, if present, {@link Optional#empty()} otherwise |
| 306 | + */ |
| 307 | + Optional<Entity> getSpectatorTarget(); |
| 308 | + |
| 309 | + /** |
| 310 | + * Sets the {@link Entity} followed by the camera when in the |
| 311 | + * {@link GameModes#SPECTATOR spectator gamemode}. |
| 312 | + * |
| 313 | + * @param entity The entity to spectate |
| 314 | + */ |
| 315 | + void setSpectatorTarget(@Nullable Entity entity); |
| 316 | + |
297 | 317 | } |
0 commit comments