Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-16 03:20:07 +01:00
18c3716c49
This enables us a fast reference to the entities current chunk instead of having to look it up by hashmap lookups. We also store counts by type to further enable other performance optimizations in later patches.
76 Zeilen
3.4 KiB
Diff
76 Zeilen
3.4 KiB
Diff
From 4dafbc193f7f87f87eff67ac6b4cec08ea43227b 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 ed3546ccc..4b6976b19 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
@@ -31,7 +31,7 @@ import org.bukkit.inventory.MainHand;
|
|
public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
|
|
private static final Logger bV = LogManager.getLogger();
|
|
- public String locale = "en_us"; // CraftBukkit - lowercase
|
|
+ public String locale = null; // PAIL: private -> public // Paper - default to null
|
|
public PlayerConnection playerConnection;
|
|
public final MinecraftServer server;
|
|
public final PlayerInteractManager playerInteractManager;
|
|
@@ -1238,12 +1238,24 @@ 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.a())) {
|
|
+
|
|
+ // 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();
|
|
+ }
|
|
+
|
|
+ // Compat with Bukkit
|
|
+ oldLocale = oldLocale != null ? oldLocale : "en_us";
|
|
+ // Paper end
|
|
+
|
|
+ if (!oldLocale.equals(packetplayinsettings.a())) {
|
|
PlayerLocaleChangeEvent event = new PlayerLocaleChangeEvent(getBukkitEntity(), packetplayinsettings.a());
|
|
this.server.server.getPluginManager().callEvent(event);
|
|
}
|
|
// CraftBukkit end
|
|
- this.locale = packetplayinsettings.a();
|
|
this.cl = packetplayinsettings.c();
|
|
this.cm = packetplayinsettings.d();
|
|
this.getDataWatcher().set(EntityPlayer.br, 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 0eee46edd..98e9da59a 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -1633,8 +1633,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
|
|
}
|
|
|
|
public void setAffectsSpawning(boolean affects) {
|
|
@@ -1771,7 +1773,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
@Override
|
|
public String getLocale()
|
|
{
|
|
- return getHandle().locale;
|
|
+ return CraftPlayer.this.getLocale(); // Paper
|
|
}
|
|
|
|
@Override
|
|
--
|
|
2.18.0
|
|
|