Wrap createEntity in BukkitWorld to detect corrupt entities.

This commit is contained in:
Matthew Miller 2018-08-05 14:24:09 +10:00
parent 334143357a
commit 88fc1771b5

View File

@ -111,12 +111,21 @@ public class BukkitWorld extends AbstractWorld {
public com.sk89q.worldedit.entity.Entity createEntity(com.sk89q.worldedit.util.Location location, BaseEntity entity) { public com.sk89q.worldedit.entity.Entity createEntity(com.sk89q.worldedit.util.Location location, BaseEntity entity) {
BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter();
if (adapter != null) { if (adapter != null) {
try {
Entity createdEntity = adapter.createEntity(BukkitAdapter.adapt(getWorld(), location), entity); Entity createdEntity = adapter.createEntity(BukkitAdapter.adapt(getWorld(), location), entity);
if (createdEntity != null) { if (createdEntity != null) {
return new BukkitEntity(createdEntity); return new BukkitEntity(createdEntity);
} else { } else {
return null; return null;
} }
} catch (Exception e) {
logger.warning("Corrupt entity found when creating: " + entity.getType().getId());
if (entity.getNbtData() != null) {
logger.warning(entity.getNbtData().toString());
}
e.printStackTrace();
return null;
}
} else { } else {
return null; return null;
} }