mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-06 11:58:10 +02:00
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Please note that this build includes changes to meet upstreams requirements for nullability annotations. While we aim for a level of accuracy, these might not be 100% correct, if there are any issues, please speak to us on discord, or open an issue on the tracker to discuss. Bukkit Changes: 9a6a1de3 Remove nullability annotations from enum constructors 3f0591ea SPIGOT-2540: Add nullability annotations to entire Bukkit API CraftBukkit Changes:8d8475fc
SPIGOT-4666: Force parameter in HumanEntity#sleep8b1588e2
Fix ExplosionPrimeEvent#setFire not working with EnderCrystals39a287b7
Don't ignore newlines in PlayerListHeader/Footer Spigot Changes: cf694d87 Add nullability annotations
71 lines
3.3 KiB
Diff
71 lines
3.3 KiB
Diff
From 14480770961d8973ac54265353f75e7928261ebd Mon Sep 17 00:00:00 2001
|
|
From: Isaac Moore <rmsy@me.com>
|
|
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 2665faa6c..7ed9903a8 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
@@ -33,7 +33,7 @@ import org.bukkit.inventory.MainHand;
|
|
public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
|
|
private static final Logger cc = LogManager.getLogger();
|
|
- public String locale = "en_us"; // CraftBukkit - lowercase
|
|
+ public String locale = null; // CraftBukkit - lowercase // Paper - default to null
|
|
public PlayerConnection playerConnection;
|
|
public final MinecraftServer server;
|
|
public final PlayerInteractManager playerInteractManager;
|
|
@@ -1266,13 +1266,20 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(getBukkitEntity(), getMainHand() == EnumMainHand.LEFT ? MainHand.LEFT : MainHand.RIGHT);
|
|
this.server.server.getPluginManager().callEvent(event);
|
|
}
|
|
- if (!this.locale.equals(packetplayinsettings.b())) {
|
|
+ if (this.locale == null || !this.locale.equals(packetplayinsettings.b())) { // Paper - check for null
|
|
PlayerLocaleChangeEvent event = new PlayerLocaleChangeEvent(getBukkitEntity(), packetplayinsettings.b());
|
|
this.server.server.getPluginManager().callEvent(event);
|
|
}
|
|
this.clientViewDistance = packetplayinsettings.viewDistance;
|
|
// CraftBukkit end
|
|
+ // 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.b();
|
|
+ if (!this.locale.equals(oldLocale)) {
|
|
+ new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), oldLocale, this.locale).callEvent();
|
|
+ }
|
|
+ // Paper end
|
|
this.cs = packetplayinsettings.d();
|
|
this.ct = packetplayinsettings.e();
|
|
this.getDataWatcher().set(EntityPlayer.bx, (byte) packetplayinsettings.f());
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
index bd95e1778..f3f3e81b2 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -1716,8 +1716,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
|
|
}
|
|
|
|
// Paper start
|
|
@@ -1806,7 +1808,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
@Override
|
|
public String getLocale()
|
|
{
|
|
- return getHandle().locale;
|
|
+ return CraftPlayer.this.getLocale(); // Paper
|
|
}
|
|
|
|
@Override
|
|
--
|
|
2.21.0
|
|
|