aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0136-Implement-PlayerLocaleChangeEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0136-Implement-PlayerLocaleChangeEvent.patch')
-rw-r--r--Spigot-Server-Patches/0136-Implement-PlayerLocaleChangeEvent.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0136-Implement-PlayerLocaleChangeEvent.patch b/Spigot-Server-Patches/0136-Implement-PlayerLocaleChangeEvent.patch
new file mode 100644
index 0000000000..14e248056a
--- /dev/null
+++ b/Spigot-Server-Patches/0136-Implement-PlayerLocaleChangeEvent.patch
@@ -0,0 +1,53 @@
+From 94406909cbd42e589bd2380c3de9d308fa53c9df Mon Sep 17 00:00:00 2001
+From: Isaac Moore <[email protected]>
+Date: Tue, 19 Apr 2016 14:09:31 -0500
+Subject: [PATCH] Implement PlayerLocaleChangeEvent
+
+
+diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
+index 723d40c..44df116 100644
+--- a/src/main/java/net/minecraft/server/EntityPlayer.java
++++ b/src/main/java/net/minecraft/server/EntityPlayer.java
+@@ -26,7 +26,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
+ public class EntityPlayer extends EntityHuman implements ICrafting {
+
+ private static final Logger bR = LogManager.getLogger();
+- public String locale = "en_US"; // Spigot private -> public
++ public String locale = null; // Spigot private -> public // Paper - default to null
+ public PlayerConnection playerConnection;
+ public final MinecraftServer server;
+ public final PlayerInteractManager playerInteractManager;
+@@ -1073,7 +1073,14 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
+ }
+
+ public void a(PacketPlayInSettings packetplayinsettings) {
++ // Paper start - add PlayerLocaleChangeEvent
++ // Since the field is initialized to null, this event should always fire the first time the packet is received
++ String oldLocale = this.locale;
+ this.locale = packetplayinsettings.a();
++ if (!this.locale.equals(oldLocale)) {
++ new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), oldLocale, this.locale).callEvent();
++ }
++ // Paper end
+ this.cg = packetplayinsettings.c();
+ this.ch = packetplayinsettings.d();
+ this.getDataWatcher().set(EntityPlayer.bq, Byte.valueOf((byte) packetplayinsettings.e()));
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+index 7568fc8..d23cade 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+@@ -1657,7 +1657,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ @Override
+ public String getLocale()
+ {
+- return getHandle().locale;
++ // Paper start - Locale change event
++ final String locale = getHandle().locale;
++ return locale != null ? locale : "en_US";
++ // Paper end
+ }
+
+ @Override
+--
+2.7.4 (Apple Git-66)
+