From 2e64dd84f1f9bb2eb6a69cfbc6f3447305b99d51 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 4 May 2016 23:59:38 -0400
Subject: [PATCH] Implement getI18NDisplayName

Gets the Display name as seen in the Client.
Currently the server only supports the English language. To override this,
You must replace the language file embedded in the server jar.

diff --git a/src/main/java/net/minecraft/server/LocaleLanguage.java b/src/main/java/net/minecraft/server/LocaleLanguage.java
index 8fe8e28aa3..295c01b281 100644
--- a/src/main/java/net/minecraft/server/LocaleLanguage.java
+++ b/src/main/java/net/minecraft/server/LocaleLanguage.java
@@ -44,10 +44,12 @@ public class LocaleLanguage {
 
     }
 
+    public static LocaleLanguage getInstance() { return a(); } // Paper - OBFHELPER
     public static LocaleLanguage a() {
         return LocaleLanguage.c;
     }
 
+    public synchronized String translateKey(String key) { return a(key); } // Paper - OBFHELPER
     public synchronized String a(String s) {
         return this.c(s);
     }
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
index 1dc21e08db..7099eeda4e 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
@@ -333,5 +333,18 @@ public final class CraftItemFactory implements ItemFactory {
     public ItemStack ensureServerConversions(ItemStack item) {
         return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item));
     }
+
+    @Override
+    public String getI18NDisplayName(ItemStack item) {
+        net.minecraft.server.ItemStack nms = null;
+        if (item instanceof CraftItemStack) {
+            nms = ((CraftItemStack) item).handle;
+        }
+        if (nms == null) {
+            nms = CraftItemStack.asNMSCopy(item);
+        }
+
+        return nms != null ? net.minecraft.server.LocaleLanguage.getInstance().translateKey(nms.getItem().getName()) : null;
+    }
     // Paper end
 }
-- 
2.21.0

