diff options
Diffstat (limited to 'patches/server/0549-More-Enchantment-API.patch')
-rw-r--r-- | patches/server/0549-More-Enchantment-API.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/patches/server/0549-More-Enchantment-API.patch b/patches/server/0549-More-Enchantment-API.patch new file mode 100644 index 0000000000..d561409c37 --- /dev/null +++ b/patches/server/0549-More-Enchantment-API.patch @@ -0,0 +1,95 @@ +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]> + +diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +index bb8a3e670924ebcce48669c5dce57e2df03fad77..552f703f6b06895246de72501d01163d9f24dad2 100644 +--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java ++++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +@@ -71,7 +71,7 @@ public class CraftEnchantment extends Enchantment implements Handleable<net.mine + + @Override + public boolean isCursed() { +- return this.handle instanceof BindingCurseEnchantment || this.handle instanceof VanishingCurseEnchantment; ++ return this.handle.isCurse(); // Paper - More Enchantment API + } + + @Override +@@ -143,13 +143,70 @@ 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(this.handle.getFullname(level)); + } + + @Override + public String translationKey() { + return this.handle.getDescriptionId(); + } ++ ++ @Override ++ public boolean isTradeable() { ++ return this.handle.isTradeable(); ++ } ++ ++ @Override ++ public boolean isDiscoverable() { ++ return this.handle.isDiscoverable(); ++ } ++ ++ @Override ++ public int getMinModifiedCost(int level) { ++ return this.handle.getMinCost(level); ++ } ++ ++ @Override ++ public int getMaxModifiedCost(int level) { ++ return this.handle.getMaxCost(level); ++ } ++ ++ @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) { ++ return this.handle.getDamageBonus(level, this.guessEntityTypeFromEnchantmentCategory(entityCategory)); ++ } ++ ++ @Override ++ public float getDamageIncrease(int level, org.bukkit.entity.EntityType entityType) { ++ return this.handle.getDamageBonus(level, org.bukkit.craftbukkit.util.CraftMagicNumbers.getEntityTypes(entityType)); ++ } ++ ++ @Deprecated(forRemoval = true) ++ private net.minecraft.world.entity.EntityType<?> guessEntityTypeFromEnchantmentCategory( ++ final org.bukkit.entity.EntityCategory entityCategory ++ ) { ++ final net.minecraft.tags.TagKey<net.minecraft.world.entity.EntityType<?>> tag = switch (entityCategory) { ++ case ARTHROPOD -> net.minecraft.tags.EntityTypeTags.SENSITIVE_TO_BANE_OF_ARTHROPODS; ++ case UNDEAD -> net.minecraft.tags.EntityTypeTags.SENSITIVE_TO_SMITE; ++ case WATER -> net.minecraft.tags.EntityTypeTags.SENSITIVE_TO_IMPALING; ++ default -> null; ++ }; ++ if (tag == null) return null; ++ ++ return net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.getTag(tag) ++ .map(e -> e.size() > 0 ? e.get(0).value() : null) ++ .orElse(null); ++ } ++ ++ @Override ++ public java.util.Set<org.bukkit.inventory.EquipmentSlot> getActiveSlots() { ++ return java.util.stream.Stream.of(this.handle.definition.slots()).map(org.bukkit.craftbukkit.CraftEquipmentSlot::getSlot).collect(java.util.stream.Collectors.toSet()); ++ } + // Paper end + + @Override |