diff --git a/src/main/java/net/sweenus/simplyskills/abilities/compat/ProminenceInternalAbilities.java b/src/main/java/net/sweenus/simplyskills/abilities/compat/ProminenceInternalAbilities.java index 81d53a5..7102934 100644 --- a/src/main/java/net/sweenus/simplyskills/abilities/compat/ProminenceInternalAbilities.java +++ b/src/main/java/net/sweenus/simplyskills/abilities/compat/ProminenceInternalAbilities.java @@ -30,36 +30,46 @@ public static void bardAbility(PlayerEntity player) { if (!HelperMethods.isUnlocked("puffish_skills:prom", SkillReferencePosition.promBardPassive, player)) return; - ItemStack stack = player.getMainHandStack(); - Item item = stack.getItem(); + ItemStack mainStack = player.getMainHandStack(); + Item mainStackItem = mainStack.getItem(); + ItemStack offHandStack = player.getOffHandStack(); + Item offHandStackItem = offHandStack.getItem(); + + ItemStack stack; + InstrumentItem instrument; + if (mainStackItem instanceof InstrumentItem mainInstrument) { + stack = mainStack; + instrument = mainInstrument; + } else if (offHandStackItem instanceof InstrumentItem offhandItem) { + stack = offHandStack; + instrument = offhandItem; + } else return; + + if (!instrument.isPlaying(stack)) + return; + int radius = 6; int frequency = 30; int duration = frequency + 10; - if (item instanceof InstrumentItem instrument) { - - if (!instrument.isPlaying(stack)) - return; - - if (stack.isOf(Items.BAGPIPE.get())) { - giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFWAR, 0, StatusEffects.REGENERATION, 0, null, 0, null, 0); - } else if (stack.isOf(Items.FLUTE.get())) { - giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFSWIFTNESS, 0, StatusEffects.DOLPHINS_GRACE, 0, null, 0, null, 0); - } else if (stack.isOf(Items.DIDGERIDOO.get())) { + if (stack.isOf(Items.BAGPIPE.get())) { + giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFWAR, 0, StatusEffects.REGENERATION, 0, null, 0, null, 0); + } else if (stack.isOf(Items.FLUTE.get())) { + giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFSWIFTNESS, 0, StatusEffects.DOLPHINS_GRACE, 0, null, 0, null, 0); + } else if (stack.isOf(Items.DIDGERIDOO.get())) { giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFPROTECTION, 0, StatusEffects.STRENGTH, 0, null, 0, null, 0); - } else if (stack.isOf(Items.LUTE.get())) { - giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFSAFETY, 0, null, 0, null, 0, null, 0); - } else if (stack.isOf(Items.PIANO.get())) { - giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFCONCENTRATION, 0, null, 0, null, 0, null, 0); - } else if (stack.isOf(Items.TRIANGLE.get())) { - giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFBLOODLUST, 0, null, 0, null, 0, null, 0); - } else if (stack.isOf(Items.TRUMPET.get())) { - giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFWAR, 0, StatusEffects.REGENERATION, 0, null, 0, null, 0); - } - if (player.age %30 ==0) - HelperMethods.spawnOrbitParticles((ServerWorld) player.getWorld(), player.getPos(), ParticleTypes.NOTE, 0.5, 6); - + } else if (stack.isOf(Items.LUTE.get())) { + giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFSAFETY, 0, null, 0, null, 0, null, 0); + } else if (stack.isOf(Items.PIANO.get())) { + giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFCONCENTRATION, 0, null, 0, null, 0, null, 0); + } else if (stack.isOf(Items.TRIANGLE.get())) { + giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFBLOODLUST, 0, null, 0, null, 0, null, 0); + } else if (stack.isOf(Items.TRUMPET.get())) { + giveAreaBuffs(player, radius, frequency, duration, EffectRegistry.MELODYOFWAR, 0, StatusEffects.REGENERATION, 0, null, 0, null, 0); } + + if (player.age %30 ==0) + HelperMethods.spawnOrbitParticles((ServerWorld) player.getWorld(), player.getPos(), ParticleTypes.NOTE, 0.5, 6); } public static void giveAreaBuffs(