diff --git a/src/main/java/dev/zontreck/otemod/enchantments/EnchantmentEvents.java b/src/main/java/dev/zontreck/otemod/enchantments/EnchantmentEvents.java index b1acfe7..22d9180 100644 --- a/src/main/java/dev/zontreck/otemod/enchantments/EnchantmentEvents.java +++ b/src/main/java/dev/zontreck/otemod/enchantments/EnchantmentEvents.java @@ -27,6 +27,7 @@ public class EnchantmentEvents FlightEnchantment.runEntityTick(sp); ConsumptionMending.onEntityTick(sp); NightVisionEnchantment.runEntityTick(sp); + WaterBreathingEnchantment.runEntityTick(sp); } TICKS=0; diff --git a/src/main/java/dev/zontreck/otemod/enchantments/ModEnchantments.java b/src/main/java/dev/zontreck/otemod/enchantments/ModEnchantments.java index cf1a9c9..4372608 100644 --- a/src/main/java/dev/zontreck/otemod/enchantments/ModEnchantments.java +++ b/src/main/java/dev/zontreck/otemod/enchantments/ModEnchantments.java @@ -24,6 +24,7 @@ public class ModEnchantments { public static final RegistryObject NIGHT_VISION_ENCHANT = REGISTERS.register("night_vision", ()->new NightVisionEnchantment(EquipmentSlot.HEAD)); + public static final RegistryObject WATER_BREATHING_ENCHANT = REGISTERS.register("water_breathing", ()->new NightVisionEnchantment(EquipmentSlot.HEAD)); public static void register(IEventBus bus){ REGISTERS.register(bus); diff --git a/src/main/java/dev/zontreck/otemod/enchantments/WaterBreathingEnchantment.java b/src/main/java/dev/zontreck/otemod/enchantments/WaterBreathingEnchantment.java new file mode 100644 index 0000000..c8995f8 --- /dev/null +++ b/src/main/java/dev/zontreck/otemod/enchantments/WaterBreathingEnchantment.java @@ -0,0 +1,84 @@ +package dev.zontreck.otemod.enchantments; + +import dev.zontreck.libzontreck.util.ItemUtils; +import dev.zontreck.libzontreck.util.ServerUtilities; +import dev.zontreck.otemod.OTEMod; +import dev.zontreck.otemod.configs.snbt.ServerConfig; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentCategory; + +public class WaterBreathingEnchantment extends Enchantment +{ + + public WaterBreathingEnchantment(EquipmentSlot... slots) + { + super(Rarity.VERY_RARE, EnchantmentCategory.ARMOR_HEAD, slots); + } + + @Override + public int getMaxLevel() + { + return 1; + } + + @Override + public boolean isTreasureOnly(){ + return true; + } + @Override + public boolean isTradeable() + { + return true; + } + + // Not a bug. Flight is meant to be a permanent upgrade to a item. It is considered a curse due to unstable behavior. Flight will eat up durability and forge energy + // Flight should NOT be able to be removed via the grindstone + @Override + public boolean isCurse() + { + return false; + } + + public static void runEntityTick(ServerPlayer sp) + { + if(ServerUtilities.isClient()) return; + + + if(ServerConfig.general.debug) + { + OTEMod.LOGGER.info("> WBreath Enchantment Tick <"); + } + + + ItemStack feet = sp.getItemBySlot(EquipmentSlot.HEAD); + + boolean hasNV = false; + + if(ItemUtils.getEnchantmentLevel(ModEnchantments.WATER_BREATHING_ENCHANT.get(), feet)>0)hasNV=true; + + if(hasNV) + { + MobEffectInstance inst = new MobEffectInstance(MobEffects.WATER_BREATHING, 60*20, 4, false, false, true); + + MobEffectInstance existing = sp.getEffect(MobEffects.WATER_BREATHING); + if(existing != null) + { + if(existing.getDuration() <= (30*20)) + { + sp.addEffect(inst); + return; + }else return; + } + + sp.addEffect(inst); + } + + + } + +} diff --git a/src/main/resources/assets/otemod/lang/en_us.json b/src/main/resources/assets/otemod/lang/en_us.json index 953b267..097515b 100644 --- a/src/main/resources/assets/otemod/lang/en_us.json +++ b/src/main/resources/assets/otemod/lang/en_us.json @@ -146,6 +146,8 @@ "enchantment.otemod.borrowed_protection.desc": "Borrows protection from any nearby player.", "enchantment.otemod.night_vision": "Night Vision", "enchantment.otemod.night_vision.desc": "See in the dark!", + "enchantment.otemod.water_breathing": "Water Breathing", + "enchantment.otemod.water_breathing.desc": "Become one with the fishy", "enchantment.otemod.consumption_mending": "Consumption Mending", "enchantment.otemod.consumption_mending.desc": "Consumes items to repair durability. May consume curses.",