136 lines
		
	
	
	
		
			4.6 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
	
		
			4.6 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
						|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
 | 
						|
Date: Thu, 6 May 2021 19:58:03 -0700
 | 
						|
Subject: [PATCH] More Enchantment API
 | 
						|
 | 
						|
 | 
						|
diff --git a/src/main/java/io/papermc/paper/enchantments/EnchantmentRarity.java b/src/main/java/io/papermc/paper/enchantments/EnchantmentRarity.java
 | 
						|
new file mode 100644
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
 | 
						|
--- /dev/null
 | 
						|
+++ b/src/main/java/io/papermc/paper/enchantments/EnchantmentRarity.java
 | 
						|
@@ -0,0 +0,0 @@
 | 
						|
+package io.papermc.paper.enchantments;
 | 
						|
+
 | 
						|
+public enum EnchantmentRarity {
 | 
						|
+
 | 
						|
+    COMMON(10),
 | 
						|
+    UNCOMMON(5),
 | 
						|
+    RARE(2),
 | 
						|
+    VERY_RARE(1);
 | 
						|
+
 | 
						|
+    private final int weight;
 | 
						|
+
 | 
						|
+    EnchantmentRarity(int weight) {
 | 
						|
+        this.weight = weight;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Gets the weight for the rarity.
 | 
						|
+     *
 | 
						|
+     * @return the weight
 | 
						|
+     */
 | 
						|
+    public int getWeight() {
 | 
						|
+        return weight;
 | 
						|
+    }
 | 
						|
+}
 | 
						|
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
 | 
						|
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
 | 
						|
@@ -0,0 +0,0 @@ public abstract class Enchantment implements Keyed, net.kyori.adventure.translat
 | 
						|
      * Cursed enchantments are found the same way treasure enchantments are
 | 
						|
      *
 | 
						|
      * @return true if the enchantment is cursed
 | 
						|
-     * @deprecated cursed enchantments are no longer special. Will return true
 | 
						|
-     * only for {@link Enchantment#BINDING_CURSE} and
 | 
						|
-     * {@link Enchantment#VANISHING_CURSE}.
 | 
						|
      */
 | 
						|
-    @Deprecated
 | 
						|
     public abstract boolean isCursed();
 | 
						|
 
 | 
						|
     /**
 | 
						|
@@ -0,0 +0,0 @@ public abstract class Enchantment implements Keyed, net.kyori.adventure.translat
 | 
						|
      * @return the name of the enchantment with {@code level} applied
 | 
						|
      */
 | 
						|
     public abstract @NotNull net.kyori.adventure.text.Component displayName(int level);
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Checks if this enchantment can be found in villager trades.
 | 
						|
+     *
 | 
						|
+     * @return true if the enchantment can be found in trades
 | 
						|
+     */
 | 
						|
+    public abstract boolean isTradeable();
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Checks if this enchantment can be found in an enchanting table
 | 
						|
+     * or use to enchant items generated by loot tables.
 | 
						|
+     *
 | 
						|
+     * @return true if the enchantment can be found in a table or by loot tables
 | 
						|
+     */
 | 
						|
+    public abstract boolean isDiscoverable();
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Gets the rarity of this enchantment.
 | 
						|
+     *
 | 
						|
+     * @return the rarity
 | 
						|
+     */
 | 
						|
+    @NotNull
 | 
						|
+    public abstract io.papermc.paper.enchantments.EnchantmentRarity getRarity();
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Gets the damage increase as a result of the level and entity category specified
 | 
						|
+     *
 | 
						|
+     * @param level the level of enchantment
 | 
						|
+     * @param entityCategory the category of entity
 | 
						|
+     * @return the damage increase
 | 
						|
+     */
 | 
						|
+    public abstract float getDamageIncrease(int level, @NotNull org.bukkit.entity.EntityCategory entityCategory);
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Gets the equipment slots where this enchantment is considered "active".
 | 
						|
+     *
 | 
						|
+     * @return the equipment slots
 | 
						|
+     */
 | 
						|
+    @NotNull
 | 
						|
+    public abstract java.util.Set<org.bukkit.inventory.EquipmentSlot> getActiveSlots();
 | 
						|
     // Paper end
 | 
						|
 
 | 
						|
     @Override
 | 
						|
diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
 | 
						|
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
 | 
						|
@@ -0,0 +0,0 @@ public class EnchantmentWrapper extends Enchantment {
 | 
						|
     public @NotNull String translationKey() {
 | 
						|
         return getEnchantment().translationKey();
 | 
						|
     }
 | 
						|
+
 | 
						|
+    @Override
 | 
						|
+    public boolean isTradeable() {
 | 
						|
+        return getEnchantment().isTradeable();
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @Override
 | 
						|
+    public boolean isDiscoverable() {
 | 
						|
+        return getEnchantment().isDiscoverable();
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @NotNull
 | 
						|
+    @Override
 | 
						|
+    public io.papermc.paper.enchantments.EnchantmentRarity getRarity() {
 | 
						|
+        return getEnchantment().getRarity();
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @Override
 | 
						|
+    public float getDamageIncrease(int level, @NotNull org.bukkit.entity.EntityCategory entityCategory) {
 | 
						|
+        return getEnchantment().getDamageIncrease(level, entityCategory);
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @NotNull
 | 
						|
+    @Override
 | 
						|
+    public java.util.Set<org.bukkit.inventory.EquipmentSlot> getActiveSlots() {
 | 
						|
+        return getEnchantment().getActiveSlots();
 | 
						|
+    }
 | 
						|
     // Paper end
 | 
						|
 }
 |