diff --git a/.classpath b/.classpath index 1483c3b..511fe64 100644 --- a/.classpath +++ b/.classpath @@ -27,5 +27,6 @@ + diff --git a/.gitignore b/.gitignore index d8fa897..4260de3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ /.externalToolBuilders /.settings /archive -/target +/target/ diff --git a/.project b/.project index 64ffda4..baa591d 100644 --- a/.project +++ b/.project @@ -1,6 +1,6 @@ - Controllable Mobs API + Controllable-Mobs-API libraries diff --git a/README.md b/README.md new file mode 100644 index 0000000..8250417 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# Controllable-Mobs-API +API to control Minecraft entities + +Fork of DevCybran's http://dev.bukkit.org/bukkit-plugins/controllable-mobs-api/ + +Updated and working with Bukkit 1.7.10 (It's not compatible with older versions though), it should be totally safe to update from older versions (the api has not been changed) + +### Download +* https://github.com/RaynLegends/Controllable-Mobs-API/raw/master/target/Controllable-Mobs-API-1.7.10-R4.jar + +### Older versions + +* 1.7.9 -> http://dev.bukkit.org/bukkit-plugins/controllable-mobs-api/files/20-controllable-mobs-api-v1-7-9/ +* 1.7.2 -> http://dev.bukkit.org/bukkit-plugins/controllable-mobs-api/files/19-controllable-mobs-api-v1-7-2-6-alpha2/ +* 1.6.4 -> http://dev.bukkit.org/bukkit-plugins/controllable-mobs-api/files/17-controllable-mobs-api-v5/ +* 1.6.2 -> http://dev.bukkit.org/bukkit-plugins/controllable-mobs-api/files/16-controllable-mobs-api-v4/ diff --git a/pom.xml b/pom.xml index 27ca29b..fc0bfdf 100644 --- a/pom.xml +++ b/pom.xml @@ -1,134 +1,43 @@ + 4.0.0 + de.ntcomputer controllable-mobs-api - 1.7.2.6-snapshot - Controllable Mobs API - http://dev.bukkit.org/bukkit-plugins/controllable-mobs-api/ + 0.0.1-SNAPSHOT + jar - 1.6 - 1.6 UTF-8 - 1.7.2 - 1_7_R1 - github - - - repobo-snap - http://repo.bukkit.org/content/groups/public - - - - - - org.bukkit - craftbukkit - 1.7.2-R0.2 - provided - - - + clean install - src/main/resources + . true + ${basedir}/src/main/resources + + *.yml + - - org.apache.maven.plugins - maven-jar-plugin + maven-shade-plugin 2.1 - - - - Controllable-Mobs-API - ${project.version} - DevCybran - false - - - - - - - com.github.github - site-maven-plugin - 0.8 - - Maven artifacts for ${project.version} - true - ${project.build.directory}/mvn-repo - refs/heads/mvn-repo - - **/* - - Controllable-Mobs-API - DevCybran - + package - site + shade - deploy - - - maven-deploy-plugin - 2.7 - - internal.repo::default::file://${project.build.directory}/mvn-repo - - - - - maven-compiler-plugin - 3.0 - - 1.6 - 1.6 - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.9.1 - - de.ntcomputer.minecraft.controllablemobs.implementation;de.ntcomputer.minecraft.controllablemobs.plugin - - http://jd.bukkit.org/apidocs/ - - - - - attach-javadocs - - jar - - - - - - - - - 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/ControllableMobs.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ControllableMobs.java index d55f8b7..56e2a14 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ControllableMobs.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ControllableMobs.java @@ -4,16 +4,13 @@ import java.util.Map; import java.util.logging.Logger; -import net.minecraft.server.v1_7_R1.EntityInsentient; -import net.minecraft.server.v1_7_R1.EntityLiving; +import net.minecraft.server.v1_8_R3.EntityInsentient; +import net.minecraft.server.v1_8_R3.EntityLiving; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftLivingEntity; import org.bukkit.entity.LivingEntity; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.java.PluginClassLoader; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; -import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.NativeInterfaces; /** * This is a static class which lets you retrieve instances of {@link ControllableMob}. @@ -30,20 +27,6 @@ public final class ControllableMobs { } private static void onLoad() { - try { - PluginClassLoader cl = (PluginClassLoader) ControllableMobs.class.getClassLoader(); - Plugin[] plugins = NativeInterfaces.JAVAPLUGINLOADER.FIELD_SERVER.get(NativeInterfaces.PLUGINCLASSLOADER.FIELD_LOADER.get(cl)).getPluginManager().getPlugins(); - for(Plugin plugin: plugins) { - if(plugin.getClass().getClassLoader()==cl) { - if(plugin.getName().equals("ControllableMobsAPI")) { - plugin.getLogger().info("initialized API plugin"); - } else { - plugin.getLogger().info("initialized Controllable Mobs API library"); - } - return; - } - } - } catch(Throwable t) {} Logger.getLogger("Minecraft").info("[ControllableMobsAPI] initialized by an unknown component"); } diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/AIType.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/AIType.java index e33d9d3..9993405 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/AIType.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/AIType.java @@ -3,50 +3,50 @@ import java.util.HashMap; import java.util.Map; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalArrowAttack; -import net.minecraft.server.v1_7_R1.PathfinderGoalAvoidPlayer; -import net.minecraft.server.v1_7_R1.PathfinderGoalBeg; -import net.minecraft.server.v1_7_R1.PathfinderGoalBreakDoor; -import net.minecraft.server.v1_7_R1.PathfinderGoalBreed; -import net.minecraft.server.v1_7_R1.PathfinderGoalDefendVillage; -import net.minecraft.server.v1_7_R1.PathfinderGoalEatTile; -import net.minecraft.server.v1_7_R1.PathfinderGoalFleeSun; -import net.minecraft.server.v1_7_R1.PathfinderGoalFloat; -import net.minecraft.server.v1_7_R1.PathfinderGoalFollowOwner; -import net.minecraft.server.v1_7_R1.PathfinderGoalFollowParent; -import net.minecraft.server.v1_7_R1.PathfinderGoalHurtByTarget; -import net.minecraft.server.v1_7_R1.PathfinderGoalInteract; -import net.minecraft.server.v1_7_R1.PathfinderGoalJumpOnBlock; -import net.minecraft.server.v1_7_R1.PathfinderGoalLeapAtTarget; -import net.minecraft.server.v1_7_R1.PathfinderGoalLookAtPlayer; -import net.minecraft.server.v1_7_R1.PathfinderGoalLookAtTradingPlayer; -import net.minecraft.server.v1_7_R1.PathfinderGoalMakeLove; -import net.minecraft.server.v1_7_R1.PathfinderGoalMeleeAttack; -import net.minecraft.server.v1_7_R1.PathfinderGoalMoveIndoors; -import net.minecraft.server.v1_7_R1.PathfinderGoalMoveThroughVillage; -import net.minecraft.server.v1_7_R1.PathfinderGoalMoveTowardsRestriction; -import net.minecraft.server.v1_7_R1.PathfinderGoalMoveTowardsTarget; -import net.minecraft.server.v1_7_R1.PathfinderGoalNearestAttackableTarget; -import net.minecraft.server.v1_7_R1.PathfinderGoalOcelotAttack; -import net.minecraft.server.v1_7_R1.PathfinderGoalOfferFlower; -import net.minecraft.server.v1_7_R1.PathfinderGoalOpenDoor; -import net.minecraft.server.v1_7_R1.PathfinderGoalOwnerHurtByTarget; -import net.minecraft.server.v1_7_R1.PathfinderGoalOwnerHurtTarget; -import net.minecraft.server.v1_7_R1.PathfinderGoalPanic; -import net.minecraft.server.v1_7_R1.PathfinderGoalPassengerCarrotStick; -import net.minecraft.server.v1_7_R1.PathfinderGoalPlay; -import net.minecraft.server.v1_7_R1.PathfinderGoalRandomLookaround; -import net.minecraft.server.v1_7_R1.PathfinderGoalRandomStroll; -import net.minecraft.server.v1_7_R1.PathfinderGoalRandomTargetNonTamed; -import net.minecraft.server.v1_7_R1.PathfinderGoalRestrictOpenDoor; -import net.minecraft.server.v1_7_R1.PathfinderGoalRestrictSun; -import net.minecraft.server.v1_7_R1.PathfinderGoalSit; -import net.minecraft.server.v1_7_R1.PathfinderGoalSwell; -import net.minecraft.server.v1_7_R1.PathfinderGoalTakeFlower; -import net.minecraft.server.v1_7_R1.PathfinderGoalTame; -import net.minecraft.server.v1_7_R1.PathfinderGoalTempt; -import net.minecraft.server.v1_7_R1.PathfinderGoalTradeWithPlayer; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalArrowAttack; +import net.minecraft.server.v1_8_R3.PathfinderGoalAvoidTarget; +import net.minecraft.server.v1_8_R3.PathfinderGoalBeg; +import net.minecraft.server.v1_8_R3.PathfinderGoalBreakDoor; +import net.minecraft.server.v1_8_R3.PathfinderGoalBreed; +import net.minecraft.server.v1_8_R3.PathfinderGoalDefendVillage; +import net.minecraft.server.v1_8_R3.PathfinderGoalEatTile; +import net.minecraft.server.v1_8_R3.PathfinderGoalFleeSun; +import net.minecraft.server.v1_8_R3.PathfinderGoalFloat; +import net.minecraft.server.v1_8_R3.PathfinderGoalFollowOwner; +import net.minecraft.server.v1_8_R3.PathfinderGoalFollowParent; +import net.minecraft.server.v1_8_R3.PathfinderGoalHurtByTarget; +import net.minecraft.server.v1_8_R3.PathfinderGoalInteract; +import net.minecraft.server.v1_8_R3.PathfinderGoalJumpOnBlock; +import net.minecraft.server.v1_8_R3.PathfinderGoalLeapAtTarget; +import net.minecraft.server.v1_8_R3.PathfinderGoalLookAtPlayer; +import net.minecraft.server.v1_8_R3.PathfinderGoalLookAtTradingPlayer; +import net.minecraft.server.v1_8_R3.PathfinderGoalMakeLove; +import net.minecraft.server.v1_8_R3.PathfinderGoalMeleeAttack; +import net.minecraft.server.v1_8_R3.PathfinderGoalMoveIndoors; +import net.minecraft.server.v1_8_R3.PathfinderGoalMoveThroughVillage; +import net.minecraft.server.v1_8_R3.PathfinderGoalMoveTowardsRestriction; +import net.minecraft.server.v1_8_R3.PathfinderGoalMoveTowardsTarget; +import net.minecraft.server.v1_8_R3.PathfinderGoalNearestAttackableTarget; +import net.minecraft.server.v1_8_R3.PathfinderGoalOcelotAttack; +import net.minecraft.server.v1_8_R3.PathfinderGoalOfferFlower; +import net.minecraft.server.v1_8_R3.PathfinderGoalOpenDoor; +import net.minecraft.server.v1_8_R3.PathfinderGoalOwnerHurtByTarget; +import net.minecraft.server.v1_8_R3.PathfinderGoalOwnerHurtTarget; +import net.minecraft.server.v1_8_R3.PathfinderGoalPanic; +import net.minecraft.server.v1_8_R3.PathfinderGoalPassengerCarrotStick; +import net.minecraft.server.v1_8_R3.PathfinderGoalPlay; +import net.minecraft.server.v1_8_R3.PathfinderGoalRandomLookaround; +import net.minecraft.server.v1_8_R3.PathfinderGoalRandomStroll; +import net.minecraft.server.v1_8_R3.PathfinderGoalRandomTargetNonTamed; +import net.minecraft.server.v1_8_R3.PathfinderGoalRestrictOpenDoor; +import net.minecraft.server.v1_8_R3.PathfinderGoalRestrictSun; +import net.minecraft.server.v1_8_R3.PathfinderGoalSit; +import net.minecraft.server.v1_8_R3.PathfinderGoalSwell; +import net.minecraft.server.v1_8_R3.PathfinderGoalTakeFlower; +import net.minecraft.server.v1_8_R3.PathfinderGoalTame; +import net.minecraft.server.v1_8_R3.PathfinderGoalTempt; +import net.minecraft.server.v1_8_R3.PathfinderGoalTradeWithPlayer; /** * An enum that lists all AI components built into the minecraft server core.
@@ -59,7 +59,7 @@ */ public enum AIType { ATTACK_RANGED(PathfinderGoalArrowAttack.class), - MOVE_AVOIDPLAYER(PathfinderGoalAvoidPlayer.class), + MOVE_AVOIDPLAYER(PathfinderGoalAvoidTarget.class), ACTION_BEG(PathfinderGoalBeg.class), ACTION_DOORBREAK(PathfinderGoalBreakDoor.class), ACTION_BREED(PathfinderGoalBreed.class), diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIAttackMelee.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIAttackMelee.java index e3834e6..9c1366e 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIAttackMelee.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIAttackMelee.java @@ -1,8 +1,8 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.EntityCreature; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalMeleeAttack; +import net.minecraft.server.v1_8_R3.EntityCreature; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalMeleeAttack; import org.bukkit.entity.Creature; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIAttackRanged.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIAttackRanged.java index 89e7e22..84e25c0 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIAttackRanged.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIAttackRanged.java @@ -1,8 +1,8 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.IRangedEntity; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalArrowAttack; +import net.minecraft.server.v1_8_R3.IRangedEntity; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalArrowAttack; import org.bukkit.entity.Creature; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIBehavior.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIBehavior.java index 09a3f3f..cc80f59 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIBehavior.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIBehavior.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoal; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIDoorBreak.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIDoorBreak.java index eb3560c..f43ff41 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIDoorBreak.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIDoorBreak.java @@ -1,7 +1,7 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalBreakDoor; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalBreakDoor; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIDoorOpen.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIDoorOpen.java index 58d0e71..22b01b1 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIDoorOpen.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIDoorOpen.java @@ -1,7 +1,7 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalOpenDoor; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalOpenDoor; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIFleeSun.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIFleeSun.java index e3e26ae..d3d40bb 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIFleeSun.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIFleeSun.java @@ -2,9 +2,9 @@ import org.bukkit.entity.Creature; -import net.minecraft.server.v1_7_R1.EntityCreature; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalFleeSun; +import net.minecraft.server.v1_8_R3.EntityCreature; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalFleeSun; import de.ntcomputer.minecraft.controllablemobs.api.ai.AIType; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AILookAtEntity.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AILookAtEntity.java index 448badb..eb702f1 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AILookAtEntity.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AILookAtEntity.java @@ -1,9 +1,9 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.Entity; -import net.minecraft.server.v1_7_R1.EntityHuman; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalLookAtPlayer; +import net.minecraft.server.v1_8_R3.Entity; +import net.minecraft.server.v1_8_R3.EntityHuman; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalLookAtPlayer; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIPlayerTrade.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIPlayerTrade.java index 617f02d..6880fff 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIPlayerTrade.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIPlayerTrade.java @@ -1,8 +1,8 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.EntityVillager; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalTradeWithPlayer; +import net.minecraft.server.v1_8_R3.EntityVillager; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalTradeWithPlayer; import org.bukkit.entity.Villager; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIPlayerTradingLook.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIPlayerTradingLook.java index e2e569b..ed0815d 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIPlayerTradingLook.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIPlayerTradingLook.java @@ -1,8 +1,8 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.EntityVillager; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalLookAtTradingPlayer; +import net.minecraft.server.v1_8_R3.EntityVillager; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalLookAtTradingPlayer; import org.bukkit.entity.Villager; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRandomLookaround.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRandomLookaround.java index 4da5624..f378b6d 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRandomLookaround.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRandomLookaround.java @@ -2,8 +2,8 @@ import org.bukkit.entity.LivingEntity; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalRandomLookaround; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalRandomLookaround; import de.ntcomputer.minecraft.controllablemobs.api.ai.AIType; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRandomStroll.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRandomStroll.java index 9574af2..00addb9 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRandomStroll.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRandomStroll.java @@ -1,8 +1,8 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.EntityCreature; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalRandomStroll; +import net.minecraft.server.v1_8_R3.EntityCreature; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalRandomStroll; import org.bukkit.entity.Creature; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRestrictSun.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRestrictSun.java index bb63d42..7e2c5f1 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRestrictSun.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIRestrictSun.java @@ -2,9 +2,9 @@ import org.bukkit.entity.Creature; -import net.minecraft.server.v1_7_R1.EntityCreature; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalRestrictSun; +import net.minecraft.server.v1_8_R3.EntityCreature; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalRestrictSun; import de.ntcomputer.minecraft.controllablemobs.api.ai.AIType; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; 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..1edb040 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,7 +1,7 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalFloat; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalFloat; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetBehaviorEx.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetBehaviorEx.java index 787ddc7..587868b 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetBehaviorEx.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetBehaviorEx.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.EntityLiving; +import net.minecraft.server.v1_8_R3.EntityLiving; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetHurtBy.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetHurtBy.java index b804b83..767accf 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetHurtBy.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AITargetHurtBy.java @@ -1,8 +1,8 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.EntityCreature; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalHurtByTarget; +import net.minecraft.server.v1_8_R3.EntityCreature; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalHurtByTarget; import org.bukkit.entity.Creature; 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..8b0caa1 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 @@ -1,14 +1,17 @@ package de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors; -import net.minecraft.server.v1_7_R1.PathfinderGoal; +import net.minecraft.server.v1_8_R3.Entity; +import net.minecraft.server.v1_8_R3.IEntitySelector; +import net.minecraft.server.v1_8_R3.PathfinderGoal; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.LivingEntity; +import com.google.common.base.Predicate; + import de.ntcomputer.minecraft.controllablemobs.api.ai.AIType; import de.ntcomputer.minecraft.controllablemobs.api.ai.EntityFilter; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; -import de.ntcomputer.minecraft.controllablemobs.implementation.ai.EntitySelector; import de.ntcomputer.minecraft.controllablemobs.implementation.ai.behaviors.PathfinderGoalTargetNearest; /** @@ -20,7 +23,7 @@ * */ public class AITargetNearest extends AITargetBehaviorEx { - private final EntitySelector entitySelector; + private final Predicate entitySelector; /** * Create with an automatically given priority. @@ -105,11 +108,12 @@ public AITargetNearest(int priority, double maximumDistance, boolean ignoreInvul */ public AITargetNearest(int priority, double maximumDistance, boolean ignoreInvulnerability, int maximumNoEyeContactTicks, EntityFilter filter, Class... targetClasses) throws IllegalArgumentException { super(priority, maximumNoEyeContactTicks, ignoreInvulnerability, maximumDistance, targetClasses); - this.entitySelector = filter==null ? null : new EntitySelector(filter); + this.entitySelector = IEntitySelector.d; } @Override public PathfinderGoal createPathfinderGoal(CraftControllableMob mob) { + // TODO: FARLO SUL SERIO 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/ControllableMobHelper.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ControllableMobHelper.java index dc84490..5ca3f5a 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ControllableMobHelper.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ControllableMobHelper.java @@ -13,13 +13,13 @@ public class ControllableMobHelper { @SuppressWarnings("deprecation") - public static Class getNmsEntityClass(final Class entityClass) throws IllegalArgumentException { + public static Class getNmsEntityClass(final Class entityClass) throws IllegalArgumentException { if(entityClass==null) throw new IllegalArgumentException("entityClass must not be null"); - if(entityClass==HumanEntity.class || entityClass==Player.class) return net.minecraft.server.v1_7_R1.EntityHuman.class; - if(entityClass==Monster.class) return net.minecraft.server.v1_7_R1.EntityMonster.class; - if(entityClass==Creature.class) return net.minecraft.server.v1_7_R1.EntityCreature.class; - if(entityClass==Animals.class) return net.minecraft.server.v1_7_R1.EntityAnimal.class; - if(entityClass==LivingEntity.class) return net.minecraft.server.v1_7_R1.EntityLiving.class; + if(entityClass==HumanEntity.class || entityClass==Player.class) return net.minecraft.server.v1_8_R3.EntityHuman.class; + if(entityClass==Monster.class) return net.minecraft.server.v1_8_R3.EntityMonster.class; + if(entityClass==Creature.class) return net.minecraft.server.v1_8_R3.EntityCreature.class; + if(entityClass==Animals.class) return net.minecraft.server.v1_8_R3.EntityAnimal.class; + if(entityClass==LivingEntity.class) return net.minecraft.server.v1_8_R3.EntityLiving.class; for(EntityType entityType: EntityType.values()) { if(entityType.getEntityClass()==null || entityType.getTypeId()==-1) continue; @@ -32,12 +32,12 @@ public static Class getNmsEntityC } @SuppressWarnings("deprecation") - public static Class getNmsEntityClass(final EntityType entityType) throws IllegalArgumentException { + public static Class getNmsEntityClass(final EntityType entityType) throws IllegalArgumentException { if(entityType==null) throw new IllegalArgumentException("EntityType must not be null"); - if(entityType==EntityType.PLAYER) return net.minecraft.server.v1_7_R1.EntityHuman.class; + if(entityType==EntityType.PLAYER) return net.minecraft.server.v1_8_R3.EntityHuman.class; try { - final Class entityClass = NativeInterfaces.ENTITYTYPES.METHOD_GETCLASSBYID.invoke(entityType.getTypeId()); + final Class entityClass = NativeInterfaces.ENTITYTYPES.METHOD_GETCLASSBYID.invoke(entityType.getTypeId()); if(entityClass==null) throw new IllegalArgumentException("EntityType "+entityType+" is not resolvable to a net.minecraft Class"); return entityClass; } catch(Exception e) { diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMob.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMob.java index 22e0dbc..4c0ec4b 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMob.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMob.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation; -import net.minecraft.server.v1_7_R1.EntityInsentient; +import net.minecraft.server.v1_8_R3.EntityInsentient; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMobAttributes.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMobAttributes.java index b22f231..49757f2 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMobAttributes.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/CraftControllableMobAttributes.java @@ -1,9 +1,9 @@ package de.ntcomputer.minecraft.controllablemobs.implementation; -import net.minecraft.server.v1_7_R1.AttributeInstance; -import net.minecraft.server.v1_7_R1.AttributeModifiable; -import net.minecraft.server.v1_7_R1.EntityInsentient; -import net.minecraft.server.v1_7_R1.IAttribute; +import net.minecraft.server.v1_8_R3.AttributeInstance; +import net.minecraft.server.v1_8_R3.AttributeModifiable; +import net.minecraft.server.v1_8_R3.EntityInsentient; +import net.minecraft.server.v1_8_R3.IAttribute; import de.ntcomputer.minecraft.controllablemobs.api.ControllableMobAttributes; import de.ntcomputer.minecraft.controllablemobs.api.attributes.Attribute; import de.ntcomputer.minecraft.controllablemobs.implementation.attributes.CraftAttribute; @@ -90,32 +90,36 @@ void dispose(boolean reset) { @Override public boolean canSwim() { - return NativeInterfaces.NAVIGATION.FIELD_CANSWIM.get(this.nmsEntity.getNavigation()); + //TODO return NativeInterfaces.NAVIGATION.FIELD_CANSWIM.get(this.nmsEntity.getNavigation()); + return true; } @Override public boolean getAvoidWater() { - return NativeInterfaces.NAVIGATION.FIELD_AVOIDWATER.get(this.nmsEntity.getNavigation()); + //TODO return NativeInterfaces.NAVIGATION.FIELD_AVOIDWATER.get(this.nmsEntity.getNavigation()); + return false; } @Override public void setAvoidWater(boolean avoid) { - NativeInterfaces.NAVIGATION.FIELD_AVOIDWATER.set(this.nmsEntity.getNavigation(), avoid); + //TODO NativeInterfaces.NAVIGATION.FIELD_AVOIDWATER.set(this.nmsEntity.getNavigation(), avoid); } @Override public boolean getMoveThroughDoors() { - return NativeInterfaces.NAVIGATION.FIELD_USEOPENDOOR.get(this.nmsEntity.getNavigation()); + //TODO return NativeInterfaces.NAVIGATION.FIELD_USEOPENDOOR.get(this.nmsEntity.getNavigation()); + return false; } @Override public void setMoveThroughDoors(boolean moveThroughDoors) { - NativeInterfaces.NAVIGATION.FIELD_USEOPENDOOR.set(this.nmsEntity.getNavigation(), moveThroughDoors); + //TODO NativeInterfaces.NAVIGATION.FIELD_USEOPENDOOR.set(this.nmsEntity.getNavigation(), moveThroughDoors); } @Override public boolean canMoveThroughClosedDoors() { - return NativeInterfaces.NAVIGATION.FIELD_USECLOSEDDOOR.get(this.nmsEntity.getNavigation()); + //TODO return NativeInterfaces.NAVIGATION.FIELD_USECLOSEDDOOR.get(this.nmsEntity.getNavigation()); + return false; } } diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionDie.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionDie.java index 9395106..89a506f 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionDie.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionDie.java @@ -1,7 +1,7 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.actions; -import net.minecraft.server.v1_7_R1.DamageSource; -import net.minecraft.server.v1_7_R1.EntityLiving; +import net.minecraft.server.v1_8_R3.DamageSource; +import net.minecraft.server.v1_8_R3.EntityLiving; import de.ntcomputer.minecraft.controllablemobs.api.actions.ActionType; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionFollow.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionFollow.java index 5f098d5..953c79d 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionFollow.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionFollow.java @@ -1,8 +1,8 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.actions; -import net.minecraft.server.v1_7_R1.EntityLiving; +import net.minecraft.server.v1_8_R3.EntityLiving; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftLivingEntity; import org.bukkit.entity.LivingEntity; import de.ntcomputer.minecraft.controllablemobs.api.actions.ActionType; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLook.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLook.java index 3d95e44..23ed851 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLook.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLook.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.actions; -import net.minecraft.server.v1_7_R1.World; +import net.minecraft.server.v1_8_R3.World; import de.ntcomputer.minecraft.controllablemobs.api.actions.ActionType; public abstract class ControllableMobActionLook extends ControllableMobActionBase { diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLookBlock.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLookBlock.java index d59c198..a06da42 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLookBlock.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLookBlock.java @@ -1,9 +1,9 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.actions; -import net.minecraft.server.v1_7_R1.World; +import net.minecraft.server.v1_8_R3.World; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; public class ControllableMobActionLookBlock extends ControllableMobActionLook { private final double[] values; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLookEntity.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLookEntity.java index 55aa668..bf2953a 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLookEntity.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionLookEntity.java @@ -1,14 +1,14 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.actions; -import net.minecraft.server.v1_7_R1.World; +import net.minecraft.server.v1_8_R3.World; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity; import org.bukkit.entity.Entity; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; public class ControllableMobActionLookEntity extends ControllableMobActionLook { - private final net.minecraft.server.v1_7_R1.Entity entity; + private final net.minecraft.server.v1_8_R3.Entity entity; public ControllableMobActionLookEntity(final CraftControllableMob mob, final Entity entity) { super(mob.getActionManager()); diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionMoveAbstract.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionMoveAbstract.java index 5301d19..d8d3761 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionMoveAbstract.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionMoveAbstract.java @@ -1,9 +1,9 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.actions; -import net.minecraft.server.v1_7_R1.World; +import net.minecraft.server.v1_8_R3.World; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; import de.ntcomputer.minecraft.controllablemobs.api.actions.ActionType; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionTarget.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionTarget.java index bfa882a..78b5885 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionTarget.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionTarget.java @@ -1,8 +1,8 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.actions; -import net.minecraft.server.v1_7_R1.EntityLiving; +import net.minecraft.server.v1_8_R3.EntityLiving; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftLivingEntity; import org.bukkit.entity.LivingEntity; import de.ntcomputer.minecraft.controllablemobs.api.actions.ActionType; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionTeleportEntity.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionTeleportEntity.java index 8a31cbf..39109c8 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionTeleportEntity.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/actions/ControllableMobActionTeleportEntity.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.actions; -import net.minecraft.server.v1_7_R1.Entity; +import net.minecraft.server.v1_8_R3.Entity; import de.ntcomputer.minecraft.controllablemobs.api.actions.ActionType; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIComponentHandlers.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIComponentHandlers.java index 6fe70de..a482172 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIComponentHandlers.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIComponentHandlers.java @@ -3,14 +3,15 @@ import java.util.HashMap; import java.util.Map; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalBreakDoor; -import net.minecraft.server.v1_7_R1.PathfinderGoalDoorInteract; -import net.minecraft.server.v1_7_R1.PathfinderGoalFloat; -import net.minecraft.server.v1_7_R1.PathfinderGoalOpenDoor; +import net.minecraft.server.v1_8_R3.Navigation; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalBreakDoor; +import net.minecraft.server.v1_8_R3.PathfinderGoalDoorInteract; +import net.minecraft.server.v1_8_R3.PathfinderGoalFloat; +import net.minecraft.server.v1_8_R3.PathfinderGoalOpenDoor; import de.ntcomputer.minecraft.controllablemobs.api.ai.AIType; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; -import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.NativeInterfaces; +//import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.NativeInterfaces; @SuppressWarnings("unchecked") public final class AIComponentHandlers { @@ -34,12 +35,14 @@ private static void add(Class goalClass, AIComponentListener closedDoorListener = new AIComponentListener() { @Override public void onAdd(CraftControllableMob mob, PathfinderGoalDoorInteract goal) { - NativeInterfaces.NAVIGATION.FIELD_USECLOSEDDOOR.set(mob.nmsEntity.getNavigation(), true); + ((Navigation) mob.nmsEntity.getNavigation()).a(true); + //NativeInterfaces.NAVIGATION.FIELD_USECLOSEDDOOR.set(mob.nmsEntity.getNavigation(), true); } @Override public void onRemoved(CraftControllableMob mob, PathfinderGoalDoorInteract goal) { if(!mob.getAI().hasBehavior(AIType.ACTION_DOOROPEN, AIType.ACTION_DOORBREAK)) { - NativeInterfaces.NAVIGATION.FIELD_USECLOSEDDOOR.set(mob.nmsEntity.getNavigation(), false); + ((Navigation) mob.nmsEntity.getNavigation()).a(false); + //NativeInterfaces.NAVIGATION.FIELD_USECLOSEDDOOR.set(mob.nmsEntity.getNavigation(), false); } } }; @@ -48,12 +51,14 @@ public void onRemoved(CraftControllableMob mob, PathfinderGoalDoorInteract go add(PathfinderGoalFloat.class, new AIComponentListener() { @Override public void onAdd(CraftControllableMob mob, PathfinderGoalFloat goal) { - NativeInterfaces.NAVIGATION.FIELD_CANSWIM.set(mob.nmsEntity.getNavigation(), true); + ((Navigation) mob.nmsEntity.getNavigation()).b(true); + // TODO: NativeInterfaces.NAVIGATION.FIELD_CANSWIM.set(mob.nmsEntity.getNavigation(), true); } @Override public void onRemoved(CraftControllableMob mob, PathfinderGoalFloat goal) { if(!mob.getAI().hasBehavior(AIType.MOVE_SWIM)) { - NativeInterfaces.NAVIGATION.FIELD_CANSWIM.set(mob.nmsEntity.getNavigation(), false); + ((Navigation) mob.nmsEntity.getNavigation()).b(false); + // TODO: NativeInterfaces.NAVIGATION.FIELD_CANSWIM.set(mob.nmsEntity.getNavigation(), false); } } }); diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIComponentListener.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIComponentListener.java index 11652c0..9075f41 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIComponentListener.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIComponentListener.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.ai; -import net.minecraft.server.v1_7_R1.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoal; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; public interface AIComponentListener { 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..5719a38 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 @@ -11,11 +11,11 @@ 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 net.minecraft.server.v1_8_R3.EntityInsentient; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalSelector; -import org.bukkit.craftbukkit.v1_7_R1.util.UnsafeList; +import org.bukkit.craftbukkit.v1_8_R3.util.UnsafeList; import org.bukkit.entity.LivingEntity; import de.ntcomputer.minecraft.controllablemobs.api.ai.AIState; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/CraftAIPart.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/CraftAIPart.java index b3edc8c..205f880 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/CraftAIPart.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/CraftAIPart.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.ai; -import net.minecraft.server.v1_7_R1.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoal; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/EntitySelector.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/EntitySelector.java deleted file mode 100644 index e25cb82..0000000 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/EntitySelector.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.ntcomputer.minecraft.controllablemobs.implementation.ai; - -import net.minecraft.server.v1_7_R1.Entity; -import net.minecraft.server.v1_7_R1.IEntitySelector; -import de.ntcomputer.minecraft.controllablemobs.api.ai.EntityFilter; - -public final class EntitySelector implements IEntitySelector { - private final EntityFilter filter; - - public EntitySelector(final EntityFilter filter) { - this.filter = filter; - } - - @Override - public boolean a(Entity entity) { - return this.isEntityValid(entity); - } - - public boolean isEntityValid(Entity entity) { - return this.filter.isEntityValid(entity.getBukkitEntity()); - } - -} diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalAIMonitor.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalAIMonitor.java index 74e8fef..316ce85 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalAIMonitor.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalAIMonitor.java @@ -3,7 +3,7 @@ import java.util.HashSet; import java.util.List; -import net.minecraft.server.v1_7_R1.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoal; import de.ntcomputer.minecraft.controllablemobs.api.ai.AIState; import de.ntcomputer.minecraft.controllablemobs.implementation.ai.AIController; import de.ntcomputer.minecraft.controllablemobs.implementation.ai.CraftAIPart; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionFollow.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionFollow.java index 56249ea..79bc0e8 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionFollow.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionFollow.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.ai.behaviors; -import net.minecraft.server.v1_7_R1.PathEntity; +import net.minecraft.server.v1_8_R3.PathEntity; import de.ntcomputer.minecraft.controllablemobs.api.actions.ActionType; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; import de.ntcomputer.minecraft.controllablemobs.implementation.actions.ControllableMobActionFollow; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionMoveAbstract.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionMoveAbstract.java index 5542958..8237136 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionMoveAbstract.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionMoveAbstract.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.ai.behaviors; -import net.minecraft.server.v1_7_R1.PathEntity; +import net.minecraft.server.v1_8_R3.PathEntity; import de.ntcomputer.minecraft.controllablemobs.api.actions.ActionType; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; import de.ntcomputer.minecraft.controllablemobs.implementation.actions.ControllableMobActionMoveAbstract; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionTarget.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionTarget.java index f74609e..278f58a 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionTarget.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalActionTarget.java @@ -1,6 +1,5 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.ai.behaviors; -import net.minecraft.server.v1_7_R1.EntityCreature; import de.ntcomputer.minecraft.controllablemobs.api.actions.ActionType; import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; import de.ntcomputer.minecraft.controllablemobs.implementation.actions.ControllableMobActionTarget; @@ -24,7 +23,7 @@ protected void onStartAction() { // set target for AI goals this.mob.nmsEntity.setGoalTarget(this.action.target); // set target for old AI & bukkit interface (so "getTarget" on Creature will return the correct entity) - if(this.mob.nmsEntity instanceof EntityCreature) ((EntityCreature) this.mob.nmsEntity).target = this.action.target; + //if(this.mob.nmsEntity instanceof EntityCreature) ((EntityCreature) this.mob.nmsEntity).target = this.action.target; } @Override diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalTargetEx.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalTargetEx.java index 6a3ea9c..d7641a7 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalTargetEx.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalTargetEx.java @@ -1,12 +1,12 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.ai.behaviors; -import net.minecraft.server.v1_7_R1.EntityCreature; -import net.minecraft.server.v1_7_R1.EntityHuman; -import net.minecraft.server.v1_7_R1.EntityInsentient; -import net.minecraft.server.v1_7_R1.EntityLiving; +import net.minecraft.server.v1_8_R3.EntityCreature; +import net.minecraft.server.v1_8_R3.EntityHuman; +import net.minecraft.server.v1_8_R3.EntityInsentient; +import net.minecraft.server.v1_8_R3.EntityLiving; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftLivingEntity; -import org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.event.entity.EntityTargetLivingEntityEvent; @@ -57,7 +57,7 @@ protected boolean target(EntityLiving target, EntityTargetEvent.TargetReason rea if(this.maximumDistanceSquared>0 && NativeInterfaces.ENTITY.METHOD_GETDISTANCETOENTITYSQUARED.invoke(this.entity,target)>this.maximumDistanceSquared) return false; // eye contact check - if(this.maximumNoEyeContactTicks>0 && !this.entity.getEntitySenses().canSee(target)) return false; + if(this.maximumNoEyeContactTicks>0 && !this.entity.getEntitySenses().a(target)) return false; // call target event final EntityTargetLivingEntityEvent event = CraftEventFactory.callEntityTargetLivingEvent(this.entity, target, reason); @@ -66,7 +66,7 @@ protected boolean target(EntityLiving target, EntityTargetEvent.TargetReason rea // set new target! target = ((CraftLivingEntity) event.getTarget()).getHandle(); this.entity.setGoalTarget(target); - if(this.entity instanceof EntityCreature) ((EntityCreature) this.entity).target = target; + if(this.entity instanceof EntityCreature) ((EntityCreature) this.entity).setGoalTarget(target); this.mob.adjustMaximumNavigationDistance(Math.sqrt(NativeInterfaces.ENTITY.METHOD_GETDISTANCETOENTITYSQUARED.invoke(this.entity, target) * 2)); return true; @@ -85,7 +85,7 @@ protected boolean canContinue() { // eye contact check if(this.maximumNoEyeContactTicks>0) { - if(this.entity.getEntitySenses().canSee(target)) this.noEyeContactTicks = 0; + if(this.entity.getEntitySenses().a(target)) this.noEyeContactTicks = 0; else { if(++this.noEyeContactTicks > this.maximumNoEyeContactTicks) return false; } diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalTargetNearest.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalTargetNearest.java index a7a1f67..57dea9b 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalTargetNearest.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/behaviors/PathfinderGoalTargetNearest.java @@ -4,29 +4,30 @@ import java.util.Collections; import java.util.List; -import net.minecraft.server.v1_7_R1.DistanceComparator; -import net.minecraft.server.v1_7_R1.EntityHuman; -import net.minecraft.server.v1_7_R1.EntityLiving; +import net.minecraft.server.v1_8_R3.PathfinderGoalNearestAttackableTarget.DistanceComparator; +import net.minecraft.server.v1_8_R3.Entity; +import net.minecraft.server.v1_8_R3.EntityHuman; +import net.minecraft.server.v1_8_R3.EntityLiving; import org.bukkit.event.entity.EntityTargetEvent.TargetReason; +import com.google.common.base.Predicate; + import de.ntcomputer.minecraft.controllablemobs.implementation.CraftControllableMob; -import de.ntcomputer.minecraft.controllablemobs.implementation.ai.EntitySelector; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.NativeInterfaces; public class PathfinderGoalTargetNearest extends PathfinderGoalTargetEx { private final double searchDistance; private final DistanceComparator comparator; - private final EntitySelector entitySelector; + private final Predicate entitySelector; - public PathfinderGoalTargetNearest(CraftControllableMob mob, int maximumNoEyeContactTicks, boolean ignoreInvulnerability, double maximumDistance, Class[] targetClasses, EntitySelector entitySelector) { + public PathfinderGoalTargetNearest(CraftControllableMob mob, int maximumNoEyeContactTicks, boolean ignoreInvulnerability, double maximumDistance, Class[] targetClasses, Predicate entitySelector) { super(mob, maximumNoEyeContactTicks, ignoreInvulnerability, maximumDistance, targetClasses); this.searchDistance = maximumDistance<=0 ? 500 : maximumDistance; this.comparator = new DistanceComparator(entity); this.entitySelector = entitySelector; } - @SuppressWarnings("unchecked") @Override protected boolean canStart() { final List entities = new ArrayList(); @@ -35,7 +36,7 @@ protected boolean canStart() { if(targetClass==EntityHuman.class) { this.findNearbyPlayersOptimized(this.entity, entities); } else { - entities.addAll(NativeInterfaces.WORLD.METHOD_SEARCHENTITIES.invoke(this.entity.world, targetClass, this.entity.boundingBox.grow(this.searchDistance, this.searchDistance/4.0, this.searchDistance), this.entitySelector)); + entities.addAll(NativeInterfaces.WORLD.METHOD_SEARCHENTITIES.invoke(this.entity.world, targetClass, this.entity.getBoundingBox().grow(this.searchDistance, this.searchDistance/4.0, this.searchDistance), this.entitySelector)); } } @@ -52,7 +53,7 @@ private void findNearbyPlayersOptimized(final EntityLiving entity, final List nativeModifiers = NativeInterfaces.ATTRIBUTEMODIFIABLE.METHOD_GETMODIFIERS.invoke(nativeAttribute); - for(net.minecraft.server.v1_7_R1.AttributeModifier nativeModifier: nativeModifiers) { + Collection nativeModifiers = NativeInterfaces.ATTRIBUTEMODIFIABLE.METHOD_GETMODIFIERS.invoke(nativeAttribute); + for(net.minecraft.server.v1_8_R3.AttributeModifier nativeModifier: nativeModifiers) { UUID uuid = NativeInterfaces.ATTRIBUTEMODIFIER.METHOD_GETUUID.invoke(nativeModifier); CraftAttributeModifier modifier = modifierMap.get(uuid); if(modifier!=null) modifier.setAttributeAttached(this); @@ -50,10 +50,10 @@ public double getValue() { return nativeAttribute.getValue(); } - private CraftAttributeModifier[] resolveNativeModifiers(Collection nativeModifiers) { + private CraftAttributeModifier[] resolveNativeModifiers(Collection nativeModifiers) { CraftAttributeModifier[] result = new CraftAttributeModifier[nativeModifiers.size()]; int i = 0; - for(net.minecraft.server.v1_7_R1.AttributeModifier nativeModifier: nativeModifiers) { + for(net.minecraft.server.v1_8_R3.AttributeModifier nativeModifier: nativeModifiers) { UUID uuid = NativeInterfaces.ATTRIBUTEMODIFIER.METHOD_GETUUID.invoke(nativeModifier); CraftAttributeModifier modifier = modifierMap.get(uuid); if(modifier==null) { diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/attributes/CraftAttributeModifier.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/attributes/CraftAttributeModifier.java index 848b06c..8f55758 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/attributes/CraftAttributeModifier.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/attributes/CraftAttributeModifier.java @@ -15,7 +15,7 @@ public class CraftAttributeModifier implements AttributeModifier { private final String name; private final double value; private final ModifyOperation operation; - private net.minecraft.server.v1_7_R1.AttributeModifier nativeModifier = null; + private net.minecraft.server.v1_8_R3.AttributeModifier nativeModifier = null; private final Set attachedAttributes = new HashSet(); private final boolean custom; @@ -27,7 +27,7 @@ public CraftAttributeModifier(UUID uniqueID, String name, double modifierValue, this.custom = true; } - public CraftAttributeModifier(UUID uuid, net.minecraft.server.v1_7_R1.AttributeModifier nativeModifier) { + public CraftAttributeModifier(UUID uuid, net.minecraft.server.v1_8_R3.AttributeModifier nativeModifier) { this.uniqueID = uuid; this.nativeModifier = nativeModifier; this.name = NativeInterfaces.ATTRIBUTEMODIFIER.METHOD_GETNAME.invoke(nativeModifier); @@ -51,9 +51,9 @@ public double getModifierValue() { return this.value; } - net.minecraft.server.v1_7_R1.AttributeModifier getNativeModifier() { + net.minecraft.server.v1_8_R3.AttributeModifier getNativeModifier() { if(this.nativeModifier==null) { - this.nativeModifier = new net.minecraft.server.v1_7_R1.AttributeModifier(uniqueID, name, value, this.operation.getIntType()); + this.nativeModifier = new net.minecraft.server.v1_8_R3.AttributeModifier(uniqueID, name, value, this.operation.getIntType()); } return this.nativeModifier; } diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/NativeInterfaces.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/NativeInterfaces.java index 81b0839..0484dd4 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/NativeInterfaces.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/NativeInterfaces.java @@ -1,7 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server.CBInterfaceJavaPluginLoader; -import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server.CBInterfacePluginClassLoader; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server.NmsAttributeModifiable; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server.NmsAttributeModifier; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server.NmsAttributeRanged; @@ -27,7 +26,6 @@ public final class NativeInterfaces { public static final NmsInterfacePathfinderGoal PATHFINDERGOAL = new NmsInterfacePathfinderGoal(); public static final NmsPathfinderGoalSelector PATHFINDERGOALSELECTOR = new NmsPathfinderGoalSelector(); public static final NmsPathfinderGoalSelectorItem PATHFINDERGOALSELECTORITEM = new NmsPathfinderGoalSelectorItem(); - public static final CBInterfacePluginClassLoader PLUGINCLASSLOADER = new CBInterfacePluginClassLoader(); public static final NmsWorld WORLD = new NmsWorld(); public static final NmsIAttribute IATTRIBUTE = new NmsIAttribute(); public static final NmsAttributeRanged ATTRIBUTERANGED = new NmsAttributeRanged(); diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/CBInterfacePluginClassLoader.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/CBInterfacePluginClassLoader.java deleted file mode 100644 index 5e164be..0000000 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/CBInterfacePluginClassLoader.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; - -import org.bukkit.plugin.java.JavaPluginLoader; -import org.bukkit.plugin.java.PluginClassLoader; - -import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeFieldObject; - -public final class CBInterfacePluginClassLoader { - public NativeFieldObject FIELD_LOADER = new NativeFieldObject(PluginClassLoader.class, "loader"); - -} diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeModifiable.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeModifiable.java index 2fe1c2b..30d7fbb 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeModifiable.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeModifiable.java @@ -4,9 +4,9 @@ import java.util.Collections; import java.util.UUID; -import net.minecraft.server.v1_7_R1.AttributeModifiable; -import net.minecraft.server.v1_7_R1.AttributeModifier; -import net.minecraft.server.v1_7_R1.IAttribute; +import net.minecraft.server.v1_8_R3.AttributeModifiable; +import net.minecraft.server.v1_8_R3.AttributeModifier; +import net.minecraft.server.v1_8_R3.IAttribute; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public final class NmsAttributeModifiable { @@ -21,7 +21,7 @@ public final class NmsAttributeModifiable { public final class GetTemplate extends NativeMethodPublic { public IAttribute invoke(AttributeModifiable attribute) { try { - return attribute.a(); + return attribute.getAttribute(); } catch(Throwable t) { this.handleException(t); return null; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeModifier.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeModifier.java index 3a03e9b..7e3b33d 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeModifier.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeModifier.java @@ -2,7 +2,7 @@ import java.util.UUID; -import net.minecraft.server.v1_7_R1.AttributeModifier; +import net.minecraft.server.v1_8_R3.AttributeModifier; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public final class NmsAttributeModifier { diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeRanged.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeRanged.java index 7ffc817..b2b7687 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeRanged.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsAttributeRanged.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.AttributeRanged; +import net.minecraft.server.v1_8_R3.AttributeRanged; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeFieldDouble; public final class NmsAttributeRanged { diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsControllerJump.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsControllerJump.java index 974daff..4930851 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsControllerJump.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsControllerJump.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.ControllerJump; +import net.minecraft.server.v1_8_R3.ControllerJump; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public class NmsControllerJump { diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsControllerLook.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsControllerLook.java index c247872..e8623ce 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsControllerLook.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsControllerLook.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.ControllerLook; +import net.minecraft.server.v1_8_R3.ControllerLook; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public class NmsControllerLook { diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntity.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntity.java index 61c999d..1bb0da2 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntity.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntity.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.Entity; +import net.minecraft.server.v1_8_R3.Entity; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public class NmsEntity { @@ -12,7 +12,7 @@ public class GetEntityDistanceSquared extends NativeMethodPublic { public double invoke(final Entity entity, final Entity target) { try { // method returns difLocX² + difLocY² + difLocZ² for entity - return entity.e(target); + return entity.h(target); } catch(Throwable e) { this.handleException(e); return 0; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntityInsentient.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntityInsentient.java index d7cb11e..561c19c 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntityInsentient.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntityInsentient.java @@ -1,7 +1,7 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.EntityInsentient; -import net.minecraft.server.v1_7_R1.PathfinderGoalSelector; +import net.minecraft.server.v1_8_R3.EntityInsentient; +import net.minecraft.server.v1_8_R3.PathfinderGoalSelector; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeFieldObject; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; @@ -13,7 +13,8 @@ public final class NmsEntityInsentient { public final class GetVerticalHeadSpeed extends NativeMethodPublic { public int invoke(EntityInsentient entity) { try { - return entity.x(); + //TODO TROVARE return entity.x(); + return 40; } catch(Throwable e) { this.handleException(e); return 40; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntityTypes.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntityTypes.java index e04b2c2..889c397 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntityTypes.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsEntityTypes.java @@ -1,14 +1,13 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.Entity; -import net.minecraft.server.v1_7_R1.EntityTypes; +import net.minecraft.server.v1_8_R3.Entity; +import net.minecraft.server.v1_8_R3.EntityTypes; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public final class NmsEntityTypes { public final GetEntityClassById METHOD_GETCLASSBYID = new GetEntityClassById(); public final class GetEntityClassById extends NativeMethodPublic { - @SuppressWarnings("unchecked") public Class invoke(int entityTypeId) { try { return EntityTypes.a(entityTypeId); diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsGenericAttributes.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsGenericAttributes.java index 4eb53b2..0cbbe9a 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsGenericAttributes.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsGenericAttributes.java @@ -1,15 +1,15 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.GenericAttributes; -import net.minecraft.server.v1_7_R1.IAttribute; +import net.minecraft.server.v1_8_R3.GenericAttributes; +import net.minecraft.server.v1_8_R3.IAttribute; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeStaticFieldObject; public final class NmsGenericAttributes { // look at the string description in GenericAttributes class on update - public final NativeStaticFieldObject STATIC_FIELD_MAXHEALTH = new NativeStaticFieldObject(GenericAttributes.class,"a"); - public final NativeStaticFieldObject STATIC_FIELD_FOLLOWRANGE = new NativeStaticFieldObject(GenericAttributes.class,"b"); + public final NativeStaticFieldObject STATIC_FIELD_MAXHEALTH = new NativeStaticFieldObject(GenericAttributes.class,"maxHealth"); + public final NativeStaticFieldObject STATIC_FIELD_FOLLOWRANGE = new NativeStaticFieldObject(GenericAttributes.class,"FOLLOW_RANGE"); public final NativeStaticFieldObject STATIC_FIELD_KNOCKBACKRESISTANCE = new NativeStaticFieldObject(GenericAttributes.class,"c"); - public final NativeStaticFieldObject STATIC_FIELD_MOVEMENTSPEED = new NativeStaticFieldObject(GenericAttributes.class,"d"); - public final NativeStaticFieldObject STATIC_FIELD_ATTACKDAMAGE = new NativeStaticFieldObject(GenericAttributes.class,"e"); + public final NativeStaticFieldObject STATIC_FIELD_MOVEMENTSPEED = new NativeStaticFieldObject(GenericAttributes.class,"MOVEMENT_SPEED"); + public final NativeStaticFieldObject STATIC_FIELD_ATTACKDAMAGE = new NativeStaticFieldObject(GenericAttributes.class,"ATTACK_DAMAGE"); } diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsIAttribute.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsIAttribute.java index 13ee906..9f1aa47 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsIAttribute.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsIAttribute.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.IAttribute; +import net.minecraft.server.v1_8_R3.IAttribute; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public final class NmsIAttribute { @@ -9,7 +9,7 @@ public final class NmsIAttribute { public final class GetName extends NativeMethodPublic { public String invoke(IAttribute attribute) { try { - return attribute.a(); + return attribute.getName(); } catch(Throwable t) { this.handleException(t); return null; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsInterfacePathfinderGoal.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsInterfacePathfinderGoal.java index 6fb9d50..7ed0bb3 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsInterfacePathfinderGoal.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsInterfacePathfinderGoal.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoal; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public final class NmsInterfacePathfinderGoal { diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsNavigation.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsNavigation.java index 8dfb05f..f8c4aff 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsNavigation.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsNavigation.java @@ -1,9 +1,8 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.EntityLiving; -import net.minecraft.server.v1_7_R1.Navigation; -import net.minecraft.server.v1_7_R1.PathEntity; -import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeFieldBoolean; +import net.minecraft.server.v1_8_R3.EntityLiving; +import net.minecraft.server.v1_8_R3.NavigationAbstract; +import net.minecraft.server.v1_8_R3.PathEntity; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public class NmsNavigation { @@ -16,19 +15,19 @@ public class NmsNavigation { public final CreatePathToEntity METHOD_CREATEPATHTOENTITY = new CreatePathToEntity(); public final CreatePathToLocation METHOD_CREATEPATHTOLOCATION = new CreatePathToLocation(); // first of 4 booleans - public final NativeFieldBoolean FIELD_USEOPENDOOR = new NativeFieldBoolean(Navigation.class, "j"); + //public final NativeFieldBoolean FIELD_USEOPENDOOR = new NativeFieldBoolean(NmsNavigation.class, "f"); // second of 4 booleans - public final NativeFieldBoolean FIELD_USECLOSEDDOOR = new NativeFieldBoolean(Navigation.class, "k"); + //public final NativeFieldBoolean FIELD_USECLOSEDDOOR = new NativeFieldBoolean(NmsNavigation.class, "f"); // third of 4 booleans - public final NativeFieldBoolean FIELD_AVOIDWATER = new NativeFieldBoolean(Navigation.class, "l"); + //public final NativeFieldBoolean FIELD_AVOIDWATER = new NativeFieldBoolean(NmsNavigation.class, "f"); // last of 4 booleans - public final NativeFieldBoolean FIELD_CANSWIM = new NativeFieldBoolean(Navigation.class, "m"); + //public final NativeFieldBoolean FIELD_CANSWIM = new NativeFieldBoolean(NmsNavigation.class, "f"); public class IsMoveFinished extends NativeMethodPublic { - public boolean invoke(final Navigation navigation) { + public boolean invoke(final NavigationAbstract navigation) { try { // return (this.c == null) || (this.c.b()); - return navigation.g(); + return navigation.m(); } catch(Throwable e) { this.handleException(e); return true; @@ -37,10 +36,10 @@ public boolean invoke(final Navigation navigation) { } public class StopMove extends NativeMethodPublic { - public void invoke(final Navigation navigation) { + public void invoke(final NavigationAbstract navigation) { try { // this.c = null; - navigation.h(); + navigation.k(); } catch(Throwable e) { this.handleException(e); } @@ -48,7 +47,7 @@ public void invoke(final Navigation navigation) { } public class MoveToEntity extends NativeMethodPublic { - public void invoke(final Navigation navigation, EntityLiving entity, double movementSpeedMultiplicator) { + public void invoke(final NavigationAbstract navigation, EntityLiving entity, double movementSpeedMultiplicator) { try { navigation.a(entity, movementSpeedMultiplicator); } catch(Throwable e) { @@ -58,7 +57,7 @@ public void invoke(final Navigation navigation, EntityLiving entity, double move } public class MoveAlongPath extends NativeMethodPublic { - public void invoke(final Navigation navigation, PathEntity path, double movementSpeedMultiplicator) { + public void invoke(final NavigationAbstract navigation, PathEntity path, double movementSpeedMultiplicator) { try { navigation.a(path, movementSpeedMultiplicator); } catch(Throwable e) { @@ -68,7 +67,7 @@ public void invoke(final Navigation navigation, PathEntity path, double movement } public class CreatePathToEntity extends NativeMethodPublic { - public PathEntity invoke(final Navigation navigation, final EntityLiving entity) { + public PathEntity invoke(final NavigationAbstract navigation, final EntityLiving entity) { try { return navigation.a(entity); } catch(Throwable e) { @@ -79,7 +78,7 @@ public PathEntity invoke(final Navigation navigation, final EntityLiving entity) } public class CreatePathToLocation extends NativeMethodPublic { - public PathEntity invoke(final Navigation navigation, final double x, final double y, final double z) { + public PathEntity invoke(final NavigationAbstract navigation, final double x, final double y, final double z) { try { return navigation.a(x,y,z); } catch(Throwable e) { diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsPathfinderGoalSelector.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsPathfinderGoalSelector.java index 91e6030..c537ff1 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsPathfinderGoalSelector.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsPathfinderGoalSelector.java @@ -1,9 +1,9 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.PathfinderGoal; -import net.minecraft.server.v1_7_R1.PathfinderGoalSelector; +import net.minecraft.server.v1_8_R3.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoalSelector; -import org.bukkit.craftbukkit.v1_7_R1.util.UnsafeList; +import org.bukkit.craftbukkit.v1_8_R3.util.UnsafeList; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeFieldObject; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsPathfinderGoalSelectorItem.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsPathfinderGoalSelectorItem.java index 5bed2de..5c83f21 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsPathfinderGoalSelectorItem.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsPathfinderGoalSelectorItem.java @@ -1,6 +1,6 @@ package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.server; -import net.minecraft.server.v1_7_R1.PathfinderGoal; +import net.minecraft.server.v1_8_R3.PathfinderGoal; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeFieldInt; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeFieldObject; diff --git a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsWorld.java b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsWorld.java index c59556d..89e0bf6 100644 --- a/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsWorld.java +++ b/src/main/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsWorld.java @@ -3,18 +3,18 @@ import java.util.Collections; import java.util.List; -import net.minecraft.server.v1_7_R1.AxisAlignedBB; -import net.minecraft.server.v1_7_R1.Entity; -import net.minecraft.server.v1_7_R1.IEntitySelector; -import net.minecraft.server.v1_7_R1.World; +import com.google.common.base.Predicate; + +import net.minecraft.server.v1_8_R3.AxisAlignedBB; +import net.minecraft.server.v1_8_R3.Entity; +import net.minecraft.server.v1_8_R3.World; import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic; public class NmsWorld { public final SearchEntities METHOD_SEARCHENTITIES = new SearchEntities(); public class SearchEntities extends NativeMethodPublic { - @SuppressWarnings("unchecked") - public List invoke(World world, Class classLookingFor, AxisAlignedBB area, IEntitySelector entitySelector) { + public List invoke(World world, Class classLookingFor, AxisAlignedBB area, Predicate entitySelector) { try { return world.a(classLookingFor, area, entitySelector); } catch(Throwable e) { diff --git a/target/Controllable-Mobs-API-1.7.10-R4.jar b/target/Controllable-Mobs-API-1.7.10-R4.jar new file mode 100644 index 0000000..92c0ef7 Binary files /dev/null and b/target/Controllable-Mobs-API-1.7.10-R4.jar differ