diff --git a/.classpath b/.classpath
deleted file mode 100644
index 1483c3b..0000000
--- a/.classpath
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.gitignore b/.gitignore
index d8fa897..a2805ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,36 @@
-/media
-/bin
-/.externalToolBuilders
+# Eclipse stuff
+/.classpath
+/.project
/.settings
-/archive
+
+# netbeans
+/nbproject
+/nbactions.xml
+/nb-configuration.xml
+
+# we use maven!
+/build.xml
+
+# maven
/target
+/dependency-reduced-pom.xml
+*/target
+*/dependency-reduced-pom.xml
+
+# vim
+.*.sw[a-p]
+
+# various other potential build files
+/build
+/bin
+/dist
+/manifest.mf
+
+# Mac filesystem dust
+/.DS_Store
+
+# intellij
+*.iml
+*.ipr
+*.iws
+.idea/
diff --git a/.project b/.project
deleted file mode 100644
index 64ffda4..0000000
--- a/.project
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
- Controllable Mobs API
-
-
- libraries
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.ui.externaltools.ExternalToolBuilder
- full,incremental,
-
-
- LaunchConfigHandle
- <project>/.externalToolBuilders/CMAPI Build snapshot jar.launch
-
-
-
-
- org.eclipse.ui.externaltools.ExternalToolBuilder
- full,incremental,
-
-
- LaunchConfigHandle
- <project>/.externalToolBuilders/CMAPI Build release jar.launch
-
-
-
-
- org.eclipse.ui.externaltools.ExternalToolBuilder
- full,incremental,
-
-
- LaunchConfigHandle
- <project>/.externalToolBuilders/CMAPI Build release javadoc.launch
-
-
-
-
- org.eclipse.ui.externaltools.ExternalToolBuilder
- full,incremental,
-
-
- LaunchConfigHandle
- <project>/.externalToolBuilders/CMAPI Debug Copyplugin.launch
-
-
-
-
- org.eclipse.ui.externaltools.ExternalToolBuilder
- full,incremental,
-
-
- LaunchConfigHandle
- <project>/.externalToolBuilders/CMAPI Debug Mafia CopyPlugin.launch
-
-
-
-
- org.eclipse.ui.externaltools.ExternalToolBuilder
- full,incremental,
-
-
- LaunchConfigHandle
- <project>/.externalToolBuilders/CMAPI Debug CopyPlugin To Test.launch
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/pom.xml b/pom.xml
index 27ca29b..2ff2737 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,13 +122,4 @@
-
-
-
- internal.repo
- Temporary Staging Repository
- file://${project.build.directory}/mvn-repo
-
-
-
\ No newline at end of file
diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AISwim.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AISwim.java
index 7a6fb2d..bad2fda 100644
--- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AISwim.java
+++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AISwim.java
@@ -1,13 +1,11 @@
package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors;
+import de.ntcomputer.minecraft.controllablemobs.api.ai.AIType;
+import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob;
import net.minecraft.server.v1_7_R1.PathfinderGoal;
import net.minecraft.server.v1_7_R1.PathfinderGoalFloat;
-
import org.bukkit.entity.LivingEntity;
-import de.ntcomputer.minecraft.controllablemobs.api.ai.AIType;
-import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob;
-
/**
* Very important AIBehavior that lets the entity swim.
* Must be added if the entity should not drown when it gets into the water.
@@ -34,14 +32,13 @@ public AISwim(final int priority) {
super(priority);
}
- @Override
- public PathfinderGoal createPathfinderGoal(CraftControllableMob> mob) {
- return new PathfinderGoalFloat(mob.nmsEntity);
- }
-
@Override
public AIType getType() {
return AIType.MOVE_SWIM;
}
+ @Override
+ public PathfinderGoal createPathfinderGoal(CraftControllableMob extends LivingEntity> mob) {
+ return new PathfinderGoalFloat(mob.nmsEntity);
+ }
}
diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetNearest.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetNearest.java
index e791372..9100466 100644
--- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetNearest.java
+++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetNearest.java
@@ -109,7 +109,7 @@ public AITargetNearest(int priority, double maximumDistance, boolean ignoreInvul
}
@Override
- public PathfinderGoal createPathfinderGoal(CraftControllableMob> mob) {
+ public PathfinderGoal createPathfinderGoal(CraftControllableMob extends LivingEntity> mob) {
return new PathfinderGoalTargetNearest(mob, this.maximumNoEyeContactTicks, this.ignoreInvulnerability, this.maximumDistance, this.targetClasses, this.entitySelector);
}
diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMobAI.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMobAI.java
index 6ad49aa..0926b4d 100644
--- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMobAI.java
+++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMobAI.java
@@ -1,14 +1,13 @@
package de.ntcomputer.minecraft.controllablemobs.implementation;
-import java.util.ArrayList;
-
-import org.bukkit.entity.LivingEntity;
-
import de.ntcomputer.minecraft.controllablemobs.api.ControllableMobAI;
import de.ntcomputer.minecraft.controllablemobs.api.ai.AIPart;
import de.ntcomputer.minecraft.controllablemobs.api.ai.AIType;
import de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors.AIBehavior;
import de.ntcomputer.minecraft.controllablemobs.implementation.ai.AIDispatcher;
+import org.bukkit.entity.LivingEntity;
+
+import java.util.ArrayList;
public class CraftControllableMobAI implements ControllableMobAI {
private AIDispatcher dispatcher;
@@ -67,7 +66,7 @@ public void reset() {
public AIPart[] getParts() {
ArrayList> parts = new ArrayList>();
this.dispatcher.get(parts,null);
- return parts.toArray(new AIPart[0]);
+ return parts.toArray(new AIPart[parts.size()]);
}
@Override
@@ -80,7 +79,7 @@ public boolean hasBehavior(AIType type) {
public AIPart[] getPartsOf(AIType... types) {
ArrayList> parts = new ArrayList>();
this.dispatcher.get(parts,types);
- return parts.toArray(new AIPart[0]);
+ return parts.toArray(new AIPart[parts.size()]);
}
@Override
diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIController.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIController.java
index ecd2dc7..a3d05a7 100644
--- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIController.java
+++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIController.java
@@ -1,23 +1,5 @@
package de.ntcomputer.minecraft.controllablemobs.implementation.ai;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import net.minecraft.server.v1_7_R1.EntityInsentient;
-import net.minecraft.server.v1_7_R1.PathfinderGoal;
-import net.minecraft.server.v1_7_R1.PathfinderGoalSelector;
-
-import org.bukkit.craftbukkit.v1_7_R1.util.UnsafeList;
-import org.bukkit.entity.LivingEntity;
-
import de.ntcomputer.minecraft.controllablemobs.api.ai.AIState;
import de.ntcomputer.minecraft.controllablemobs.api.ai.AIType;
import de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors.AIBehavior;
@@ -26,9 +8,16 @@
import de.ntcomputer.minecraft.controllablemobs.implementation.ai.behaviors.PathfinderGoalWrapper;
import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.NativeInterfaces;
import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeFieldObject;
+import net.minecraft.server.v1_7_R1.EntityInsentient;
+import net.minecraft.server.v1_7_R1.PathfinderGoal;
+import net.minecraft.server.v1_7_R1.PathfinderGoalSelector;
+import org.bukkit.craftbukkit.v1_7_R1.util.UnsafeList;
+import org.bukkit.entity.LivingEntity;
+
+import java.util.*;
public abstract class AIController implements Comparator