From 6e76dbda88499a3801b40571009563665a91815a Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Fri, 26 May 2017 23:31:07 +0200 Subject: [PATCH] SPIGOT-439: Add player locale related APIs. By: MiniDigger --- .../main/java/org/bukkit/entity/Player.java | 13 +++++++ .../event/player/PlayerLocaleChangeEvent.java | 37 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 paper-api/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java diff --git a/paper-api/src/main/java/org/bukkit/entity/Player.java b/paper-api/src/main/java/org/bukkit/entity/Player.java index 92604ab306..33f6e6dc39 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -1403,4 +1403,17 @@ public interface Player extends HumanEntity, Conversable, CommandSender, Offline * @return object detailing the player's progress */ public AdvancementProgress getAdvancementProgress(Advancement advancement); + + /** + * Gets the player's current locale. + * + * The value of the locale String is not defined properly. + *
+ * The vanilla Minecraft client will use lowercase language / country pairs + * separated by an underscore, but custom resource packs may use any format + * they wish. + * + * @return the player's locale + */ + public String getLocale(); } diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java new file mode 100644 index 0000000000..fbbfccccfa --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerLocaleChangeEvent.java @@ -0,0 +1,37 @@ +package org.bukkit.event.player; + +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; + +/** + * Called when a player changes their locale in the client settings. + */ +public class PlayerLocaleChangeEvent extends PlayerEvent { + + private static final HandlerList handlers = new HandlerList(); + // + private final String locale; + + public PlayerLocaleChangeEvent(Player who, String locale) { + super(who); + this.locale = locale; + } + + /** + * @see Player#getLocale() + * + * @return the player's new locale + */ + public String getLocale() { + return locale; + } + + @Override + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } +}