mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 07:48:53 +01:00
52a05907c7
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: 97c59261 PR-1073: Make Biome an interface a38581aa Fix further javadoc errors 8271c490 Fix javadoc error 8a9ecf29 PR-1072: Fix bad naming for Vault State methods 6dd58108 PR-1071: Make Fluid an interface and add missing entry ed2cdfc3 PR-1070: Make Attribute an interface and align names with the new minecraft ones 63472efb PR-1069: Add missing winter drop experimental annotation to pale boats CraftBukkit Changes: 7235ad7b0 PR-1501: Make Biome an interface 602904003 PR-1500: Rename implementation for Vault State methods 75f26f79f PR-1499: Make Fluid an interface and add missing entry 4cfd87adc PR-1498: Make Attribute an interface and align names with the new minecraft ones 6bb0db5cb SPIGOT-7928: ExactChoice acts as MaterialChoice 3eaf3a13c SPIGOT-7929: Error when setting EquippableComponent abbf57bac SPIGOT-7930: Fix spawning entities with SummonEntityEffect 92d6ab6cf PR-1497: Move boat field rename entries to below key renaming, so that keys are also renamed abfe292aa PR-1496: Use correct Fluid class on Tags type check c7aab7fa7 SPIGOT-7923: Fix Dispenser logic to avoid firing empty projectiles
69 lines
3.3 KiB
Diff
69 lines
3.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Fri, 19 Jul 2024 08:43:01 -0700
|
|
Subject: [PATCH] Add even more Enchantment API
|
|
|
|
In a separate patch because it uses RegistryKeySet which
|
|
is after the previous "more enchant api" patch.
|
|
|
|
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
|
|
index ddd44191c67c1926e615edabb82ed0b592fbee09..43e306584988e39a6daca78c621a937acdce48a1 100644
|
|
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
|
|
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
|
|
@@ -432,6 +432,56 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve
|
|
public abstract java.util.Set<org.bukkit.inventory.EquipmentSlotGroup> getActiveSlotGroups();
|
|
// Paper end - more Enchantment API
|
|
|
|
+ // Paper start - even more Enchantment API
|
|
+ /**
|
|
+ * Provides the description of this enchantment entry as displayed to the client, e.g. "Sharpness" for the sharpness
|
|
+ * enchantment.
|
|
+ *
|
|
+ * @return the description component.
|
|
+ */
|
|
+ public abstract net.kyori.adventure.text.@NotNull Component description();
|
|
+
|
|
+ /**
|
|
+ * Provides the registry key set referencing the items this enchantment is supported on.
|
|
+ *
|
|
+ * @return the registry key set.
|
|
+ */
|
|
+ @org.jetbrains.annotations.ApiStatus.Experimental
|
|
+ public abstract io.papermc.paper.registry.set.@NotNull RegistryKeySet<org.bukkit.inventory.ItemType> getSupportedItems();
|
|
+
|
|
+ /**
|
|
+ * Provides the registry key set referencing the item types this enchantment can be applied to when
|
|
+ * enchanting in an enchantment table.
|
|
+ * <p>
|
|
+ * If this value is {@code null}, {@link #getSupportedItems()} will be sourced instead in the context of an enchantment table.
|
|
+ * Additionally, the tag {@link io.papermc.paper.registry.keys.tags.EnchantmentTagKeys#IN_ENCHANTING_TABLE} defines
|
|
+ * which enchantments can even show up in an enchantment table.
|
|
+ *
|
|
+ * @return the registry key set.
|
|
+ */
|
|
+ @org.jetbrains.annotations.ApiStatus.Experimental
|
|
+ public abstract io.papermc.paper.registry.set.@Nullable RegistryKeySet<org.bukkit.inventory.ItemType> getPrimaryItems();
|
|
+
|
|
+ /**
|
|
+ * Provides the weight of this enchantment used by the weighted random when selecting enchantments.
|
|
+ *
|
|
+ * @return the weight value.
|
|
+ * @see <a href="https://minecraft.wiki/w/Enchanting">https://minecraft.wiki/w/Enchanting</a> for examplary weights.
|
|
+ */
|
|
+ public abstract int getWeight();
|
|
+
|
|
+ /**
|
|
+ * Provides the registry key set of enchantments that this enchantment is exclusive with.
|
|
+ * <p>
|
|
+ * Exclusive enchantments prohibit the application of this enchantment to an item if they are already present on
|
|
+ * said item.
|
|
+ *
|
|
+ * @return a registry set of enchantments exclusive to this one.
|
|
+ */
|
|
+ @org.jetbrains.annotations.ApiStatus.Experimental
|
|
+ public abstract io.papermc.paper.registry.set.@NotNull RegistryKeySet<Enchantment> getExclusiveWith();
|
|
+ // Paper end - even more Enchantment API
|
|
+
|
|
// Paper start - mark translation key as deprecated
|
|
/**
|
|
* @deprecated this method assumes that the enchantments description
|