Jump to content

ChloTheQueen

Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by ChloTheQueen

  1. well, now I've seemingly got everything working, but the experience orbs aren't actually giving the player experience, and I'm also not sure how to check if the target is a Monster before the enchantment works. public class ProficiencyEnchantment extends Enchantment { public ProficiencyEnchantment(Rarity pRarity, EnchantmentCategory pCategory, EquipmentSlot... pApplicableSlots) { super(pRarity, pCategory, pApplicableSlots); } public void doPostAttack(LivingEntity pAttacker, Entity pTarget, int pLevel) { if(!pAttacker.level().isClientSide()) { ServerLevel world = ((ServerLevel) pAttacker.level()); BlockPos position = pTarget.blockPosition(); if(!pTarget.isAlive()) { int orbs = (int)Math.floor(Math.random() * (4)); while (orbs > 0) { EntityType.EXPERIENCE_ORB.spawn(world, (ItemStack) null, null, position, MobSpawnType.TRIGGERED, true, true); orbs = (orbs - 1); } } } } @Override public boolean isTreasureOnly() { return true; } }
  2. Using !pTarget.isAlive() worked, thank you! And I'm definitely gonna be looking into more events.
  3. I'm new to modding, and trying to create an enchantment that causes killed mobs to drop extra experience. I've learned that you can spawn entities, such as extra experience orbs, using the doPostAttack method. How could I make it so that the extra experience is only spawned once the target is killed? Here's the enchantment I'm working on, which currently spawns 1 experience orb when the player hits an entity: public class ProficiencyEnchantment extends Enchantment { public ProficiencyEnchantment(Rarity pRarity, EnchantmentCategory pCategory, EquipmentSlot... pApplicableSlots) { super(pRarity, pCategory, pApplicableSlots); } public void doPostAttack(LivingEntity pAttacker, Entity pTarget, int pLevel) { if(!pAttacker.level().isClientSide()) { ServerLevel world = ((ServerLevel) pAttacker.level()); BlockPos position = pTarget.blockPosition(); if(pLevel == 1) { EntityType.EXPERIENCE_ORB.spawn(world, (ItemStack) null, null, position, MobSpawnType.TRIGGERED, true, true); } } } @Override public int getMaxLevel() { return 1; } }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.