public static String getEntityNameFromSpawnerNBT(Spawner spawner) {
		if (!(spawner.getType() == Material.MOB_SPAWNER)) {
			return null;
		}

		net.minecraft.server.v1_10_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(spawner);

		if (nmsStack.hasTag()) {
			NBTTagCompound tag = nmsStack.getTag();

			if (tag != null) {

				if (tag.hasKey("BlockEntityTag")) {
					NBTTagCompound blockEntityTag = tag.getCompound("BlockEntityTag");

					if (blockEntityTag.hasKey("SpawnPotentials")) {
						NBTTagList spawnPotentials = blockEntityTag.getList("SpawnPotentials", 10);
						if (!spawnPotentials.isEmpty()) {
							// TODO: show all entity types in mob spawner name
							NBTTagCompound entity = spawnPotentials.get(0).getCompound("Entity");
							return entity.getString("id");
						}
					}

				} else if (tag.hasKey("SpawnData")) {
					NBTTagCompound spawnData = tag.getCompound("SpawnData");
					if (spawnData.hasKey("id")) {
						return spawnData.getString("id");
					}

				}
			}
		}

		return null;
	}