mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-12 01:41:05 +01:00
89182676ed
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 CraftBukkit Changes:9e95da12
SPIGOT-5052: PlayerPortalEvent not called when nether is disabled28ea3fd1
SPIGOT-5062: end_portal on an non-default end world crashes the server4a07dc69
SPIGOT-5058: ClassCastException when getting InventoryHolder of lectern when it's destroyed
70 lines
3.3 KiB
Diff
70 lines
3.3 KiB
Diff
From 9cd2eba30c9ad0bb33b89c200f509e52c4a17d44 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 4603165280..0cd9f83cc9 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
@@ -37,7 +37,7 @@ import org.bukkit.inventory.MainHand;
|
|
public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
|
|
private static final Logger LOGGER = 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;
|
|
@@ -1441,13 +1441,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.ck = packetplayinsettings.d();
|
|
this.cl = packetplayinsettings.e();
|
|
this.getDataWatcher().set(EntityPlayer.bt, (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 cc31b8d4ac..397349963d 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -1749,8 +1749,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
|
|
@@ -1840,7 +1842,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
@Override
|
|
public String getLocale()
|
|
{
|
|
- return getHandle().locale;
|
|
+ return CraftPlayer.this.getLocale(); // Paper
|
|
}
|
|
|
|
@Override
|
|
--
|
|
2.21.0
|
|
|