case 'groupvcf':
case 'savegroup': {
if (!m.isGroup) return reply('❌ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴄᴀɴ ᴏɴʟʏ ʙᴇ ᴜsᴇᴅ ɪɴ ɢʀᴏᴜᴘs!');
if (!isCreator) return reply('ᴏᴡɴᴇʀ ᴏɴʟʏ.')
try {
reply('⏳ ғᴇᴛᴄʜɪɴɢ ɢʀᴏᴜᴘ ᴍᴇᴍʙᴇʀs...');
const groupMetadata = await nameless.groupMetadata(
m.chat);
const participants = groupMetadata.participants;
let vcardContent = '';
let contactCount = 0;
for (let participant of participants) {
const number = participant.id.split('@')[0];
const name = participant.notify || number;
vcardContent += BEGIN:VCARD
VERSION:3.0
FN:${name}
TEL;type=CELL;type=VOICE;waid=${number}:+${number}
END:VCARD
;
contactCount++;
}
const vcfBuffer = Buffer.from(vcardContent, 'utf-8');
await nameless.sendMessage(
m.chat, {
document: vcfBuffer,
fileName: ${groupMetadata.subject.replace(/[^a-zA-Z0-9]/g, '_')}_members.vcf,
mimetype: 'text/vcard',
caption: ✅ *ɢʀᴏᴜᴘ ᴄᴏɴᴛᴀᴄᴛs ᴇxᴘᴏʀᴛᴇᴅ!*
👥 *ɢʀᴏᴜᴘ:* ${groupMetadata.subject}
📊 *ᴛᴏᴛᴀʟ ᴍᴇᴍʙᴇʀs:* ${contactCount}
_ᴀʟʟ ɢʀᴏᴜᴘ ᴍᴇᴍʙᴇʀs sᴀᴠᴇᴅ ᴛᴏ ᴠᴄғ ғɪʟᴇ_
}, { quoted: m });
console.log(Group VCF generated: ${contactCount} members from ${groupMetadata.subject});
} catch (err) {
console.error('Group VCF Error:', err);
reply(❌ *ғᴀɪʟᴇᴅ ᴛᴏ ᴇxᴘᴏʀᴛ ɢʀᴏᴜᴘ ᴄᴏɴᴛᴀᴄᴛs*
ᴇʀʀᴏʀ: ${err.message});
}
}
break;
ᴄᴏᴘʏʀɪɢʜᴛ © ɴᴀᴍᴇʟᴇss ᴛᴇᴄʜ
ᴛʜɪs ᴄᴏɴᴛᴇɴᴛ ɪs ғᴏʀ ᴇᴅᴜᴄᴀᴛɪᴏɴᴀʟ ᴘᴜʀᴘᴏsᴇs ᴏɴʟʏ.
ᴅᴇᴠᴇʟᴏᴘᴇʀs & ᴄʟᴏɴᴇʀs: ᴘʟᴇᴀsᴇ ɢɪᴠᴇ ᴄʀᴇᴅɪᴛs.