diff options
Diffstat (limited to 'patches/unapplied/server/0527-More-Enchantment-API.patch')
-rw-r--r-- | patches/unapplied/server/0527-More-Enchantment-API.patch | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/patches/unapplied/server/0527-More-Enchantment-API.patch b/patches/unapplied/server/0527-More-Enchantment-API.patch new file mode 100644 index 0000000000..a3bf8f8e7e --- /dev/null +++ b/patches/unapplied/server/0527-More-Enchantment-API.patch @@ -0,0 +1,105 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic <[email protected]> +Date: Thu, 6 May 2021 19:57:58 -0700 +Subject: [PATCH] More Enchantment API + +== AT == +public net.minecraft.world.item.enchantment.Enchantment definition + +Co-authored-by: Luis <[email protected]> +Co-authored-by: Janet Blackquill <[email protected]> + +diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +index 59c9c970b83f62245d860994c4ac0c21dcc15398..4221a1e9cba35c8dc58e51e162e7fcbd0e8b31af 100644 +--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java ++++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +@@ -5,6 +5,7 @@ import java.util.Locale; + import net.minecraft.Util; + import net.minecraft.core.Holder; + import net.minecraft.core.registries.Registries; ++import net.minecraft.network.chat.contents.TranslatableContents; + import net.minecraft.tags.EnchantmentTags; + import org.bukkit.NamespacedKey; + import org.bukkit.Registry; +@@ -90,7 +91,7 @@ public class CraftEnchantment extends Enchantment implements Handleable<net.mine + + @Override + public boolean isTreasure() { +- return !this.handle.is(EnchantmentTags.IN_ENCHANTING_TABLE); ++ return this.handle.is(EnchantmentTags.TREASURE); // Paper - use treasure tag + } + + @Override +@@ -148,7 +149,7 @@ public class CraftEnchantment extends Enchantment implements Handleable<net.mine + // Paper start + @Override + public net.kyori.adventure.text.Component displayName(int level) { +- return io.papermc.paper.adventure.PaperAdventure.asAdventure(getHandle().getFullname(level)); ++ return io.papermc.paper.adventure.PaperAdventure.asAdventure(net.minecraft.world.item.enchantment.Enchantment.getFullname(this.handle, level)); + } + // Paper end + +@@ -159,10 +160,62 @@ public class CraftEnchantment extends Enchantment implements Handleable<net.mine + throw new UnsupportedOperationException("Description isn't translatable!"); // Paper + } + return translatableContents.getKey(); +- + } + // Paper end - add translationKey methods + ++ // Paper start - more Enchantment API ++ @Override ++ public boolean isTradeable() { ++ return this.handle.is(EnchantmentTags.TRADEABLE); ++ } ++ ++ @Override ++ public boolean isDiscoverable() { ++ return this.handle.is(EnchantmentTags.IN_ENCHANTING_TABLE) ++ || this.handle.is(EnchantmentTags.ON_RANDOM_LOOT) ++ || this.handle.is(EnchantmentTags.ON_MOB_SPAWN_EQUIPMENT) ++ || this.handle.is(EnchantmentTags.TRADEABLE) ++ || this.handle.is(EnchantmentTags.ON_TRADED_EQUIPMENT); ++ } ++ ++ @Override ++ public int getMinModifiedCost(int level) { ++ return this.getHandle().definition().minCost().calculate(level); ++ } ++ ++ @Override ++ public int getMaxModifiedCost(int level) { ++ return this.getHandle().definition().maxCost().calculate(level); ++ } ++ ++ @Override ++ public int getAnvilCost() { ++ return this.getHandle().definition().anvilCost(); ++ } ++ ++ @Override ++ public io.papermc.paper.enchantments.EnchantmentRarity getRarity() { ++ throw new UnsupportedOperationException("Enchantments don't have a rarity anymore in 1.20.5+."); ++ } ++ ++ @Override ++ public float getDamageIncrease(int level, org.bukkit.entity.EntityCategory entityCategory) { ++ throw new UnsupportedOperationException("Enchantments are based on complex effect maps since 1.21, cannot compute a simple damage increase"); ++ } ++ ++ @Override ++ public float getDamageIncrease(int level, org.bukkit.entity.EntityType entityType) { ++ throw new UnsupportedOperationException("Enchantments are based on complex effect maps since 1.21, cannot compute a simple damage increase"); ++ } ++ ++ @Override ++ public java.util.Set<org.bukkit.inventory.EquipmentSlotGroup> getActiveSlotGroups() { ++ return this.getHandle().definition().slots().stream() ++ .map(org.bukkit.craftbukkit.CraftEquipmentSlot::getSlot) ++ .collect(java.util.stream.Collectors.toSet()); ++ } ++ // Paper end - more Enchantment API ++ + @Override + public String getTranslationKey() { + return Util.makeDescriptionId("enchantment", this.handle.unwrapKey().get().location()); |