diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java index 6b5b1abff..443a62ba7 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/nonliving/ItemController.java @@ -15,6 +15,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.DespawnReason; import net.citizensnpcs.api.event.SpawnReason; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -39,6 +40,10 @@ public class ItemController extends AbstractEntityController { if (npc.data().has(NPC.ITEM_ID_METADATA)) { id = Material.getMaterial(npc.data(). get(NPC.ITEM_ID_METADATA)); } + if (id == Material.AIR) { + id = Material.STONE; + Messaging.severe(npc.getId(), "invalid Material: converted to stone"); + } final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data))); return handle.getBukkitEntity(); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemController.java index f6a9d956f..1d078e4ad 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/nonliving/ItemController.java @@ -15,6 +15,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.DespawnReason; import net.citizensnpcs.api.event.SpawnReason; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -39,6 +40,10 @@ public class ItemController extends AbstractEntityController { if (npc.data().has(NPC.ITEM_ID_METADATA)) { id = Material.getMaterial(npc.data(). get(NPC.ITEM_ID_METADATA)); } + if (id == Material.AIR) { + id = Material.STONE; + Messaging.severe(npc.getId(), "invalid Material: converted to stone"); + } final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data))); return handle.getBukkitEntity(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemController.java index db19d8b66..4c7d6d915 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/nonliving/ItemController.java @@ -15,6 +15,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.DespawnReason; import net.citizensnpcs.api.event.SpawnReason; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -39,6 +40,10 @@ public class ItemController extends AbstractEntityController { if (npc.data().has(NPC.ITEM_ID_METADATA)) { id = Material.getMaterial(npc.data(). get(NPC.ITEM_ID_METADATA)); } + if (id == Material.AIR) { + id = Material.STONE; + Messaging.severe(npc.getId(), "invalid Material: converted to stone"); + } final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data))); return handle.getBukkitEntity(); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java index f4cc7d39e..a21c0596c 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/ItemController.java @@ -15,6 +15,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.DespawnReason; import net.citizensnpcs.api.event.SpawnReason; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -39,6 +40,10 @@ public class ItemController extends AbstractEntityController { if (npc.data().has(NPC.ITEM_ID_METADATA)) { id = Material.getMaterial(npc.data(). get(NPC.ITEM_ID_METADATA)); } + if (id == Material.AIR) { + id = Material.STONE; + Messaging.severe(npc.getId(), "invalid Material: converted to stone"); + } final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data))); return handle.getBukkitEntity(); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java index dd3dcab80..24ff4c186 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/nonliving/ItemController.java @@ -15,6 +15,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.DespawnReason; import net.citizensnpcs.api.event.SpawnReason; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -41,6 +42,10 @@ public class ItemController extends AbstractEntityController { if (npc.data().has(NPC.ITEM_ID_METADATA)) { id = Material.getMaterial(npc.data(). get(NPC.ITEM_ID_METADATA)); } + if (id == Material.AIR) { + id = Material.STONE; + Messaging.severe(npc.getId(), "invalid Material: converted to stone"); + } final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data))); return handle.getBukkitEntity(); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java index 8a9e9ca6f..1120be6c6 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/nonliving/ItemController.java @@ -15,6 +15,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.DespawnReason; import net.citizensnpcs.api.event.SpawnReason; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -41,6 +42,10 @@ public class ItemController extends AbstractEntityController { if (npc.data().has(NPC.ITEM_ID_METADATA)) { id = Material.getMaterial(npc.data(). get(NPC.ITEM_ID_METADATA)); } + if (id == Material.AIR) { + id = Material.STONE; + Messaging.severe(npc.getId(), "invalid Material: converted to stone"); + } final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data))); return handle.getBukkitEntity(); @@ -79,14 +84,6 @@ public class ItemController extends AbstractEntityController { return npc == null ? super.d(save) : false; } - @Override - public void h(double x, double y, double z) { - Vector vector = Util.callPushEvent(npc, x, y, z); - if (vector != null) { - super.h(vector.getX(), vector.getY(), vector.getZ()); - } - } - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { @@ -100,6 +97,14 @@ public class ItemController extends AbstractEntityController { return npc; } + @Override + public void h(double x, double y, double z) { + Vector vector = Util.callPushEvent(npc, x, y, z); + if (vector != null) { + super.h(vector.getX(), vector.getY(), vector.getZ()); + } + } + @Override public void pickup(EntityHuman entityhuman) { if (npc == null) { diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java index 0f9dc228a..f382242af 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/nonliving/ItemController.java @@ -15,6 +15,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.DespawnReason; import net.citizensnpcs.api.event.SpawnReason; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -41,6 +42,10 @@ public class ItemController extends AbstractEntityController { if (npc.data().has(NPC.ITEM_ID_METADATA)) { id = Material.getMaterial(npc.data(). get(NPC.ITEM_ID_METADATA)); } + if (id == Material.AIR) { + id = Material.STONE; + Messaging.severe(npc.getId(), "invalid Material: converted to stone"); + } final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data))); return handle.getBukkitEntity(); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java index 9f16b3f3b..4e367b2ad 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/nonliving/ItemController.java @@ -14,6 +14,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.DespawnReason; import net.citizensnpcs.api.event.SpawnReason; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; @@ -41,6 +42,10 @@ public class ItemController extends AbstractEntityController { if (npc.data().has(NPC.ITEM_ID_METADATA)) { id = Material.getMaterial(npc.data(). get(NPC.ITEM_ID_METADATA)); } + if (id == Material.AIR) { + id = Material.STONE; + Messaging.severe(npc.getId(), "invalid Material: converted to stone"); + } final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data))); return handle.getBukkitEntity(); diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java index 1abc059a9..359c397f1 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/nonliving/ItemController.java @@ -15,6 +15,7 @@ import org.bukkit.util.Vector; import net.citizensnpcs.api.event.DespawnReason; import net.citizensnpcs.api.event.SpawnReason; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; @@ -39,6 +40,10 @@ public class ItemController extends AbstractEntityController { if (npc.data().has(NPC.ITEM_ID_METADATA)) { id = Material.getMaterial(npc.data(). get(NPC.ITEM_ID_METADATA)); } + if (id == Material.AIR) { + id = Material.STONE; + Messaging.severe(npc.getId(), "invalid Material: converted to stone"); + } final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data))); return handle.getBukkitEntity();