Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 12:30:06 +01:00
2d09115b3a
Uses the new ANSIComponentSerializer introduced in Adventure 4.14.0 to serialize components when logging them via the ComponentLogger, or when sending messages to the console. This replaces the old solution which uses legacy jank and custom color conversions, with a new library that handles the conversion and config
64 Zeilen
2.7 KiB
Diff
64 Zeilen
2.7 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
|
|
|
|
== AT ==
|
|
public net.minecraft.world.item.Item rarity
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
index 8e92454f435a43a78007ef607f15a94d2ac980ae..44850ec4a8245bc534efb85008486dd6f599b2e4 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
@@ -530,6 +530,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
|
public String getMainLevelName() {
|
|
return ((net.minecraft.server.dedicated.DedicatedServer) net.minecraft.server.MinecraftServer.getServer()).getProperties().levelName;
|
|
}
|
|
+
|
|
+ @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));
|
|
+ }
|
|
+ }
|
|
+}
|