mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-23 11:06:29 +01:00
4cdbb0c86c
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 044d4ee9 SPIGOT-7283, SPIGOT-7318: Add AsyncStructureGenerateEvent and BlockState cloning 57b73d57 PR-913: Deprecate Projectile#doesBounce() and #setBounce() 43373c44 PR-904: Update FeatureFlag for 1.20.2 a7bbbf0c PR-911: Expand DataPack API with 1.20.2 pack version methods 0341e3a0 SPIGOT-7489: Add TeleportDuration to Display Entity bcd8d2aa PR-912: Update Minecraft Wiki URLs CraftBukkit Changes: 99aafc222 Increase outdated build delay dab849f08 SPIGOT-7283, SPIGOT-7318: Add AsyncStructureGenerateEvent and BlockState cloning 041b29ae3 Upgrade specialsource-maven-plugin 851a32cff PR-1263: Remove unused implementation of AbstractProjectile#doesBounce() and #setBounce() 251af0da3 PR-1261: Expand DataPack API with 1.20.2 pack version methods 46e4ba627 Upgrade specialsource-maven-plugin df3738a24 SPIGOT-7489: Add TeleportDuration to Display Entity 8d0fea457 PR-1262: Update Minecraft Wiki URLs e62905aab SPIGOT-7490: Fix entity equipment updates Spigot Changes: a0f3d486 Rebuild patches
110 lines
3.9 KiB
Diff
110 lines
3.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Fri, 12 Mar 2021 17:09:40 -0800
|
|
Subject: [PATCH] Item Rarity API
|
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/inventory/ItemRarity.java b/src/main/java/io/papermc/paper/inventory/ItemRarity.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..74ef8395cc040ce488c2acaa416db20272cc2734
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/inventory/ItemRarity.java
|
|
@@ -0,0 +1,28 @@
|
|
+package io.papermc.paper.inventory;
|
|
+
|
|
+import net.kyori.adventure.text.format.NamedTextColor;
|
|
+import net.kyori.adventure.text.format.TextColor;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+public enum ItemRarity {
|
|
+
|
|
+ COMMON(NamedTextColor.WHITE),
|
|
+ UNCOMMON(NamedTextColor.YELLOW),
|
|
+ RARE(NamedTextColor.AQUA),
|
|
+ EPIC(NamedTextColor.LIGHT_PURPLE);
|
|
+
|
|
+ TextColor color;
|
|
+
|
|
+ ItemRarity(TextColor color) {
|
|
+ this.color = color;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the color formatting associated with the rarity.
|
|
+ * @return
|
|
+ */
|
|
+ @NotNull
|
|
+ public TextColor getColor() {
|
|
+ return color;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
|
|
index 74f9626b485aca594cdb9f11c363c6c38c78a661..cfe35b0ca1f502c5c9af0d307bd22dcecc3b0f32 100644
|
|
--- a/src/main/java/org/bukkit/Material.java
|
|
+++ b/src/main/java/org/bukkit/Material.java
|
|
@@ -4463,6 +4463,17 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
|
|
return Bukkit.getUnsafe().getBlockTranslationKey(this);
|
|
}
|
|
}
|
|
+
|
|
+ /**
|
|
+ * Returns the item rarity for the item. The Material <b>MUST</b> be an Item not a block.
|
|
+ * Use {@link #isItem()} before this.
|
|
+ *
|
|
+ * @return the item rarity
|
|
+ */
|
|
+ @NotNull
|
|
+ public io.papermc.paper.inventory.ItemRarity getItemRarity() {
|
|
+ return Bukkit.getUnsafe().getItemRarity(this);
|
|
+ }
|
|
// Paper end
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
|
|
index 1c07e3ef0b7bf3bc0bfe234434114cb6c2f18d42..2c79e05db0b87599fcc650df3c81ed906ad3e76a 100644
|
|
--- a/src/main/java/org/bukkit/UnsafeValues.java
|
|
+++ b/src/main/java/org/bukkit/UnsafeValues.java
|
|
@@ -141,5 +141,22 @@ public interface UnsafeValues {
|
|
* Just don't use it.
|
|
*/
|
|
@org.jetbrains.annotations.NotNull String getMainLevelName();
|
|
+
|
|
+ /**
|
|
+ * Gets the item rarity of a material. The material <b>MUST</b> be an item.
|
|
+ * Use {@link Material#isItem()} before this.
|
|
+ *
|
|
+ * @param material the material to get the rarity of
|
|
+ * @return the item rarity
|
|
+ */
|
|
+ public io.papermc.paper.inventory.ItemRarity getItemRarity(Material material);
|
|
+
|
|
+ /**
|
|
+ * Gets the item rarity of the itemstack. The rarity can change based on enchantements.
|
|
+ *
|
|
+ * @param itemStack the itemstack to get the rarity of
|
|
+ * @return the itemstack rarity
|
|
+ */
|
|
+ public io.papermc.paper.inventory.ItemRarity getItemStackRarity(ItemStack itemStack);
|
|
// Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
index e4ad3a550050c4bf9cc7a2a1082bfdf668050efe..4f867ba2bc9b1a7c277e4a5f0ea8b452315f3272 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -877,5 +877,15 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
|
public @NotNull String translationKey() {
|
|
return Bukkit.getUnsafe().getTranslationKey(this);
|
|
}
|
|
+
|
|
+ /**
|
|
+ * Gets the item rarity of the itemstack. The rarity can change based on enchantements.
|
|
+ *
|
|
+ * @return the itemstack rarity
|
|
+ */
|
|
+ @NotNull
|
|
+ public io.papermc.paper.inventory.ItemRarity getRarity() {
|
|
+ return Bukkit.getUnsafe().getItemStackRarity(this);
|
|
+ }
|
|
// Paper end
|
|
}
|