craytona Posted June 24, 2020 Posted June 24, 2020 I am attempting to detect when a mob hits something and then check to see if the Entity is listed in an external file.I am wondering how I would do this. This is what I have currently got, Detect Entity attacking: //Mob attacking @SubscribeEvent public static void testEntityEvent(LivingHurtEvent event) { DamageSource damageSource = event.getSource(); if (damageSource.getTrueSource() instanceof MobEntity) { Item air = Item.getItemByID(0); LivingEntity livingEntity = (LivingEntity) damageSource.getTrueSource(); ItemStack stack = livingEntity.getHeldItemMainhand(); Item item = stack.getItem(); if (item != air) { System.out.println(DamageType.getFromItem(item)); } else { EntityType<?> entity = damageSource.getTrueSource().getEntity(); System.out.println(DamageType.getFromEntity(entity)); } } This is how I check DamageType: @Nonnull public static DamageType getFromEntity(EntityType<?> entity) { if (slashingDamageEntities.contains(entity)) { return SLASHING; } else if (piercingDamageEntities.contains(entity)) { return PIERCING; } return BLUDGEONING; } And this is how I register the Resource Location: public static final EntityTypeTags.Wrapper slashingDamageEntities = new EntityTypeTags.Wrapper(new ResourceLocation(dungeoncraft.MOD_ID, "slashing_damage_mobs")); public static final EntityTypeTags.Wrapper piercingDamageEntities = new EntityTypeTags.Wrapper(new ResourceLocation(dungeoncraft.MOD_ID, "piercing_damage_mobs")); Now I am aware that I am checking the Tags for EntityType<?> instead of Entity but I am wondering how to do it using an Entity instead. Or a better way to do it using EntityType<?> by modifying the first file. For reference this is my Tags file and the other is very similar. { "replace": false, "values": [ "minecraft:chicken", "minecraft:fox", "minecraft:parrot", "minecraft:pufferfish", "minecraft:turtle", "minecraft:bee", "minecraft:wolf", "minecraft:cave_spider", "minecraft:spider", "minecraft:elder_guardian", "minecraft:endermite", "minecraft:guardian", "minecraft:phantom", "minecraft:shulker", "minecraft:silverfish" ] } Quote
[NoOneButNo] Posted June 24, 2020 Posted June 24, 2020 Search for class EntityTypeTags. This should help you. Also, it should (disclaimer: i didn't bother to try) work the same way as how this docs tell you how to use tags: https://mcforge.readthedocs.io/en/latest/utilities/tags/ Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.