mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-07 20:38:22 +02:00
the first 'major' change in this PR is to cache the generated event executrs from the ASM class, by doing this we only generate a single class for every method that we need an executor for, thus reducing the number of classes that are needed, especially in cases where plugins re/unregister events all the time. The second change is to modify the generated classloader map, generated classloaders are not held against the plugin itself but the classloader that the event is declared in, the implication here is that we cannot drop generated classloaders when a plugin disable, and so we use a guava weak-key'd hashmap, downfall here is that classes won't be GC'd until guava drops the generated classloader, however the first change should deal with most of the grunt.
54 lines
2.1 KiB
Diff
54 lines
2.1 KiB
Diff
From f2f0642e3bce08e006218abf9e98fb735a641963 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Wed, 4 May 2016 23:55:48 -0400
|
|
Subject: [PATCH] Add getI18NDisplayName API
|
|
|
|
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/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
index 99b90629..559de54e 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
@@ -133,5 +133,15 @@ public interface ItemFactory {
|
|
* @return A potentially Data Converted ItemStack
|
|
*/
|
|
ItemStack ensureServerConversions(ItemStack item);
|
|
+
|
|
+ /**
|
|
+ * 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.
|
|
+ *
|
|
+ * @param item Item to return Display name of
|
|
+ * @return Display name of Item
|
|
+ */
|
|
+ String getI18NDisplayName(ItemStack item);
|
|
// Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
index 6bb19b9d..7a52da9b 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -621,5 +621,16 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
|
|
public ItemStack ensureServerConversions() {
|
|
return Bukkit.getServer().getItemFactory().ensureServerConversions(this);
|
|
}
|
|
+
|
|
+ /**
|
|
+ * 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.
|
|
+ *
|
|
+ * @return Display name of Item
|
|
+ */
|
|
+ public String getI18NDisplayName() {
|
|
+ return Bukkit.getServer().getItemFactory().getI18NDisplayName(this);
|
|
+ }
|
|
// Paper end
|
|
}
|
|
--
|
|
2.14.1
|
|
|