geforkt von Mirrors/Paper
d33cdcf2e6
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: e25c6a75 PR-638: Add CreativeCategory API for Materials CraftBukkit Changes: 86292d3e0 PR-876: Add CreativeCategory API for Materials
62 Zeilen
2.5 KiB
Diff
62 Zeilen
2.5 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:42 -0800
|
|
Subject: [PATCH] Item Rarity API
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
index 7a4ae640aaaf2017ad4f95ca1393b554b0b30302..a4d5990101aeb0bd08a0ec2bd7b7ff704dfedfc0 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
@@ -512,6 +512,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
|
public int nextEntityId() {
|
|
return net.minecraft.world.entity.Entity.nextEntityId();
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public io.papermc.paper.inventory.ItemRarity getItemRarity(org.bukkit.Material material) {
|
|
+ Item item = getItem(material);
|
|
+ if (item == null) {
|
|
+ throw new IllegalArgumentException(material + " is not an item, and rarity does not apply to blocks");
|
|
+ }
|
|
+ return io.papermc.paper.inventory.ItemRarity.values()[item.rarity.ordinal()];
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public io.papermc.paper.inventory.ItemRarity getItemStackRarity(org.bukkit.inventory.ItemStack itemStack) {
|
|
+ return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()];
|
|
+ }
|
|
// Paper end
|
|
|
|
/**
|
|
diff --git a/src/test/java/io/papermc/paper/inventory/ItemRarityTest.java b/src/test/java/io/papermc/paper/inventory/ItemRarityTest.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..38e6d42098f216b1d24f50386e7be98181122d8d
|
|
--- /dev/null
|
|
+++ b/src/test/java/io/papermc/paper/inventory/ItemRarityTest.java
|
|
@@ -0,0 +1,24 @@
|
|
+package io.papermc.paper.inventory;
|
|
+
|
|
+import io.papermc.paper.adventure.PaperAdventure;
|
|
+import net.minecraft.world.item.Rarity;
|
|
+import org.junit.Test;
|
|
+
|
|
+import static org.junit.Assert.assertEquals;
|
|
+
|
|
+public class ItemRarityTest {
|
|
+
|
|
+ @Test
|
|
+ public void testConvertFromNmsToBukkit() {
|
|
+ for (Rarity nmsRarity : Rarity.values()) {
|
|
+ assertEquals("rarity names are mis-matched", ItemRarity.values()[nmsRarity.ordinal()].name(), nmsRarity.name());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ @Test
|
|
+ public void testRarityFormatting() {
|
|
+ for (Rarity nmsRarity : Rarity.values()) {
|
|
+ assertEquals("rarity formatting is mis-matched", nmsRarity.color, PaperAdventure.asVanilla(ItemRarity.values()[nmsRarity.ordinal()].color));
|
|
+ }
|
|
+ }
|
|
+}
|