Commits

Parker Hawke authored and md_5 committed eae15943507
#721: Add EntityCategory API to LivingEntity
No tags

src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java

Modified
28 28 import net.minecraft.server.EntitySmallFireball;
29 29 import net.minecraft.server.EntitySnowball;
30 30 import net.minecraft.server.EntitySpectralArrow;
31 31 import net.minecraft.server.EntityThrownExpBottle;
32 32 import net.minecraft.server.EntityThrownTrident;
33 33 import net.minecraft.server.EntityTippedArrow;
34 34 import net.minecraft.server.EntityTypes;
35 35 import net.minecraft.server.EntityWither;
36 36 import net.minecraft.server.EntityWitherSkull;
37 37 import net.minecraft.server.EnumHand;
38 +import net.minecraft.server.EnumMonsterType;
38 39 import net.minecraft.server.GenericAttributes;
39 40 import net.minecraft.server.MobEffect;
40 41 import net.minecraft.server.MobEffectList;
41 42 import org.apache.commons.lang.Validate;
42 43 import org.bukkit.FluidCollisionMode;
43 44 import org.bukkit.Location;
44 45 import org.bukkit.Material;
45 46 import org.bukkit.attribute.Attribute;
46 47 import org.bukkit.attribute.AttributeInstance;
47 48 import org.bukkit.block.Block;
50 51 import org.bukkit.craftbukkit.entity.memory.CraftMemoryKey;
51 52 import org.bukkit.craftbukkit.entity.memory.CraftMemoryMapper;
52 53 import org.bukkit.craftbukkit.inventory.CraftEntityEquipment;
53 54 import org.bukkit.craftbukkit.inventory.CraftItemStack;
54 55 import org.bukkit.craftbukkit.potion.CraftPotionUtil;
55 56 import org.bukkit.entity.AbstractArrow;
56 57 import org.bukkit.entity.DragonFireball;
57 58 import org.bukkit.entity.Egg;
58 59 import org.bukkit.entity.EnderPearl;
59 60 import org.bukkit.entity.Entity;
61 +import org.bukkit.entity.EntityCategory;
60 62 import org.bukkit.entity.EntityType;
61 63 import org.bukkit.entity.Fireball;
62 64 import org.bukkit.entity.Firework;
63 65 import org.bukkit.entity.FishHook;
64 66 import org.bukkit.entity.HumanEntity;
65 67 import org.bukkit.entity.LingeringPotion;
66 68 import org.bukkit.entity.LivingEntity;
67 69 import org.bukkit.entity.LlamaSpit;
68 70 import org.bukkit.entity.Player;
69 71 import org.bukkit.entity.Projectile;
626 628
627 629 @Override
628 630 public <T> T getMemory(MemoryKey<T> memoryKey) {
629 631 return (T) getHandle().getBehaviorController().getMemory(CraftMemoryKey.fromMemoryKey(memoryKey)).map(CraftMemoryMapper::fromNms).orElse(null);
630 632 }
631 633
632 634 @Override
633 635 public <T> void setMemory(MemoryKey<T> memoryKey, T t) {
634 636 getHandle().getBehaviorController().setMemory(CraftMemoryKey.fromMemoryKey(memoryKey), CraftMemoryMapper.toNms(t));
635 637 }
638 +
639 + @Override
640 + public EntityCategory getCategory() {
641 + EnumMonsterType type = getHandle().getMonsterType(); // Not actually an enum?
642 +
643 + if (type == EnumMonsterType.UNDEFINED) {
644 + return EntityCategory.NONE;
645 + } else if (type == EnumMonsterType.UNDEAD) {
646 + return EntityCategory.UNDEAD;
647 + } else if (type == EnumMonsterType.ARTHROPOD) {
648 + return EntityCategory.ARTHROPOD;
649 + } else if (type == EnumMonsterType.ILLAGER) {
650 + return EntityCategory.ILLAGER;
651 + } else if (type == EnumMonsterType.e) { // PAIL rename WATER_MOB
652 + return EntityCategory.WATER;
653 + }
654 +
655 + throw new UnsupportedOperationException("Unsupported monster type: " + type + ". This is a bug, report this to Spigot.");
656 + }
636 657 }

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut