Block invalid item material AIR
This commit is contained in:
parent
11c48c4e09
commit
b930cb2460
|
@ -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().<String> 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();
|
||||
|
|
|
@ -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().<String> 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();
|
||||
|
|
|
@ -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().<String> 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();
|
||||
|
|
|
@ -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().<String> 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();
|
||||
|
|
|
@ -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().<String> 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();
|
||||
|
|
|
@ -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().<String> 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) {
|
||||
|
|
|
@ -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().<String> 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();
|
||||
|
|
|
@ -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().<String> 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();
|
||||
|
|
|
@ -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().<String> 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();
|
||||
|
|
Loading…
Reference in New Issue