More work
This commit is contained in:
@@ -30,25 +30,199 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
@@ -0,0 +0,0 @@
|
||||
+package com.destroystokyo.paper.entity.ai;
|
||||
+
|
||||
+import com.destroystokyo.paper.entity.RangedEntity;
|
||||
+import com.destroystokyo.paper.util.set.OptimizedSmallEnumSet;
|
||||
+import com.google.common.collect.BiMap;
|
||||
+import com.google.common.collect.HashBiMap;
|
||||
+
|
||||
+import com.destroystokyo.paper.entity.RangedEntity;
|
||||
+import com.destroystokyo.paper.entity.ai.GoalKey;
|
||||
+import com.destroystokyo.paper.entity.ai.GoalType;
|
||||
+import com.destroystokyo.paper.util.set.OptimizedSmallEnumSet;
|
||||
+
|
||||
+import net.minecraft.server.*; // intentional star import
|
||||
+
|
||||
+import java.lang.reflect.Constructor;
|
||||
+import java.util.EnumSet;
|
||||
+import java.util.HashMap;
|
||||
+import java.util.HashSet;
|
||||
+import java.util.Map;
|
||||
+import java.util.Set;
|
||||
+
|
||||
+import net.minecraft.world.entity.EntityAgeable;
|
||||
+import net.minecraft.world.entity.EntityCreature;
|
||||
+import net.minecraft.world.entity.EntityFlying;
|
||||
+import net.minecraft.world.entity.EntityInsentient;
|
||||
+import net.minecraft.world.entity.EntityTameableAnimal;
|
||||
+import net.minecraft.world.entity.ai.goal.PathfinderGoal;
|
||||
+import net.minecraft.world.entity.ambient.EntityAmbient;
|
||||
+import net.minecraft.world.entity.ambient.EntityBat;
|
||||
+import net.minecraft.world.entity.animal.EntityAnimal;
|
||||
+import net.minecraft.world.entity.animal.EntityBee;
|
||||
+import net.minecraft.world.entity.animal.EntityCat;
|
||||
+import net.minecraft.world.entity.animal.EntityChicken;
|
||||
+import net.minecraft.world.entity.animal.EntityCod;
|
||||
+import net.minecraft.world.entity.animal.EntityCow;
|
||||
+import net.minecraft.world.entity.animal.EntityDolphin;
|
||||
+import net.minecraft.world.entity.animal.EntityFish;
|
||||
+import net.minecraft.world.entity.animal.EntityFishSchool;
|
||||
+import net.minecraft.world.entity.animal.EntityFox;
|
||||
+import net.minecraft.world.entity.animal.EntityGolem;
|
||||
+import net.minecraft.world.entity.animal.EntityIronGolem;
|
||||
+import net.minecraft.world.entity.animal.EntityMushroomCow;
|
||||
+import net.minecraft.world.entity.animal.EntityOcelot;
|
||||
+import net.minecraft.world.entity.animal.EntityPanda;
|
||||
+import net.minecraft.world.entity.animal.EntityParrot;
|
||||
+import net.minecraft.world.entity.animal.EntityPerchable;
|
||||
+import net.minecraft.world.entity.animal.EntityPig;
|
||||
+import net.minecraft.world.entity.animal.EntityPolarBear;
|
||||
+import net.minecraft.world.entity.animal.EntityPufferFish;
|
||||
+import net.minecraft.world.entity.animal.EntityRabbit;
|
||||
+import net.minecraft.world.entity.animal.EntitySalmon;
|
||||
+import net.minecraft.world.entity.animal.EntitySheep;
|
||||
+import net.minecraft.world.entity.animal.EntitySnowman;
|
||||
+import net.minecraft.world.entity.animal.EntitySquid;
|
||||
+import net.minecraft.world.entity.animal.EntityTropicalFish;
|
||||
+import net.minecraft.world.entity.animal.EntityTurtle;
|
||||
+import net.minecraft.world.entity.animal.EntityWaterAnimal;
|
||||
+import net.minecraft.world.entity.animal.EntityWolf;
|
||||
+import net.minecraft.world.entity.animal.horse.EntityHorse;
|
||||
+import net.minecraft.world.entity.animal.horse.EntityHorseAbstract;
|
||||
+import net.minecraft.world.entity.animal.horse.EntityHorseChestedAbstract;
|
||||
+import net.minecraft.world.entity.animal.horse.EntityHorseDonkey;
|
||||
+import net.minecraft.world.entity.animal.horse.EntityHorseMule;
|
||||
+import net.minecraft.world.entity.animal.horse.EntityHorseSkeleton;
|
||||
+import net.minecraft.world.entity.animal.horse.EntityHorseZombie;
|
||||
+import net.minecraft.world.entity.animal.horse.EntityLlama;
|
||||
+import net.minecraft.world.entity.animal.horse.EntityLlamaTrader;
|
||||
+import net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon;
|
||||
+import net.minecraft.world.entity.boss.wither.EntityWither;
|
||||
+import net.minecraft.world.entity.monster.EntityBlaze;
|
||||
+import net.minecraft.world.entity.monster.EntityCaveSpider;
|
||||
+import net.minecraft.world.entity.monster.EntityCreeper;
|
||||
+import net.minecraft.world.entity.monster.EntityDrowned;
|
||||
+import net.minecraft.world.entity.monster.EntityEnderman;
|
||||
+import net.minecraft.world.entity.monster.EntityEndermite;
|
||||
+import net.minecraft.world.entity.monster.EntityEvoker;
|
||||
+import net.minecraft.world.entity.monster.EntityGhast;
|
||||
+import net.minecraft.world.entity.monster.EntityGiantZombie;
|
||||
+import net.minecraft.world.entity.monster.EntityGuardian;
|
||||
+import net.minecraft.world.entity.monster.EntityGuardianElder;
|
||||
+import net.minecraft.world.entity.monster.EntityIllagerAbstract;
|
||||
+import net.minecraft.world.entity.monster.EntityIllagerIllusioner;
|
||||
+import net.minecraft.world.entity.monster.EntityIllagerWizard;
|
||||
+import net.minecraft.world.entity.monster.EntityMagmaCube;
|
||||
+import net.minecraft.world.entity.monster.EntityMonster;
|
||||
+import net.minecraft.world.entity.monster.EntityMonsterPatrolling;
|
||||
+import net.minecraft.world.entity.monster.EntityPhantom;
|
||||
+import net.minecraft.world.entity.monster.EntityPigZombie;
|
||||
+import net.minecraft.world.entity.monster.EntityPillager;
|
||||
+import net.minecraft.world.entity.monster.EntityRavager;
|
||||
+import net.minecraft.world.entity.monster.EntityShulker;
|
||||
+import net.minecraft.world.entity.monster.EntitySilverfish;
|
||||
+import net.minecraft.world.entity.monster.EntitySkeleton;
|
||||
+import net.minecraft.world.entity.monster.EntitySkeletonAbstract;
|
||||
+import net.minecraft.world.entity.monster.EntitySkeletonStray;
|
||||
+import net.minecraft.world.entity.monster.EntitySkeletonWither;
|
||||
+import net.minecraft.world.entity.monster.EntitySlime;
|
||||
+import net.minecraft.world.entity.monster.EntitySpider;
|
||||
+import net.minecraft.world.entity.monster.EntityStrider;
|
||||
+import net.minecraft.world.entity.monster.EntityVex;
|
||||
+import net.minecraft.world.entity.monster.EntityVindicator;
|
||||
+import net.minecraft.world.entity.monster.EntityWitch;
|
||||
+import net.minecraft.world.entity.monster.EntityZoglin;
|
||||
+import net.minecraft.world.entity.monster.EntityZombie;
|
||||
+import net.minecraft.world.entity.monster.EntityZombieHusk;
|
||||
+import net.minecraft.world.entity.monster.EntityZombieVillager;
|
||||
+import net.minecraft.world.entity.monster.IRangedEntity;
|
||||
+import net.minecraft.world.entity.monster.hoglin.EntityHoglin;
|
||||
+import net.minecraft.world.entity.monster.piglin.EntityPiglin;
|
||||
+import net.minecraft.world.entity.monster.piglin.EntityPiglinAbstract;
|
||||
+import net.minecraft.world.entity.monster.piglin.EntityPiglinBrute;
|
||||
+import net.minecraft.world.entity.npc.EntityVillager;
|
||||
+import net.minecraft.world.entity.npc.EntityVillagerAbstract;
|
||||
+import net.minecraft.world.entity.npc.EntityVillagerTrader;
|
||||
+import net.minecraft.world.entity.raid.EntityRaider;
|
||||
+import org.bukkit.NamespacedKey;
|
||||
+import org.bukkit.entity.*; // intentional star import
|
||||
+import org.bukkit.entity.AbstractHorse;
|
||||
+import org.bukkit.entity.AbstractVillager;
|
||||
+import org.bukkit.entity.Ageable;
|
||||
+import org.bukkit.entity.Ambient;
|
||||
+import org.bukkit.entity.Animals;
|
||||
+import org.bukkit.entity.Bat;
|
||||
+import org.bukkit.entity.Bee;
|
||||
+import org.bukkit.entity.Blaze;
|
||||
+import org.bukkit.entity.Cat;
|
||||
+import org.bukkit.entity.CaveSpider;
|
||||
+import org.bukkit.entity.ChestedHorse;
|
||||
+import org.bukkit.entity.Chicken;
|
||||
+import org.bukkit.entity.Cod;
|
||||
+import org.bukkit.entity.Cow;
|
||||
+import org.bukkit.entity.Creature;
|
||||
+import org.bukkit.entity.Creeper;
|
||||
+import org.bukkit.entity.Dolphin;
|
||||
+import org.bukkit.entity.Donkey;
|
||||
+import org.bukkit.entity.Drowned;
|
||||
+import org.bukkit.entity.ElderGuardian;
|
||||
+import org.bukkit.entity.EnderDragon;
|
||||
+import org.bukkit.entity.Enderman;
|
||||
+import org.bukkit.entity.Endermite;
|
||||
+import org.bukkit.entity.Evoker;
|
||||
+import org.bukkit.entity.Fish;
|
||||
+import org.bukkit.entity.Flying;
|
||||
+import org.bukkit.entity.Fox;
|
||||
+import org.bukkit.entity.Ghast;
|
||||
+import org.bukkit.entity.Giant;
|
||||
+import org.bukkit.entity.Golem;
|
||||
+import org.bukkit.entity.Guardian;
|
||||
+import org.bukkit.entity.Hoglin;
|
||||
+import org.bukkit.entity.Horse;
|
||||
+import org.bukkit.entity.Husk;
|
||||
+import org.bukkit.entity.Illager;
|
||||
+import org.bukkit.entity.Illusioner;
|
||||
+import org.bukkit.entity.IronGolem;
|
||||
+import org.bukkit.entity.Llama;
|
||||
+import org.bukkit.entity.MagmaCube;
|
||||
+import org.bukkit.entity.Mob;
|
||||
+import org.bukkit.entity.Monster;
|
||||
+import org.bukkit.entity.Mule;
|
||||
+import org.bukkit.entity.MushroomCow;
|
||||
+import org.bukkit.entity.Ocelot;
|
||||
+import org.bukkit.entity.Panda;
|
||||
+import org.bukkit.entity.Parrot;
|
||||
+import org.bukkit.entity.Phantom;
|
||||
+import org.bukkit.entity.Pig;
|
||||
+import org.bukkit.entity.PigZombie;
|
||||
+import org.bukkit.entity.Piglin;
|
||||
+import org.bukkit.entity.PiglinAbstract;
|
||||
+import org.bukkit.entity.PiglinBrute;
|
||||
+import org.bukkit.entity.Pillager;
|
||||
+import org.bukkit.entity.PolarBear;
|
||||
+import org.bukkit.entity.PufferFish;
|
||||
+import org.bukkit.entity.Rabbit;
|
||||
+import org.bukkit.entity.Raider;
|
||||
+import org.bukkit.entity.Ravager;
|
||||
+import org.bukkit.entity.Salmon;
|
||||
+import org.bukkit.entity.Sheep;
|
||||
+import org.bukkit.entity.Shulker;
|
||||
+import org.bukkit.entity.Silverfish;
|
||||
+import org.bukkit.entity.Skeleton;
|
||||
+import org.bukkit.entity.SkeletonHorse;
|
||||
+import org.bukkit.entity.Slime;
|
||||
+import org.bukkit.entity.Snowman;
|
||||
+import org.bukkit.entity.Spellcaster;
|
||||
+import org.bukkit.entity.Spider;
|
||||
+import org.bukkit.entity.Squid;
|
||||
+import org.bukkit.entity.Stray;
|
||||
+import org.bukkit.entity.Strider;
|
||||
+import org.bukkit.entity.Tameable;
|
||||
+import org.bukkit.entity.TraderLlama;
|
||||
+import org.bukkit.entity.TropicalFish;
|
||||
+import org.bukkit.entity.Turtle;
|
||||
+import org.bukkit.entity.Vex;
|
||||
+import org.bukkit.entity.Villager;
|
||||
+import org.bukkit.entity.Vindicator;
|
||||
+import org.bukkit.entity.WanderingTrader;
|
||||
+import org.bukkit.entity.WaterMob;
|
||||
+import org.bukkit.entity.Witch;
|
||||
+import org.bukkit.entity.Wither;
|
||||
+import org.bukkit.entity.WitherSkeleton;
|
||||
+import org.bukkit.entity.Wolf;
|
||||
+import org.bukkit.entity.Zoglin;
|
||||
+import org.bukkit.entity.Zombie;
|
||||
+import org.bukkit.entity.ZombieHorse;
|
||||
+import org.bukkit.entity.ZombieVillager;
|
||||
+
|
||||
+public class MobGoalHelper {
|
||||
+
|
||||
@@ -392,8 +566,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
@@ -0,0 +0,0 @@
|
||||
+package com.destroystokyo.paper.entity.ai;
|
||||
+
|
||||
+import net.minecraft.server.PathfinderGoal;
|
||||
+
|
||||
+import net.minecraft.world.entity.ai.goal.PathfinderGoal;
|
||||
+import org.bukkit.entity.Mob;
|
||||
+
|
||||
+/**
|
||||
@@ -453,10 +626,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
@@ -0,0 +0,0 @@
|
||||
+package com.destroystokyo.paper.entity.ai;
|
||||
+
|
||||
+import net.minecraft.server.PathfinderGoal;
|
||||
+import net.minecraft.server.PathfinderGoalSelector;
|
||||
+import net.minecraft.server.PathfinderGoalWrapped;
|
||||
+
|
||||
+import java.util.Collection;
|
||||
+import java.util.EnumSet;
|
||||
+import java.util.HashMap;
|
||||
@@ -465,7 +634,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+import java.util.List;
|
||||
+import java.util.Map;
|
||||
+import java.util.Set;
|
||||
+
|
||||
+import net.minecraft.world.entity.ai.goal.PathfinderGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.PathfinderGoalSelector;
|
||||
+import net.minecraft.world.entity.ai.goal.PathfinderGoalWrapped;
|
||||
+import org.bukkit.craftbukkit.entity.CraftMob;
|
||||
+import org.bukkit.entity.Mob;
|
||||
+
|
||||
@@ -589,7 +760,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ CraftMob craftMob = (CraftMob) mob;
|
||||
+ Set<Goal<T>> goals = new HashSet<>();
|
||||
+ for (GoalType internalType : GoalType.values()) {
|
||||
+ if(internalType == type) {
|
||||
+ if (internalType == type) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ for (PathfinderGoalWrapped item : getHandle(craftMob, internalType).getTasks()) {
|
||||
@@ -683,10 +854,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
@@ -0,0 +0,0 @@
|
||||
+package com.destroystokyo.paper.entity.ai;
|
||||
+
|
||||
+import net.minecraft.server.PathfinderGoal;
|
||||
+
|
||||
+import java.util.EnumSet;
|
||||
+
|
||||
+import net.minecraft.world.entity.ai.goal.PathfinderGoal;
|
||||
+import org.bukkit.entity.Mob;
|
||||
+
|
||||
+/**
|
||||
|
||||
Reference in New Issue
Block a user