From d6017e476605d40a97917db2ae726dad6d807e1e Mon Sep 17 00:00:00 2001 From: "George V." Date: Sun, 19 Apr 2026 05:32:55 +0300 Subject: [PATCH] feat(fourkit): add the missing Lure and Luck of the Sea fishing enchantments --- .../Enchantments/Enchantment.cs | 14 ++++++++++++- .../Enchantments/LuckOfTheSeaEnchantment.cs | 21 +++++++++++++++++++ .../Enchantments/LureEnchantment.cs | 21 +++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 Minecraft.Server.FourKit/Enchantments/LuckOfTheSeaEnchantment.cs create mode 100644 Minecraft.Server.FourKit/Enchantments/LureEnchantment.cs diff --git a/Minecraft.Server.FourKit/Enchantments/Enchantment.cs b/Minecraft.Server.FourKit/Enchantments/Enchantment.cs index e3daa549..b6cd9136 100644 --- a/Minecraft.Server.FourKit/Enchantments/Enchantment.cs +++ b/Minecraft.Server.FourKit/Enchantments/Enchantment.cs @@ -139,7 +139,15 @@ public enum EnchantmentType /// /// Increases the speed at which a player may mine underwater /// - WATER_WORKER = 6 + WATER_WORKER = 6, + /// + /// Increases the rate at which fish bite the hook while fishing + /// + LURE = 64, + /// + /// Increases the chance of catching valuable items while fishing + /// + LUCK_OF_THE_SEA = 65 } public abstract class Enchantment @@ -166,6 +174,8 @@ public abstract class Enchantment public static Enchantment SilkTouchEnchantment => _registry[EnchantmentType.SILK_TOUCH]; public static Enchantment ThornsEnchantment => _registry[EnchantmentType.THORNS]; public static Enchantment AquaAffinityEnchantment => _registry[EnchantmentType.WATER_WORKER]; + public static Enchantment LureEnchantment => _registry[EnchantmentType.LURE]; + public static Enchantment LuckOfTheSeaEnchantment => _registry[EnchantmentType.LUCK_OF_THE_SEA]; private static Dictionary _registry = new Dictionary() @@ -192,6 +202,8 @@ public abstract class Enchantment { EnchantmentType.SILK_TOUCH, new SilkTouchEnchantment() }, { EnchantmentType.THORNS, new ThornsEnchantment() }, { EnchantmentType.WATER_WORKER, new AquaAffinityEnchantment() }, + { EnchantmentType.LURE, new LureEnchantment() }, + { EnchantmentType.LUCK_OF_THE_SEA, new LuckOfTheSeaEnchantment() }, }; /// diff --git a/Minecraft.Server.FourKit/Enchantments/LuckOfTheSeaEnchantment.cs b/Minecraft.Server.FourKit/Enchantments/LuckOfTheSeaEnchantment.cs new file mode 100644 index 00000000..19b8b7d0 --- /dev/null +++ b/Minecraft.Server.FourKit/Enchantments/LuckOfTheSeaEnchantment.cs @@ -0,0 +1,21 @@ +using Minecraft.Server.FourKit.Inventory; + +namespace Minecraft.Server.FourKit.Enchantments; + +public class LuckOfTheSeaEnchantment : Enchantment +{ + + public override bool canEnchantItem(ItemStack item) => item.getType().Equals(Material.FISHING_ROD); + + public override bool conflictsWith(Enchantment other) => false; + + public override EnchantmentTarget getItemTarget() => EnchantmentTarget.TOOL; + + public override EnchantmentType getEnchantType() => EnchantmentType.LUCK_OF_THE_SEA; + + public override int getMaxLevel() => 3; + + public override string getName() => "luckofthesea"; + + public override int getStartLevel() => 1; +} \ No newline at end of file diff --git a/Minecraft.Server.FourKit/Enchantments/LureEnchantment.cs b/Minecraft.Server.FourKit/Enchantments/LureEnchantment.cs new file mode 100644 index 00000000..5ea6c9e9 --- /dev/null +++ b/Minecraft.Server.FourKit/Enchantments/LureEnchantment.cs @@ -0,0 +1,21 @@ +using Minecraft.Server.FourKit.Inventory; + +namespace Minecraft.Server.FourKit.Enchantments; + +public class LureEnchantment : Enchantment +{ + + public override bool canEnchantItem(ItemStack item) => item.getType().Equals(Material.FISHING_ROD); + + public override bool conflictsWith(Enchantment other) => false; + + public override EnchantmentTarget getItemTarget() => EnchantmentTarget.TOOL; + + public override EnchantmentType getEnchantType() => EnchantmentType.LURE; + + public override int getMaxLevel() => 3; + + public override string getName() => "lure"; + + public override int getStartLevel() => 1; +} \ No newline at end of file