Commits
Parker Hawke authored and md_5 committed eae15943507
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 | |
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 | |
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 + | |
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 | } |