diff --git a/pom.xml b/pom.xml
index 26737df05..3906ff2f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,7 @@
${craftbukkit.version}
jar
provided
-
+
net.citizensnpcs
citizensapi
diff --git a/src/main/java/net/citizensnpcs/Citizens.java b/src/main/java/net/citizensnpcs/Citizens.java
index eeaece316..7154b46ad 100644
--- a/src/main/java/net/citizensnpcs/Citizens.java
+++ b/src/main/java/net/citizensnpcs/Citizens.java
@@ -259,8 +259,14 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
config = new Settings(getDataFolder());
// Disable if the server is not using the compatible Minecraft version
String mcVersion = Util.getMinecraftRevision();
- compatible = COMPATIBLE_MC_REVISION.equals(mcVersion);
- if (Setting.CHECK_MINECRAFT_VERSION.asBoolean() && !compatible) {
+ compatible = true;
+ try {
+ NMS.loadBridge(mcVersion);
+ } catch (Exception e) {
+ compatible = false;
+ if (Messaging.isDebugging()) {
+ e.printStackTrace();
+ }
Messaging.severeTr(Messages.CITIZENS_INCOMPATIBLE, getDescription().getVersion(), mcVersion);
getServer().getPluginManager().disablePlugin(this);
return;
@@ -461,6 +467,4 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
}
return false;
}
-
- private static final String COMPATIBLE_MC_REVISION = "1_10_R1";
}
diff --git a/src/main/java/net/citizensnpcs/commands/NPCCommands.java b/src/main/java/net/citizensnpcs/commands/NPCCommands.java
index de60e862b..fa7c0eb6b 100644
--- a/src/main/java/net/citizensnpcs/commands/NPCCommands.java
+++ b/src/main/java/net/citizensnpcs/commands/NPCCommands.java
@@ -71,9 +71,6 @@ import net.citizensnpcs.api.util.Paginator;
import net.citizensnpcs.npc.EntityControllers;
import net.citizensnpcs.npc.NPCSelector;
import net.citizensnpcs.npc.Template;
-import net.citizensnpcs.npc.entity.nonliving.FallingBlockController.FallingBlockNPC;
-import net.citizensnpcs.npc.entity.nonliving.ItemController.ItemNPC;
-import net.citizensnpcs.npc.entity.nonliving.ItemFrameController.ItemFrameNPC;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Age;
import net.citizensnpcs.trait.Anchors;
@@ -745,21 +742,22 @@ public class NPCCommands {
if (mat == null)
throw new CommandException(Messages.UNKNOWN_MATERIAL);
int data = args.getInteger(2, 0);
+ npc.data().setPersistent(NPC.ITEM_ID_METADATA, mat.name());
+ npc.data().setPersistent(NPC.ITEM_DATA_METADATA, data);
switch (npc.getEntity().getType()) {
case DROPPED_ITEM:
((org.bukkit.entity.Item) npc.getEntity()).getItemStack().setType(mat);
- ((ItemNPC) npc.getEntity()).setType(mat, data);
break;
case ITEM_FRAME:
((ItemFrame) npc.getEntity()).getItem().setType(mat);
- ((ItemFrameNPC) npc.getEntity()).setType(mat, data);
- break;
- case FALLING_BLOCK:
- ((FallingBlockNPC) npc.getEntity()).setType(mat, data);
break;
default:
break;
}
+ if (npc.isSpawned()) {
+ npc.despawn();
+ npc.spawn(npc.getStoredLocation());
+ }
Messaging.sendTr(sender, Messages.ITEM_SET, Util.prettyEnum(mat));
}
@@ -1518,7 +1516,8 @@ public class NPCCommands {
Messaging.sendTr(sender, Messages.SKIN_SET, npc.getName(), skinName);
if (npc.isSpawned()) {
- SkinnableEntity skinnable = NMS.getSkinnable(npc.getEntity());
+ SkinnableEntity skinnable = npc.getEntity() instanceof SkinnableEntity ? (SkinnableEntity) npc.getEntity()
+ : null;
if (skinnable != null) {
skinnable.setSkinName(skinName, args.hasFlag('p'));
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/BatController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BatController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/BatController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BatController.java
index 174d81766..2eb87ee0f 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/BatController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BatController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityBat;
import net.minecraft.server.v1_10_R1.NBTTagCompound;
@@ -55,19 +54,19 @@ public class BatController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
setFlying(false);
}
}
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -120,7 +119,7 @@ public class BatController extends MobEntityController {
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -161,7 +160,7 @@ public class BatController extends MobEntityController {
if (npc == null) {
super.M();
} else {
- NMS.updateAI(this);
+ NMSImpl.updateAI(this);
npc.update();
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/BlazeController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BlazeController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/BlazeController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BlazeController.java
index 2260f6279..f9a46920d 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/BlazeController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/BlazeController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityBlaze;
import net.minecraft.server.v1_10_R1.NBTTagCompound;
@@ -55,18 +54,18 @@ public class BlazeController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -119,7 +118,7 @@ public class BlazeController extends MobEntityController {
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/CaveSpiderController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CaveSpiderController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/CaveSpiderController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CaveSpiderController.java
index 6e75a91cc..8c8683ec3 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/CaveSpiderController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CaveSpiderController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityCaveSpider;
@@ -57,7 +56,7 @@ public class CaveSpiderController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -70,12 +69,12 @@ public class CaveSpiderController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -138,13 +137,13 @@ public class CaveSpiderController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -203,7 +202,7 @@ public class CaveSpiderController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/ChickenController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ChickenController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/ChickenController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ChickenController.java
index 035f57b3e..bb7b3b0d6 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/ChickenController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ChickenController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityChicken;
@@ -57,7 +56,7 @@ public class ChickenController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -81,12 +80,12 @@ public class ChickenController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -149,13 +148,13 @@ public class ChickenController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/CowController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CowController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/CowController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CowController.java
index 78052b214..38c52de59 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/CowController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CowController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityCow;
@@ -57,7 +56,7 @@ public class CowController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -82,12 +81,12 @@ public class CowController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -150,13 +149,13 @@ public class CowController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/CreeperController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CreeperController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/CreeperController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CreeperController.java
index d6196f454..6352c4068 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/CreeperController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/CreeperController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityCreeper;
@@ -62,7 +61,7 @@ public class CreeperController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -81,12 +80,12 @@ public class CreeperController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -149,13 +148,13 @@ public class CreeperController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -223,7 +222,7 @@ public class CreeperController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/EnderDragonController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EnderDragonController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/EnderDragonController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EnderDragonController.java
index cd1e65aec..420170208 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/EnderDragonController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EnderDragonController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityEnderDragon;
import net.minecraft.server.v1_10_R1.NBTTagCompound;
@@ -55,18 +54,18 @@ public class EnderDragonController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -118,7 +117,7 @@ public class EnderDragonController extends MobEntityController {
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/EndermanController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermanController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/EndermanController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermanController.java
index 91cd7669a..a61335895 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/EndermanController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermanController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityEnderman;
@@ -57,7 +56,7 @@ public class EndermanController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -70,12 +69,12 @@ public class EndermanController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -137,13 +136,13 @@ public class EndermanController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -208,7 +207,7 @@ public class EndermanController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/EndermiteController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermiteController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/EndermiteController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermiteController.java
index 98ae5294a..00983e1d4 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/EndermiteController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EndermiteController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityEndermite;
@@ -57,7 +56,7 @@ public class EndermiteController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -70,12 +69,12 @@ public class EndermiteController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -137,13 +136,13 @@ public class EndermiteController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -199,7 +198,7 @@ public class EndermiteController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java
index f373c3b3e..ca7641083 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import java.io.IOException;
import java.net.Socket;
@@ -26,19 +26,21 @@ import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.MetadataStore;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.trait.trait.Inventory;
+import net.citizensnpcs.nms.v1_10_R1.network.EmptyNetHandler;
+import net.citizensnpcs.nms.v1_10_R1.network.EmptyNetworkManager;
+import net.citizensnpcs.nms.v1_10_R1.network.EmptySocket;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_10_R1.util.PlayerControllerJump;
+import net.citizensnpcs.nms.v1_10_R1.util.PlayerControllerLook;
+import net.citizensnpcs.nms.v1_10_R1.util.PlayerControllerMove;
+import net.citizensnpcs.nms.v1_10_R1.util.PlayerNavigation;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.npc.network.EmptyNetHandler;
-import net.citizensnpcs.npc.network.EmptyNetworkManager;
-import net.citizensnpcs.npc.network.EmptySocket;
import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
+import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
-import net.citizensnpcs.util.nms.PlayerControllerJump;
-import net.citizensnpcs.util.nms.PlayerControllerLook;
-import net.citizensnpcs.util.nms.PlayerControllerMove;
-import net.citizensnpcs.util.nms.PlayerNavigation;
import net.minecraft.server.v1_10_R1.AttributeInstance;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.DamageSource;
@@ -66,7 +68,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
private PlayerControllerJump controllerJump;
private PlayerControllerLook controllerLook;
private PlayerControllerMove controllerMove;
- private boolean gravity = true;
private int jumpTicks = 0;
private PlayerNavigation navigation;
private final CitizensNPC npc;
@@ -193,7 +194,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@@ -260,7 +261,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
controllerLook = new PlayerControllerLook(this);
controllerMove = new PlayerControllerMove(this);
navigation = new PlayerNavigation(this, world);
- NMS.setStepHeight(this, 1); // the default (0) breaks step climbing
+ NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing
setSkinFlags((byte) 0xFF);
}
@@ -286,7 +287,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
boolean navigating = npc.getNavigator().isNavigating();
updatePackets(navigating);
- if (gravity && !navigating && getBukkitEntity() != null
+ if (npc.getTrait(Gravity.class).hasGravity() && !navigating && getBukkitEntity() != null
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))) {
g(0, 0);
}
@@ -295,8 +296,8 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
motX = motY = motZ = 0;
}
if (navigating) {
- if (!NMS.isNavigationFinished(navigation)) {
- NMS.updateNavigation(navigation);
+ if (!NMSImpl.isNavigationFinished(navigation)) {
+ NMSImpl.updateNavigation(navigation);
}
moveOnCurrentHeading();
}
@@ -318,7 +319,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void moveOnCurrentHeading() {
- NMS.updateAI(this);
+ NMSImpl.updateAI(this);
if (be) {
if (onGround && jumpTicks == 0) {
cl();
@@ -331,7 +332,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
bg *= 0.98F;
bh *= 0.9F;
g(bf, bg); // movement method
- NMS.setHeadYaw(this, yaw);
+ NMS.setHeadYaw(getBukkitEntity(), yaw);
if (jumpTicks > 0) {
jumpTicks--;
}
@@ -382,13 +383,13 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
: EnumItemSlot.values().length + 1];
if (!navigating) {
packets[5] = new PacketPlayOutEntityHeadRotation(this,
- (byte) MathHelper.d(NMS.getHeadYaw(this) * 256.0F / 360.0F));
+ (byte) MathHelper.d(NMSImpl.getHeadYaw(this) * 256.0F / 360.0F));
}
int i = 0;
for (EnumItemSlot slot : EnumItemSlot.values()) {
packets[i++] = new PacketPlayOutEntityEquipment(getId(), slot, getEquipment(slot));
}
- NMS.sendPacketsNearby(getBukkitEntity(), current, packets);
+ NMSImpl.sendPacketsNearby(getBukkitEntity(), current, packets);
}
}
@@ -447,10 +448,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
cserver.getEntityMetadata().removeMetadata(this, metadataKey, owningPlugin);
}
- public void setGravityEnabled(boolean enabled) {
- getHandle().gravity = enabled;
- }
-
@Override
public void setMetadata(String metadataKey, MetadataValue newMetadataValue) {
cserver.getEntityMetadata().setMetadata(this, metadataKey, newMetadataValue);
diff --git a/src/main/java/net/citizensnpcs/npc/entity/GhastController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GhastController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/GhastController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GhastController.java
index 29e0c0384..7806fca8b 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/GhastController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GhastController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityGhast;
import net.minecraft.server.v1_10_R1.NBTTagCompound;
@@ -41,18 +40,18 @@ public class GhastController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -110,7 +109,7 @@ public class GhastController extends MobEntityController {
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/GiantController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GiantController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/GiantController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GiantController.java
index 753b0106e..5ba76aee4 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/GiantController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GiantController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityGiantZombie;
@@ -43,7 +42,7 @@ public class GiantController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class GiantController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -123,13 +122,13 @@ public class GiantController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -186,7 +185,7 @@ public class GiantController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
@@ -204,5 +203,4 @@ public class GiantController extends MobEntityController {
return npc;
}
}
-
}
\ No newline at end of file
diff --git a/src/main/java/net/citizensnpcs/npc/entity/GuardianController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GuardianController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/GuardianController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GuardianController.java
index ac5a4cbc4..bc9f3ef46 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/GuardianController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/GuardianController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityGuardian;
@@ -43,7 +42,7 @@ public class GuardianController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class GuardianController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -124,13 +123,13 @@ public class GuardianController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -199,7 +198,7 @@ public class GuardianController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/HorseController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HorseController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/HorseController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HorseController.java
index 1a5d15e74..f4f04644b 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/HorseController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HorseController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -11,8 +11,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.HorseModifiers;
import net.citizensnpcs.util.NMS;
@@ -51,7 +51,7 @@ public class HorseController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
((Horse) getBukkitEntity()).setDomestication(((Horse) getBukkitEntity()).getMaxDomestication());
}
}
@@ -76,12 +76,12 @@ public class HorseController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -152,13 +152,13 @@ public class HorseController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -198,7 +198,7 @@ public class HorseController extends MobEntityController {
if (npc == null) {
super.M();
} else {
- NMS.setStepHeight(this, 1);
+ NMS.setStepHeight(getBukkitEntity(), 1);
npc.update();
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/HumanController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java
similarity index 97%
rename from src/main/java/net/citizensnpcs/npc/entity/HumanController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java
index 2f12adbe3..4d7ec3716 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/HumanController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import java.util.UUID;
import java.util.regex.Pattern;
@@ -132,7 +132,7 @@ public class HumanController extends AbstractEntityController {
Player entity = getBukkitEntity();
if (entity != null) {
NMS.removeFromWorld(entity);
- SkinnableEntity npc = NMS.getSkinnable(entity);
+ SkinnableEntity npc = entity instanceof SkinnableEntity ? (SkinnableEntity) entity : null;
npc.getSkinTracker().onRemoveNPC();
}
super.remove();
diff --git a/src/main/java/net/citizensnpcs/npc/entity/IronGolemController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/IronGolemController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/IronGolemController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/IronGolemController.java
index d9fa09a56..b9d507396 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/IronGolemController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/IronGolemController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityIronGolem;
@@ -43,7 +42,7 @@ public class IronGolemController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class IronGolemController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -123,13 +122,13 @@ public class IronGolemController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -186,7 +185,7 @@ public class IronGolemController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/MagmaCubeController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MagmaCubeController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/MagmaCubeController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MagmaCubeController.java
index d55ece9ad..92ebb45de 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/MagmaCubeController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MagmaCubeController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,12 +10,11 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_10_R1.util.PlayerControllerMove;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
-import net.citizensnpcs.util.nms.PlayerControllerMove;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityMagmaCube;
import net.minecraft.server.v1_10_R1.IBlockData;
@@ -45,7 +44,7 @@ public class MagmaCubeController extends MobEntityController {
this.npc = (CitizensNPC) npc;
if (npc != null) {
setSize(3);
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
this.moveController = new PlayerControllerMove(this);
}
}
@@ -59,12 +58,12 @@ public class MagmaCubeController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -126,13 +125,13 @@ public class MagmaCubeController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -189,7 +188,7 @@ public class MagmaCubeController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/MobEntityController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java
similarity index 95%
rename from src/main/java/net/citizensnpcs/npc/MobEntityController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java
index 990ffdc3c..b7e3a8484 100644
--- a/src/main/java/net/citizensnpcs/npc/MobEntityController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import java.lang.reflect.Constructor;
import java.util.Map;
@@ -11,6 +11,7 @@ import org.bukkit.entity.Entity;
import com.google.common.collect.Maps;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.npc.AbstractEntityController;
import net.minecraft.server.v1_10_R1.World;
public abstract class MobEntityController extends AbstractEntityController {
diff --git a/src/main/java/net/citizensnpcs/npc/entity/MushroomCowController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MushroomCowController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/MushroomCowController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MushroomCowController.java
index e789a1276..982429ac7 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/MushroomCowController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MushroomCowController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityMushroomCow;
@@ -44,7 +43,7 @@ public class MushroomCowController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -68,12 +67,12 @@ public class MushroomCowController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -135,13 +134,13 @@ public class MushroomCowController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/OcelotController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/OcelotController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/OcelotController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/OcelotController.java
index 333637f81..2b68d0616 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/OcelotController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/OcelotController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityOcelot;
@@ -43,7 +42,7 @@ public class OcelotController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -67,12 +66,12 @@ public class OcelotController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -134,13 +133,13 @@ public class OcelotController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/PigController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigController.java
similarity index 93%
rename from src/main/java/net/citizensnpcs/npc/entity/PigController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigController.java
index 25dbd6520..c4be0bf84 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/PigController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityLightning;
@@ -44,7 +43,7 @@ public class PigController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -68,12 +67,12 @@ public class PigController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -136,13 +135,13 @@ public class PigController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/PigZombieController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigZombieController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/PigZombieController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigZombieController.java
index 0ccb10e30..b785ba228 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/PigZombieController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PigZombieController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityPigZombie;
@@ -44,7 +43,7 @@ public class PigZombieController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -57,12 +56,12 @@ public class PigZombieController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -125,13 +124,13 @@ public class PigZombieController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/PolarBearController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PolarBearController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/PolarBearController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PolarBearController.java
index d57e2d14c..59683a11f 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/PolarBearController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/PolarBearController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityPolarBear;
import net.minecraft.server.v1_10_R1.NBTTagCompound;
@@ -41,18 +40,18 @@ public class PolarBearController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -105,7 +104,7 @@ public class PolarBearController extends MobEntityController {
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -145,7 +144,7 @@ public class PolarBearController extends MobEntityController {
public void m() {
super.m();
if (npc != null) {
- NMS.updateAI(this);
+ NMSImpl.updateAI(this);
npc.update();
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/RabbitController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/RabbitController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/RabbitController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/RabbitController.java
index 29619dc9c..968bc5561 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/RabbitController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/RabbitController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityLiving;
@@ -44,7 +43,7 @@ public class RabbitController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -68,12 +67,12 @@ public class RabbitController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -136,13 +135,13 @@ public class RabbitController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -204,9 +203,9 @@ public class RabbitController extends MobEntityController {
@Override
public void setRabbitType(int i) {
if (npc != null) {
- if (NMS.getRabbitTypeField() == null)
+ if (NMSImpl.getRabbitTypeField() == null)
return;
- this.datawatcher.set(NMS.getRabbitTypeField(), i);
+ this.datawatcher.set(NMSImpl.getRabbitTypeField(), i);
return;
}
super.setRabbitType(i);
diff --git a/src/main/java/net/citizensnpcs/npc/entity/SheepController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SheepController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/SheepController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SheepController.java
index e84a26423..d5a8f5bba 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/SheepController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SheepController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntitySheep;
@@ -43,7 +42,7 @@ public class SheepController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -67,12 +66,12 @@ public class SheepController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -134,13 +133,13 @@ public class SheepController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/ShulkerController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ShulkerController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/ShulkerController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ShulkerController.java
index aa9ca934f..a927c5ca2 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/ShulkerController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ShulkerController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityAIBodyControl;
@@ -44,7 +43,7 @@ public class ShulkerController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -57,12 +56,12 @@ public class ShulkerController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -124,13 +123,13 @@ public class ShulkerController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -200,7 +199,7 @@ public class ShulkerController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/SilverfishController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SilverfishController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/SilverfishController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SilverfishController.java
index 989ba7e05..5813fba9b 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/SilverfishController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SilverfishController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntitySilverfish;
@@ -43,7 +42,7 @@ public class SilverfishController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class SilverfishController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -123,13 +122,13 @@ public class SilverfishController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -185,7 +184,7 @@ public class SilverfishController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/SkeletonController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SkeletonController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/SkeletonController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SkeletonController.java
index d6d36e0e7..1de70872d 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/SkeletonController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SkeletonController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntitySkeleton;
@@ -43,7 +42,7 @@ public class SkeletonController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class SkeletonController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -123,13 +122,13 @@ public class SkeletonController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -186,7 +185,7 @@ public class SkeletonController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/SlimeController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SlimeController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/SlimeController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SlimeController.java
index 418a65548..b317c7532 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/SlimeController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SlimeController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,12 +10,11 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_10_R1.util.PlayerControllerMove;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
-import net.citizensnpcs.util.nms.PlayerControllerMove;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityHuman;
import net.minecraft.server.v1_10_R1.EntitySlime;
@@ -46,7 +45,7 @@ public class SlimeController extends MobEntityController {
this.npc = (CitizensNPC) npc;
if (npc != null) {
setSize(3);
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
this.moveController = new PlayerControllerMove(this);
}
}
@@ -60,12 +59,12 @@ public class SlimeController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -135,13 +134,13 @@ public class SlimeController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -198,7 +197,7 @@ public class SlimeController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/SnowmanController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SnowmanController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/SnowmanController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SnowmanController.java
index 2048caeb6..7f17d3818 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/SnowmanController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SnowmanController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntitySnowman;
@@ -43,7 +42,7 @@ public class SnowmanController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class SnowmanController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -123,13 +122,13 @@ public class SnowmanController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -186,7 +185,7 @@ public class SnowmanController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/SpiderController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SpiderController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/SpiderController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SpiderController.java
index f74dbf810..141b6cc67 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/SpiderController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SpiderController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntitySpider;
@@ -43,7 +42,7 @@ public class SpiderController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class SpiderController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -123,13 +122,13 @@ public class SpiderController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -185,7 +184,7 @@ public class SpiderController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/SquidController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SquidController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/SquidController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SquidController.java
index 58b6db6d6..7b5a11a94 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/SquidController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/SquidController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntitySquid;
@@ -43,7 +42,7 @@ public class SquidController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class SquidController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -123,13 +122,13 @@ public class SquidController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -178,7 +177,7 @@ public class SquidController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/VillagerController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/VillagerController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/VillagerController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/VillagerController.java
index 06bd58bc3..e8b6c6351 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/VillagerController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/VillagerController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,8 +10,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
@@ -47,7 +47,7 @@ public class VillagerController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -76,12 +76,12 @@ public class VillagerController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -144,13 +144,13 @@ public class VillagerController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -193,7 +193,7 @@ public class VillagerController extends MobEntityController {
public void M() {
super.M();
if (npc != null) {
- NMS.setHeadYaw(this, yaw);
+ NMS.setHeadYaw(getBukkitEntity(), yaw);
npc.update();
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/WitchController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitchController.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/entity/WitchController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitchController.java
index 7a42a4a72..87890f57c 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/WitchController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitchController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityWitch;
@@ -43,7 +42,7 @@ public class WitchController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class WitchController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -123,13 +122,13 @@ public class WitchController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
@@ -185,7 +184,7 @@ public class WitchController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/WitherController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitherController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/WitherController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitherController.java
index 706481324..29647b1dd 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/WitherController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WitherController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityWither;
import net.minecraft.server.v1_10_R1.NBTTagCompound;
@@ -41,18 +40,18 @@ public class WitherController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -104,7 +103,7 @@ public class WitherController extends MobEntityController {
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/WolfController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WolfController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/WolfController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WolfController.java
index d8510230e..00e4e6a7a 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/WolfController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/WolfController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityWolf;
@@ -43,7 +42,7 @@ public class WolfController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -67,12 +66,12 @@ public class WolfController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -135,13 +134,13 @@ public class WolfController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/ZombieController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ZombieController.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/entity/ZombieController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ZombieController.java
index 2cac438ce..8c28a4a34 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/ZombieController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/ZombieController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity;
+package net.citizensnpcs.nms.v1_10_R1.entity;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -10,10 +10,9 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCEnderTeleportEvent;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
import net.minecraft.server.v1_10_R1.EntityZombie;
@@ -43,7 +42,7 @@ public class ZombieController extends MobEntityController {
super(world);
this.npc = (CitizensNPC) npc;
if (npc != null) {
- NMS.clearGoals(goalSelector, targetSelector);
+ NMSImpl.clearGoals(goalSelector, targetSelector);
}
}
@@ -56,12 +55,12 @@ public class ZombieController extends MobEntityController {
@Override
protected SoundEffect bV() {
- return NMS.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bV(), NPC.DEATH_SOUND_METADATA);
}
@Override
protected SoundEffect bW() {
- return NMS.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.bW(), NPC.HURT_SOUND_METADATA);
}
@Override
@@ -123,13 +122,13 @@ public class ZombieController extends MobEntityController {
if (npc == null || !npc.isFlyable()) {
super.g(f, f1);
} else {
- NMS.flyingMoveLogic(this, f, f1);
+ NMSImpl.flyingMoveLogic(this, f, f1);
}
}
@Override
protected SoundEffect G() {
- return NMS.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
+ return NMSImpl.getSoundEffect(npc, super.G(), NPC.AMBIENT_SOUND_METADATA);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/AreaEffectCloudController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/AreaEffectCloudController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/AreaEffectCloudController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/AreaEffectCloudController.java
index 1914d9ec0..fb8962388 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/AreaEffectCloudController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/AreaEffectCloudController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,8 +9,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityAreaEffectCloud;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ArmorStandController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ArmorStandController.java
similarity index 95%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/ArmorStandController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ArmorStandController.java
index 2a0a66690..68858b50d 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ArmorStandController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ArmorStandController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -11,10 +11,10 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityArmorStand;
import net.minecraft.server.v1_10_R1.EntityHuman;
@@ -135,7 +135,7 @@ public class ArmorStandController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/BoatController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java
similarity index 94%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/BoatController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java
index ea1861019..ded276917 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/BoatController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/BoatController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,10 +9,10 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityBoat;
import net.minecraft.server.v1_10_R1.NBTTagCompound;
@@ -109,7 +109,7 @@ public class BoatController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/DragonFireballController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/DragonFireballController.java
similarity index 94%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/DragonFireballController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/DragonFireballController.java
index eb9119eec..f7b5c1087 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/DragonFireballController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/DragonFireballController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,10 +9,10 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityDragonFireball;
import net.minecraft.server.v1_10_R1.NBTTagCompound;
@@ -121,7 +121,7 @@ public class DragonFireballController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/EggController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java
similarity index 98%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/EggController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java
index ab653f142..7a4b0b439 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/EggController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EggController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/EnderCrystalController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/EnderCrystalController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java
index 46d467ac4..816cd9925 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/EnderCrystalController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderCrystalController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityEnderCrystal;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/EnderPearlController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderPearlController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/EnderPearlController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderPearlController.java
index 86b84f0ea..2d44f1430 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/EnderPearlController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderPearlController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,8 +9,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityEnderPearl;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/EnderSignalController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/EnderSignalController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java
index a61186d08..b496a33b6 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/EnderSignalController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/EnderSignalController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityEnderSignal;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ExperienceOrbController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ExperienceOrbController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/ExperienceOrbController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ExperienceOrbController.java
index ebb78293b..977c968b8 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ExperienceOrbController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ExperienceOrbController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityExperienceOrb;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/FallingBlockController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FallingBlockController.java
similarity index 97%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/FallingBlockController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FallingBlockController.java
index eb1e61d12..9dbe3db9c 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/FallingBlockController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FallingBlockController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -14,10 +14,10 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.AbstractEntityController;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.Block;
import net.minecraft.server.v1_10_R1.Blocks;
@@ -123,7 +123,7 @@ public class FallingBlockController extends AbstractEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/FireworkController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/FireworkController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java
index d35baf7a4..a2156391a 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/FireworkController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FireworkController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityFireworks;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/FishingHookController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FishingHookController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/FishingHookController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FishingHookController.java
index 6f3e286a3..f46775a3f 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/FishingHookController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/FishingHookController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,8 +9,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityFishingHook;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ItemController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java
similarity index 98%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/ItemController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java
index 89b31c58b..ae37c9a6e 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ItemController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ItemFrameController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemFrameController.java
similarity index 97%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/ItemFrameController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemFrameController.java
index 0a74dad2a..3f3b9fd52 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ItemFrameController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemFrameController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -12,8 +12,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.BlockPosition;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/LargeFireballController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java
similarity index 94%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/LargeFireballController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java
index cad7aa032..4d68b32b8 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/LargeFireballController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LargeFireballController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,10 +9,10 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityLargeFireball;
import net.minecraft.server.v1_10_R1.NBTTagCompound;
@@ -95,7 +95,7 @@ public class LargeFireballController extends MobEntityController {
if (npc == null) {
super.setSize(f, f1);
} else {
- NMS.setSize(this, f, f1, justCreated);
+ NMSImpl.setSize(this, f, f1, justCreated);
}
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/LeashController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LeashController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/LeashController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LeashController.java
index 9e8fa149d..cfedbe134 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/LeashController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/LeashController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityLeash;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartChestController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartChestController.java
similarity index 94%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartChestController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartChestController.java
index 7baf68670..0d3a37df7 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartChestController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartChestController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,10 +9,10 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.DamageSource;
import net.minecraft.server.v1_10_R1.EntityMinecartChest;
@@ -102,7 +102,7 @@ public class MinecartChestController extends MobEntityController {
public void m() {
if (npc != null) {
npc.update();
- NMS.minecartItemLogic(this);
+ NMSImpl.minecartItemLogic(this);
} else {
super.m();
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartCommandController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartCommandController.java
similarity index 94%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartCommandController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartCommandController.java
index c6f0172c7..445e6340e 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartCommandController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartCommandController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,10 +9,10 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.DamageSource;
import net.minecraft.server.v1_10_R1.EntityMinecartCommandBlock;
@@ -102,7 +102,7 @@ public class MinecartCommandController extends MobEntityController {
public void m() {
if (npc != null) {
npc.update();
- NMS.minecartItemLogic(this);
+ NMSImpl.minecartItemLogic(this);
} else {
super.m();
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartFurnaceController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartFurnaceController.java
similarity index 94%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartFurnaceController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartFurnaceController.java
index c39eaa06f..56284d3a8 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartFurnaceController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartFurnaceController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,10 +9,10 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.DamageSource;
import net.minecraft.server.v1_10_R1.EntityMinecartFurnace;
@@ -102,7 +102,7 @@ public class MinecartFurnaceController extends MobEntityController {
public void m() {
if (npc != null) {
npc.update();
- NMS.minecartItemLogic(this);
+ NMSImpl.minecartItemLogic(this);
} else {
super.m();
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartHopperController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartHopperController.java
similarity index 93%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartHopperController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartHopperController.java
index 66c1ceb76..4578b8268 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartHopperController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartHopperController.java
@@ -1,14 +1,14 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.DamageSource;
import net.minecraft.server.v1_10_R1.EntityMinecartHopper;
@@ -90,7 +90,7 @@ public class MinecartHopperController extends MobEntityController {
public void m() {
if (npc != null) {
npc.update();
- NMS.minecartItemLogic(this);
+ NMSImpl.minecartItemLogic(this);
} else {
super.m();
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartRideableController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartRideableController.java
similarity index 94%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartRideableController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartRideableController.java
index e18aac881..c2e3c6c16 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartRideableController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartRideableController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,10 +9,10 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.DamageSource;
import net.minecraft.server.v1_10_R1.EntityMinecartRideable;
@@ -102,7 +102,7 @@ public class MinecartRideableController extends MobEntityController {
public void m() {
if (npc != null) {
npc.update();
- NMS.minecartItemLogic(this);
+ NMSImpl.minecartItemLogic(this);
} else {
super.m();
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartSpawnerController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartSpawnerController.java
similarity index 93%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartSpawnerController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartSpawnerController.java
index 0d836337c..82d60d921 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartSpawnerController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartSpawnerController.java
@@ -1,14 +1,14 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.DamageSource;
import net.minecraft.server.v1_10_R1.EntityMinecartMobSpawner;
@@ -90,7 +90,7 @@ public class MinecartSpawnerController extends MobEntityController {
public void m() {
if (npc != null) {
npc.update();
- NMS.minecartItemLogic(this);
+ NMSImpl.minecartItemLogic(this);
} else {
super.m();
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartTNTController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartTNTController.java
similarity index 93%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartTNTController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartTNTController.java
index cf8cccb77..9a1a80720 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/MinecartTNTController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/MinecartTNTController.java
@@ -1,14 +1,14 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
-import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.DamageSource;
import net.minecraft.server.v1_10_R1.EntityMinecartTNT;
@@ -90,7 +90,7 @@ public class MinecartTNTController extends MobEntityController {
public void m() {
if (npc != null) {
npc.update();
- NMS.minecartItemLogic(this);
+ NMSImpl.minecartItemLogic(this);
} else {
super.m();
}
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/PaintingController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/PaintingController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java
index e3a2475f6..2ecf66082 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/PaintingController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/PaintingController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityPainting;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ShulkerBulletController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ShulkerBulletController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/ShulkerBulletController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ShulkerBulletController.java
index fa84f939e..6176bbd2a 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ShulkerBulletController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ShulkerBulletController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,8 +9,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityShulkerBullet;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/SmallFireballController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SmallFireballController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/SmallFireballController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SmallFireballController.java
index 59c687e93..639aa91b6 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/SmallFireballController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SmallFireballController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,8 +9,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntitySmallFireball;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/SnowballController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/SnowballController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java
index 7fb06caca..308dc6fa9 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/SnowballController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SnowballController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntitySnowball;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/SpectralArrowController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SpectralArrowController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/SpectralArrowController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SpectralArrowController.java
index 997602c9b..01d8bcba4 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/SpectralArrowController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/SpectralArrowController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,8 +9,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntitySpectralArrow;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/TNTPrimedController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/TNTPrimedController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java
index b678d9ec1..5a9184c1a 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/TNTPrimedController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TNTPrimedController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityTNTPrimed;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ThrownExpBottleController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownExpBottleController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/ThrownExpBottleController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownExpBottleController.java
index f9012c9de..ad31c4359 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ThrownExpBottleController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownExpBottleController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,8 +9,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityThrownExpBottle;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ThrownPotionController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownPotionController.java
similarity index 97%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/ThrownPotionController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownPotionController.java
index a59ca9a86..0e329971f 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/ThrownPotionController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ThrownPotionController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,8 +9,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityPotion;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/TippedArrowController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TippedArrowController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/TippedArrowController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TippedArrowController.java
index 9fda3a3b9..2c81ed49e 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/TippedArrowController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/TippedArrowController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
@@ -9,8 +9,8 @@ import org.bukkit.util.Vector;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityTippedArrow;
diff --git a/src/main/java/net/citizensnpcs/npc/entity/nonliving/WitherSkullController.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java
similarity index 96%
rename from src/main/java/net/citizensnpcs/npc/entity/nonliving/WitherSkullController.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java
index 506b2abe9..8702abf84 100644
--- a/src/main/java/net/citizensnpcs/npc/entity/nonliving/WitherSkullController.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/WitherSkullController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.npc.entity.nonliving;
+package net.citizensnpcs.nms.v1_10_R1.entity.nonliving;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.MobEntityController;
import net.citizensnpcs.npc.CitizensNPC;
-import net.citizensnpcs.npc.MobEntityController;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.EntityWitherSkull;
diff --git a/src/main/java/net/citizensnpcs/npc/network/EmptyChannel.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptyChannel.java
similarity index 97%
rename from src/main/java/net/citizensnpcs/npc/network/EmptyChannel.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptyChannel.java
index 9abf72d51..f034fb273 100644
--- a/src/main/java/net/citizensnpcs/npc/network/EmptyChannel.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptyChannel.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.network;
+package net.citizensnpcs.nms.v1_10_R1.network;
import io.netty.channel.AbstractChannel;
import io.netty.channel.Channel;
diff --git a/src/main/java/net/citizensnpcs/npc/network/EmptyNetHandler.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptyNetHandler.java
similarity index 92%
rename from src/main/java/net/citizensnpcs/npc/network/EmptyNetHandler.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptyNetHandler.java
index baa4235b2..2bb552136 100644
--- a/src/main/java/net/citizensnpcs/npc/network/EmptyNetHandler.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptyNetHandler.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.network;
+package net.citizensnpcs.nms.v1_10_R1.network;
import net.minecraft.server.v1_10_R1.EntityPlayer;
import net.minecraft.server.v1_10_R1.MinecraftServer;
diff --git a/src/main/java/net/citizensnpcs/npc/network/EmptyNetworkManager.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptyNetworkManager.java
similarity index 73%
rename from src/main/java/net/citizensnpcs/npc/network/EmptyNetworkManager.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptyNetworkManager.java
index 831dba71e..161331bb8 100644
--- a/src/main/java/net/citizensnpcs/npc/network/EmptyNetworkManager.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptyNetworkManager.java
@@ -1,15 +1,15 @@
-package net.citizensnpcs.npc.network;
+package net.citizensnpcs.nms.v1_10_R1.network;
import java.io.IOException;
-import net.citizensnpcs.util.NMS;
+import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
import net.minecraft.server.v1_10_R1.EnumProtocolDirection;
import net.minecraft.server.v1_10_R1.NetworkManager;
public class EmptyNetworkManager extends NetworkManager {
public EmptyNetworkManager(EnumProtocolDirection flag) throws IOException {
super(flag);
- NMS.initNetworkManager(this);
+ NMSImpl.initNetworkManager(this);
}
@Override
diff --git a/src/main/java/net/citizensnpcs/npc/network/EmptySocket.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptySocket.java
similarity index 91%
rename from src/main/java/net/citizensnpcs/npc/network/EmptySocket.java
rename to src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptySocket.java
index 0a81fe224..eb6f7f02c 100644
--- a/src/main/java/net/citizensnpcs/npc/network/EmptySocket.java
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/network/EmptySocket.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.npc.network;
+package net.citizensnpcs.nms.v1_10_R1.network;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
diff --git a/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java b/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java
new file mode 100644
index 000000000..c0f5eec94
--- /dev/null
+++ b/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java
@@ -0,0 +1,1271 @@
+package net.citizensnpcs.nms.v1_10_R1.util;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.net.SocketAddress;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.Sound;
+import org.bukkit.World;
+import org.bukkit.boss.BarColor;
+import org.bukkit.boss.BarStyle;
+import org.bukkit.boss.BossBar;
+import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
+import org.bukkit.craftbukkit.v1_10_R1.CraftSound;
+import org.bukkit.craftbukkit.v1_10_R1.CraftWorld;
+import org.bukkit.craftbukkit.v1_10_R1.boss.CraftBossBar;
+import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
+import org.bukkit.craftbukkit.v1_10_R1.entity.CraftWither;
+import org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory;
+import org.bukkit.entity.EntityType;
+import org.bukkit.entity.FishHook;
+import org.bukkit.entity.Horse;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.Tameable;
+import org.bukkit.entity.Wither;
+import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
+import org.bukkit.inventory.meta.SkullMeta;
+import org.bukkit.plugin.PluginLoadOrder;
+
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.mojang.authlib.GameProfile;
+import com.mojang.authlib.GameProfileRepository;
+import com.mojang.authlib.HttpAuthenticationService;
+import com.mojang.authlib.minecraft.MinecraftSessionService;
+import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
+import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService;
+import com.mojang.authlib.yggdrasil.response.MinecraftProfilePropertiesResponse;
+import com.mojang.util.UUIDTypeAdapter;
+
+import net.citizensnpcs.Settings.Setting;
+import net.citizensnpcs.api.ai.NavigatorParameters;
+import net.citizensnpcs.api.ai.event.CancelReason;
+import net.citizensnpcs.api.command.exception.CommandException;
+import net.citizensnpcs.api.npc.NPC;
+import net.citizensnpcs.api.npc.NPCRegistry;
+import net.citizensnpcs.api.util.Messaging;
+import net.citizensnpcs.nms.v1_10_R1.entity.BatController;
+import net.citizensnpcs.nms.v1_10_R1.entity.BlazeController;
+import net.citizensnpcs.nms.v1_10_R1.entity.CaveSpiderController;
+import net.citizensnpcs.nms.v1_10_R1.entity.ChickenController;
+import net.citizensnpcs.nms.v1_10_R1.entity.CowController;
+import net.citizensnpcs.nms.v1_10_R1.entity.CreeperController;
+import net.citizensnpcs.nms.v1_10_R1.entity.EnderDragonController;
+import net.citizensnpcs.nms.v1_10_R1.entity.EndermanController;
+import net.citizensnpcs.nms.v1_10_R1.entity.EndermiteController;
+import net.citizensnpcs.nms.v1_10_R1.entity.EntityHumanNPC;
+import net.citizensnpcs.nms.v1_10_R1.entity.GhastController;
+import net.citizensnpcs.nms.v1_10_R1.entity.GiantController;
+import net.citizensnpcs.nms.v1_10_R1.entity.GuardianController;
+import net.citizensnpcs.nms.v1_10_R1.entity.HorseController;
+import net.citizensnpcs.nms.v1_10_R1.entity.HumanController;
+import net.citizensnpcs.nms.v1_10_R1.entity.IronGolemController;
+import net.citizensnpcs.nms.v1_10_R1.entity.MagmaCubeController;
+import net.citizensnpcs.nms.v1_10_R1.entity.MushroomCowController;
+import net.citizensnpcs.nms.v1_10_R1.entity.OcelotController;
+import net.citizensnpcs.nms.v1_10_R1.entity.PigController;
+import net.citizensnpcs.nms.v1_10_R1.entity.PigZombieController;
+import net.citizensnpcs.nms.v1_10_R1.entity.PolarBearController;
+import net.citizensnpcs.nms.v1_10_R1.entity.RabbitController;
+import net.citizensnpcs.nms.v1_10_R1.entity.SheepController;
+import net.citizensnpcs.nms.v1_10_R1.entity.ShulkerController;
+import net.citizensnpcs.nms.v1_10_R1.entity.SilverfishController;
+import net.citizensnpcs.nms.v1_10_R1.entity.SkeletonController;
+import net.citizensnpcs.nms.v1_10_R1.entity.SlimeController;
+import net.citizensnpcs.nms.v1_10_R1.entity.SnowmanController;
+import net.citizensnpcs.nms.v1_10_R1.entity.SpiderController;
+import net.citizensnpcs.nms.v1_10_R1.entity.SquidController;
+import net.citizensnpcs.nms.v1_10_R1.entity.VillagerController;
+import net.citizensnpcs.nms.v1_10_R1.entity.WitchController;
+import net.citizensnpcs.nms.v1_10_R1.entity.WitherController;
+import net.citizensnpcs.nms.v1_10_R1.entity.WolfController;
+import net.citizensnpcs.nms.v1_10_R1.entity.ZombieController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.AreaEffectCloudController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.ArmorStandController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.BoatController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.DragonFireballController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.EggController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.EnderCrystalController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.EnderPearlController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.EnderSignalController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.FallingBlockController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.FireworkController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.FishingHookController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.ItemController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.ItemFrameController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.LargeFireballController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.LeashController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.MinecartChestController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.MinecartCommandController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.MinecartFurnaceController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.MinecartHopperController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.MinecartRideableController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.MinecartTNTController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.PaintingController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.ShulkerBulletController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.SmallFireballController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.SnowballController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.SpectralArrowController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.TNTPrimedController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.ThrownExpBottleController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.ThrownPotionController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.TippedArrowController;
+import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.WitherSkullController;
+import net.citizensnpcs.nms.v1_10_R1.network.EmptyChannel;
+import net.citizensnpcs.npc.EntityControllers;
+import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
+import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
+import net.citizensnpcs.npc.ai.NPCHolder;
+import net.citizensnpcs.npc.skin.SkinnableEntity;
+import net.citizensnpcs.util.BoundingBox;
+import net.citizensnpcs.util.Messages;
+import net.citizensnpcs.util.NMS;
+import net.citizensnpcs.util.NMSBridge;
+import net.citizensnpcs.util.PlayerAnimation;
+import net.citizensnpcs.util.PlayerUpdateTask;
+import net.citizensnpcs.util.Util;
+import net.minecraft.server.v1_10_R1.AttributeInstance;
+import net.minecraft.server.v1_10_R1.AxisAlignedBB;
+import net.minecraft.server.v1_10_R1.Block;
+import net.minecraft.server.v1_10_R1.BlockPosition;
+import net.minecraft.server.v1_10_R1.BossBattleServer;
+import net.minecraft.server.v1_10_R1.ControllerJump;
+import net.minecraft.server.v1_10_R1.CrashReport;
+import net.minecraft.server.v1_10_R1.CrashReportSystemDetails;
+import net.minecraft.server.v1_10_R1.DamageSource;
+import net.minecraft.server.v1_10_R1.DataWatcherObject;
+import net.minecraft.server.v1_10_R1.EnchantmentManager;
+import net.minecraft.server.v1_10_R1.EnderDragonBattle;
+import net.minecraft.server.v1_10_R1.Entity;
+import net.minecraft.server.v1_10_R1.EntityEnderDragon;
+import net.minecraft.server.v1_10_R1.EntityFishingHook;
+import net.minecraft.server.v1_10_R1.EntityHorse;
+import net.minecraft.server.v1_10_R1.EntityHuman;
+import net.minecraft.server.v1_10_R1.EntityInsentient;
+import net.minecraft.server.v1_10_R1.EntityLiving;
+import net.minecraft.server.v1_10_R1.EntityMinecartAbstract;
+import net.minecraft.server.v1_10_R1.EntityPlayer;
+import net.minecraft.server.v1_10_R1.EntityPolarBear;
+import net.minecraft.server.v1_10_R1.EntityRabbit;
+import net.minecraft.server.v1_10_R1.EntityTameableAnimal;
+import net.minecraft.server.v1_10_R1.EntityTracker;
+import net.minecraft.server.v1_10_R1.EntityTrackerEntry;
+import net.minecraft.server.v1_10_R1.EntityTypes;
+import net.minecraft.server.v1_10_R1.EntityWither;
+import net.minecraft.server.v1_10_R1.GenericAttributes;
+import net.minecraft.server.v1_10_R1.MathHelper;
+import net.minecraft.server.v1_10_R1.MinecraftKey;
+import net.minecraft.server.v1_10_R1.MobEffects;
+import net.minecraft.server.v1_10_R1.NavigationAbstract;
+import net.minecraft.server.v1_10_R1.NetworkManager;
+import net.minecraft.server.v1_10_R1.Packet;
+import net.minecraft.server.v1_10_R1.PacketPlayOutEntityTeleport;
+import net.minecraft.server.v1_10_R1.PacketPlayOutPlayerInfo;
+import net.minecraft.server.v1_10_R1.PathfinderGoalSelector;
+import net.minecraft.server.v1_10_R1.ReportedException;
+import net.minecraft.server.v1_10_R1.SoundEffect;
+import net.minecraft.server.v1_10_R1.Vec3D;
+import net.minecraft.server.v1_10_R1.WorldServer;
+
+@SuppressWarnings("unchecked")
+public class NMSImpl implements NMSBridge {
+ public NMSImpl() {
+ loadEntityTypes();
+ }
+
+ @Override
+ public boolean addEntityToWorld(org.bukkit.entity.Entity entity, SpawnReason custom) {
+ return getHandle(entity).world.addEntity(getHandle(entity), custom);
+ }
+
+ @Override
+ public void addOrRemoveFromPlayerList(org.bukkit.entity.Entity entity, boolean remove) {
+ if (entity == null)
+ return;
+ EntityHuman handle = (EntityHuman) getHandle(entity);
+ if (handle.world == null)
+ return;
+ if (remove) {
+ handle.world.players.remove(handle);
+ } else if (!handle.world.players.contains(handle)) {
+ handle.world.players.add(handle);
+ }
+ PlayerUpdateTask.addOrRemove(entity, remove);
+ }
+
+ @Override
+ public void attack(LivingEntity attacker, LivingEntity btarget) {
+ EntityLiving handle = getHandle(attacker);
+ EntityLiving target = getHandle(btarget);
+ if (handle instanceof EntityPlayer) {
+ EntityPlayer humanHandle = (EntityPlayer) handle;
+ humanHandle.attack(target);
+ PlayerAnimation.ARM_SWING.play(humanHandle.getBukkitEntity());
+ return;
+ }
+ AttributeInstance attackDamage = handle.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE);
+ float f = (float) (attackDamage == null ? 1 : attackDamage.getValue());
+ int i = 0;
+
+ if (target instanceof EntityLiving) {
+ f += EnchantmentManager.a(handle.getItemInMainHand(), target.getMonsterType());
+ i += EnchantmentManager.a(handle);
+ }
+
+ boolean flag = target.damageEntity(DamageSource.mobAttack(handle), f);
+
+ if (!flag)
+ return;
+ if (i > 0) {
+ target.g(-Math.sin(handle.yaw * Math.PI / 180.0F) * i * 0.5F, 0.1D,
+ Math.cos(handle.yaw * Math.PI / 180.0F) * i * 0.5F);
+ handle.motX *= 0.6D;
+ handle.motZ *= 0.6D;
+ }
+
+ int fireAspectLevel = EnchantmentManager.getFireAspectEnchantmentLevel(handle);
+
+ if (fireAspectLevel > 0) {
+ target.setOnFire(fireAspectLevel * 4);
+ }
+ }
+
+ @Override
+ public GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) throws Exception {
+ if (Bukkit.isPrimaryThread())
+ throw new IllegalStateException("NMS.fillProfileProperties cannot be invoked from the main thread.");
+
+ MinecraftSessionService sessionService = ((CraftServer) Bukkit.getServer()).getServer().ay();
+
+ YggdrasilAuthenticationService auth = ((YggdrasilMinecraftSessionService) sessionService)
+ .getAuthenticationService();
+
+ URL url = HttpAuthenticationService.constantURL("https://sessionserver.mojang.com/session/minecraft/profile/"
+ + UUIDTypeAdapter.fromUUID(profile.getId()));
+
+ url = HttpAuthenticationService.concatenateURL(url, "unsigned=" + !requireSecure);
+
+ MinecraftProfilePropertiesResponse response = (MinecraftProfilePropertiesResponse) MAKE_REQUEST.invoke(auth,
+ url, null, MinecraftProfilePropertiesResponse.class);
+ if (response == null)
+ return profile;
+
+ GameProfile result = new GameProfile(response.getId(), response.getName());
+ result.getProperties().putAll(response.getProperties());
+ profile.getProperties().putAll(response.getProperties());
+
+ return result;
+ }
+
+ @Override
+ public BossBar getBossBar(org.bukkit.entity.Entity entity) {
+ BossBattleServer bserver = null;
+ try {
+ if (entity.getType() == EntityType.WITHER) {
+ bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity));
+ } else if (entity.getType() == EntityType.ENDER_DRAGON) {
+ bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD
+ .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity)));
+ }
+ } catch (Exception e) {
+ }
+ if (bserver == null) {
+ return null;
+ }
+ BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
+ try {
+ CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver);
+ } catch (Exception e) {
+ }
+ return ret;
+ }
+
+ @Override
+ public BoundingBox getBoundingBox(org.bukkit.entity.Entity handle) {
+ AxisAlignedBB bb = NMSImpl.getHandle(handle).getBoundingBox();
+ return new BoundingBox(bb.a, bb.b, bb.c, bb.d, bb.e, bb.f);
+ }
+
+ @Override
+ public GameProfileRepository getGameProfileRepository() {
+ return ((CraftServer) Bukkit.getServer()).getServer().getGameProfileRepository();
+ }
+
+ @Override
+ public float getHorizontalMovement(org.bukkit.entity.Entity entity) {
+ if (!entity.getType().isAlive())
+ return Float.NaN;
+ EntityLiving handle = NMSImpl.getHandle((LivingEntity) entity);
+ return handle.bg;
+ }
+
+ @Override
+ public NPC getNPC(org.bukkit.entity.Entity entity) {
+ return getHandle(entity) instanceof NPCHolder ? ((NPCHolder) getHandle(entity)).getNPC() : null;
+ }
+
+ @Override
+ public List getPassengers(org.bukkit.entity.Entity entity) {
+ return Lists.transform(NMSImpl.getHandle(entity).passengers, new Function() {
+ @Override
+ public org.bukkit.entity.Entity apply(Entity input) {
+ return input.getBukkitEntity();
+ }
+ });
+ }
+
+ @Override
+ public GameProfile getProfile(SkullMeta meta) {
+ if (SKULL_PROFILE_FIELD == null) {
+ try {
+ SKULL_PROFILE_FIELD = meta.getClass().getDeclaredField("profile");
+ SKULL_PROFILE_FIELD.setAccessible(true);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+ try {
+ return (GameProfile) SKULL_PROFILE_FIELD.get(meta);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ @Override
+ public String getSound(String flag) throws CommandException {
+ try {
+ String ret = CraftSound.getSound(Sound.valueOf(flag.toUpperCase()));
+ if (ret == null)
+ throw new CommandException(Messages.INVALID_SOUND);
+ return ret;
+ } catch (Exception e) {
+ throw new CommandException(Messages.INVALID_SOUND);
+ }
+ }
+
+ @Override
+ public float getSpeedFor(NPC npc) {
+ if (!npc.isSpawned() || !(npc.getEntity() instanceof LivingEntity))
+ return DEFAULT_SPEED;
+ EntityLiving handle = NMSImpl.getHandle((LivingEntity) npc.getEntity());
+ if (handle == null)
+ return DEFAULT_SPEED;
+ return DEFAULT_SPEED;
+ // return (float)
+ // handle.getAttributeInstance(GenericAttributes.d).getValue();
+ }
+
+ @Override
+ public float getStepHeight(org.bukkit.entity.Entity entity) {
+ return NMSImpl.getHandle(entity).P;
+ }
+
+ @Override
+ public MCNavigator getTargetNavigator(final org.bukkit.entity.Entity entity, final Location dest,
+ final NavigatorParameters params) {
+ net.minecraft.server.v1_10_R1.Entity raw = getHandle(entity);
+ raw.onGround = true;
+ // not sure of a better way around this - if onGround is false, then
+ // navigation won't execute, and calling entity.move doesn't
+ // entirely fix the problem.
+ final NavigationAbstract navigation = NMSImpl.getNavigation(entity);
+ float oldWidth = raw.width;
+ if (raw instanceof EntityHorse) {
+ raw.width = Math.min(0.99f, oldWidth);
+ }
+ navigation.a(dest.getX(), dest.getY(), dest.getZ(), params.speed());
+ raw.width = oldWidth; // minecraft requires that an entity fit onto both blocks if width >= 1f, but we'd
+ // prefer to make it just fit on 1 so hack around it a bit.
+ final CancelReason initial;
+ if (NMSImpl.isNavigationFinished(navigation)) {
+ initial = CancelReason.STUCK;
+ } else {
+ initial = null;
+ }
+ return new MCNavigator() {
+ float lastSpeed = params.speed();
+ CancelReason reason = initial;
+
+ @Override
+ public CancelReason getCancelReason() {
+ return reason;
+ }
+
+ @Override
+ public void stop() {
+ stopNavigation(navigation);
+ }
+
+ @Override
+ public boolean update() {
+ if (params.speed() != lastSpeed) {
+ Messaging.debug("Repathfinding " + ((NPCHolder) entity).getNPC().getId() + " due to speed change");
+ navigation.a(dest.getX(), dest.getY(), dest.getZ(), params.speed());
+ lastSpeed = params.speed();
+ }
+ navigation.a(params.speed());
+ return NMSImpl.isNavigationFinished(navigation);
+ }
+ };
+ }
+
+ @Override
+ public TargetNavigator getTargetNavigator(org.bukkit.entity.Entity entity, org.bukkit.entity.Entity target,
+ NavigatorParameters parameters) {
+ return getNavigation(entity) == null ? null
+ : new NavigationFieldWrapper(getNavigation(entity), entity, target, parameters);
+ }
+
+ @Override
+ public org.bukkit.entity.Entity getVehicle(org.bukkit.entity.Entity entity) {
+ Entity e = NMSImpl.getHandle(entity).getVehicle();
+ return e == NMSImpl.getHandle(entity) ? null : e.getBukkitEntity();
+ }
+
+ @Override
+ public float getVerticalMovement(org.bukkit.entity.Entity entity) {
+ if (!entity.getType().isAlive())
+ return Float.NaN;
+ EntityLiving handle = NMSImpl.getHandle((LivingEntity) entity);
+ return handle.bf;
+ }
+
+ @Override
+ public boolean isOnGround(org.bukkit.entity.Entity entity) {
+ return NMSImpl.getHandle(entity).onGround;
+ }
+
+ private void loadEntityTypes() {
+ EntityControllers.setEntityControllerForType(EntityType.AREA_EFFECT_CLOUD, AreaEffectCloudController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ARROW, TippedArrowController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ARMOR_STAND, ArmorStandController.class);
+ EntityControllers.setEntityControllerForType(EntityType.BAT, BatController.class);
+ EntityControllers.setEntityControllerForType(EntityType.BLAZE, BlazeController.class);
+ EntityControllers.setEntityControllerForType(EntityType.BOAT, BoatController.class);
+ EntityControllers.setEntityControllerForType(EntityType.CAVE_SPIDER, CaveSpiderController.class);
+ EntityControllers.setEntityControllerForType(EntityType.CHICKEN, ChickenController.class);
+ EntityControllers.setEntityControllerForType(EntityType.COW, CowController.class);
+ EntityControllers.setEntityControllerForType(EntityType.CREEPER, CreeperController.class);
+ EntityControllers.setEntityControllerForType(EntityType.DRAGON_FIREBALL, DragonFireballController.class);
+ EntityControllers.setEntityControllerForType(EntityType.DROPPED_ITEM, ItemController.class);
+ EntityControllers.setEntityControllerForType(EntityType.EGG, EggController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ENDER_CRYSTAL, EnderCrystalController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ENDER_DRAGON, EnderDragonController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ENDER_PEARL, EnderPearlController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ENDER_SIGNAL, EnderSignalController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ENDERMAN, EndermanController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ENDERMITE, EndermiteController.class);
+ EntityControllers.setEntityControllerForType(EntityType.FALLING_BLOCK, FallingBlockController.class);
+ EntityControllers.setEntityControllerForType(EntityType.FIREWORK, FireworkController.class);
+ EntityControllers.setEntityControllerForType(EntityType.FIREBALL, LargeFireballController.class);
+ EntityControllers.setEntityControllerForType(EntityType.FISHING_HOOK, FishingHookController.class);
+ EntityControllers.setEntityControllerForType(EntityType.GHAST, GhastController.class);
+ EntityControllers.setEntityControllerForType(EntityType.GIANT, GiantController.class);
+ EntityControllers.setEntityControllerForType(EntityType.GUARDIAN, GuardianController.class);
+ EntityControllers.setEntityControllerForType(EntityType.HORSE, HorseController.class);
+ EntityControllers.setEntityControllerForType(EntityType.IRON_GOLEM, IronGolemController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ITEM_FRAME, ItemFrameController.class);
+ EntityControllers.setEntityControllerForType(EntityType.LEASH_HITCH, LeashController.class);
+ EntityControllers.setEntityControllerForType(EntityType.LINGERING_POTION, ThrownPotionController.class);
+ EntityControllers.setEntityControllerForType(EntityType.MAGMA_CUBE, MagmaCubeController.class);
+ EntityControllers.setEntityControllerForType(EntityType.MINECART, MinecartRideableController.class);
+ EntityControllers.setEntityControllerForType(EntityType.MINECART_CHEST, MinecartChestController.class);
+ EntityControllers.setEntityControllerForType(EntityType.MINECART_COMMAND, MinecartCommandController.class);
+ EntityControllers.setEntityControllerForType(EntityType.MINECART_FURNACE, MinecartFurnaceController.class);
+ EntityControllers.setEntityControllerForType(EntityType.MINECART_HOPPER, MinecartHopperController.class);
+ EntityControllers.setEntityControllerForType(EntityType.MINECART_TNT, MinecartTNTController.class);
+ EntityControllers.setEntityControllerForType(EntityType.MUSHROOM_COW, MushroomCowController.class);
+ EntityControllers.setEntityControllerForType(EntityType.OCELOT, OcelotController.class);
+ EntityControllers.setEntityControllerForType(EntityType.PAINTING, PaintingController.class);
+ EntityControllers.setEntityControllerForType(EntityType.PIG, PigController.class);
+ EntityControllers.setEntityControllerForType(EntityType.PIG_ZOMBIE, PigZombieController.class);
+ EntityControllers.setEntityControllerForType(EntityType.POLAR_BEAR, PolarBearController.class);
+ EntityControllers.setEntityControllerForType(EntityType.PLAYER, HumanController.class);
+ EntityControllers.setEntityControllerForType(EntityType.RABBIT, RabbitController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SHEEP, SheepController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SHULKER, ShulkerController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SHULKER_BULLET, ShulkerBulletController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SILVERFISH, SilverfishController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SKELETON, SkeletonController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SLIME, SlimeController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SMALL_FIREBALL, SmallFireballController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SNOWBALL, SnowballController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SNOWMAN, SnowmanController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SPECTRAL_ARROW, SpectralArrowController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SPIDER, SpiderController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SPLASH_POTION, ThrownPotionController.class);
+ EntityControllers.setEntityControllerForType(EntityType.SQUID, SquidController.class);
+ EntityControllers.setEntityControllerForType(EntityType.TIPPED_ARROW, TippedArrowController.class);
+ EntityControllers.setEntityControllerForType(EntityType.THROWN_EXP_BOTTLE, ThrownExpBottleController.class);
+ EntityControllers.setEntityControllerForType(EntityType.PRIMED_TNT, TNTPrimedController.class);
+ EntityControllers.setEntityControllerForType(EntityType.VILLAGER, VillagerController.class);
+ EntityControllers.setEntityControllerForType(EntityType.WOLF, WolfController.class);
+ EntityControllers.setEntityControllerForType(EntityType.WITCH, WitchController.class);
+ EntityControllers.setEntityControllerForType(EntityType.WITHER, WitherController.class);
+ EntityControllers.setEntityControllerForType(EntityType.WITHER_SKULL, WitherSkullController.class);
+ EntityControllers.setEntityControllerForType(EntityType.ZOMBIE, ZombieController.class);
+ }
+
+ @Override
+ public void loadPlugins() {
+ ((CraftServer) Bukkit.getServer()).enablePlugins(PluginLoadOrder.POSTWORLD);
+ }
+
+ @Override
+ public void look(org.bukkit.entity.Entity entity, float yaw, float pitch) {
+ Entity handle = NMSImpl.getHandle(entity);
+ if (handle == null)
+ return;
+ yaw = Util.clampYaw(yaw);
+ handle.yaw = yaw;
+ setHeadYaw(entity, yaw);
+ handle.pitch = pitch;
+ }
+
+ @Override
+ public void look(org.bukkit.entity.Entity from, org.bukkit.entity.Entity to) {
+ Entity handle = NMSImpl.getHandle(from), target = NMSImpl.getHandle(to);
+ if (handle instanceof EntityInsentient) {
+ ((EntityInsentient) handle).getControllerLook().a(target, 10.0F, ((EntityInsentient) handle).N());
+ } else if (handle instanceof EntityHumanNPC) {
+ ((EntityHumanNPC) handle).setTargetLook(target, 10F, 40F);
+ }
+ }
+
+ @Override
+ public void mount(org.bukkit.entity.Entity entity, org.bukkit.entity.Entity passenger) {
+ if (NMSImpl.getHandle(passenger) == null)
+ return;
+ NMSImpl.getHandle(passenger).startRiding(NMSImpl.getHandle(entity));
+ }
+
+ @Override
+ public void openHorseScreen(Horse horse, Player equipper) {
+ EntityLiving handle = NMSImpl.getHandle(horse);
+ EntityLiving equipperHandle = NMSImpl.getHandle(equipper);
+ if (handle == null || equipperHandle == null)
+ return;
+ boolean wasTamed = horse.isTamed();
+ horse.setTamed(true);
+ ((EntityHorse) handle).a((EntityHuman) equipperHandle);
+ horse.setTamed(wasTamed);
+ }
+
+ @Override
+ public void playAnimation(PlayerAnimation animation, Player player, int radius) {
+ PlayerAnimationImpl.play(animation, player, radius);
+ }
+
+ @Override
+ public void registerEntityClass(Class> clazz) {
+ if (ENTITY_CLASS_TO_INT == null || ENTITY_CLASS_TO_INT.containsKey(clazz))
+ return;
+ Class> search = clazz;
+ while ((search = search.getSuperclass()) != null && Entity.class.isAssignableFrom(search)) {
+ if (!ENTITY_CLASS_TO_INT.containsKey(search))
+ continue;
+ int code = ENTITY_CLASS_TO_INT.get(search);
+ ENTITY_CLASS_TO_INT.put(clazz, code);
+ ENTITY_CLASS_TO_NAME.put(clazz, ENTITY_CLASS_TO_NAME.get(search));
+ return;
+ }
+ throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString());
+ }
+
+ @Override
+ public void removeFromServerPlayerList(Player player) {
+ EntityPlayer handle = (EntityPlayer) NMSImpl.getHandle(player);
+ ((CraftServer) Bukkit.getServer()).getHandle().players.remove(handle);
+ }
+
+ @Override
+ public void removeFromWorld(org.bukkit.entity.Entity entity) {
+ Preconditions.checkNotNull(entity);
+
+ Entity nmsEntity = ((CraftEntity) entity).getHandle();
+ nmsEntity.world.removeEntity(nmsEntity);
+ }
+
+ @Override
+ public void removeHookIfNecessary(NPCRegistry npcRegistry, FishHook entity) {
+ EntityFishingHook hook = (EntityFishingHook) NMSImpl.getHandle(entity);
+ if (hook.hooked == null)
+ return;
+ NPC npc = npcRegistry.getNPC(hook.hooked.getBukkitEntity());
+ if (npc == null)
+ return;
+ if (npc.isProtected()) {
+ hook.hooked = null;
+ hook.die();
+ }
+ }
+
+ @Override
+ public void replaceTrackerEntry(Player player) {
+ WorldServer server = (WorldServer) NMSImpl.getHandle(player).getWorld();
+ EntityTrackerEntry entry = server.getTracker().trackedEntities.get(player.getEntityId());
+ if (entry == null)
+ return;
+ PlayerlistTrackerEntry replace = new PlayerlistTrackerEntry(entry);
+ server.getTracker().trackedEntities.a(player.getEntityId(), replace);
+ if (TRACKED_ENTITY_SET != null) {
+ try {
+ Set