From fcb5b20e273e2171118d5cb77135c82a9339e878 Mon Sep 17 00:00:00 2001 From: T00thpick1 Date: Fri, 7 Dec 2012 14:19:01 -0500 Subject: Add per-player Weather API. Adds BUKKIT-812 --- src/main/java/org/bukkit/WeatherType.java | 16 ++++++++++++++++ src/main/java/org/bukkit/entity/Player.java | 24 ++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/main/java/org/bukkit/WeatherType.java (limited to 'src/main') diff --git a/src/main/java/org/bukkit/WeatherType.java b/src/main/java/org/bukkit/WeatherType.java new file mode 100644 index 00000000..624ed489 --- /dev/null +++ b/src/main/java/org/bukkit/WeatherType.java @@ -0,0 +1,16 @@ +package org.bukkit; + +/** + * An enum of all current weather types + */ +public enum WeatherType { + /** + * Raining or snowing depending on biome. + */ + DOWNFALL, + /** + * Clear weather, clouds but no rain. + */ + CLEAR, + ; +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java index 749e2031..072607f3 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -12,6 +12,7 @@ import org.bukkit.Note; import org.bukkit.OfflinePlayer; import org.bukkit.Sound; import org.bukkit.Statistic; +import org.bukkit.WeatherType; import org.bukkit.command.CommandSender; import org.bukkit.conversations.Conversable; import org.bukkit.map.MapView; @@ -363,6 +364,29 @@ public interface Player extends HumanEntity, Conversable, CommandSender, Offline */ public void resetPlayerTime(); + /** + * Sets the type of weather the player will see. When used, the weather + * status of the player is locked until {@link #resetPlayerWeather()} is + * used. + * + * @param type The WeatherType enum type the player should experience + */ + public void setPlayerWeather(WeatherType type); + + /** + * Returns the type of weather the player is currently experiencing. + * + * @return The WeatherType that the player is currently experiencing or + * null if player is seeing server weather. + */ + public WeatherType getPlayerWeather(); + + /** + * Restores the normal condition where the player's weather is controlled + * by server conditions. + */ + public void resetPlayerWeather(); + /** * Gives the player the amount of experience specified. * -- cgit v1.2.3