@jojoxyz/condemnedforce-baileys
v2.3.0
Published
baileys modifikasi by jojo — stable lane, anti-overhit, fast replies, no dropped messages
Maintainers
Readme
bayilescondemnedforce
Baileys modifikasi by jojo. Versi 2.3.0 menambah fitur Cpxbail di atas jalur 2.2.x. JID nomor, ID 3EB0, anti-call, anti-overhit, dan banner naga tetap ada. Tidak ada fitur lama yang dihapus.
Yang baru
- Anti-overhit. Query IQ dibatasi (maks 3 sekaligus) dan query grup yang sama digabung, jadi bot tidak menembak server WhatsApp sampai putus.
- Balasan tetap cepat. Pesan reply, react, edit, delete, dan chat yang baru masuk lewat jalur prioritas. Broadcast/status menunggu di belakang.
- Tidak ada yang dibuang diam-diam. Antrian kirim tidak di-drop. Kalau socket sudah mati,
sendMessagemelempar error dan payload-nya ada disock.antiOverhit.drainFailed(). - Pesan masuk tidak nyangkut. Satu pesan rusak tidak menghentikan antrian offline. Kalau handler error, pesan tetap di-ack dan tetap di-emit supaya event berikutnya tidak hilang.
- Cache metadata grup 5 menit + lookup node lebih cepat, jadi balasan grup tidak nunggu IQ berulang.
- Hint reconnect di
connection.update:shouldReconnectdanreconnectDelayMs. Jangan loop reconnect kalau session sudah logout.
Fitur kirim yang sudah ada tetap jalan: button, list, interactive, album, payment, product, event, poll result, group story, sticker pack, newsletter, AI icon, edit/delete.
Cpxbail yang ditambah di 2.3.0
checkBanStatus(nomor)— cek akun aktif, banned, atau tidak terdaftar.- Username:
checkUsername,setUsername,deleteUsername,getMyUsername,setUsernamePin,findUserByUsername,fetchContactUsernames,getUsernameRecommendations,checkUsernameMulti. - Komunitas:
communityCreate,communityMetadata,communityCreateGroup,communityLinkGroup,communityParticipantsUpdate, dan method komunitas lain di socket. - GenAI:
sendTable,sendList,sendCodeBlock,sendLatex,sendLatexImage,sendRichMessage.html/map/imageUrlikutrichResponse. - Album bersih:
sendMessage(jid, { album: [{ image }, { video }], caption }). Metadata spam tidak dikirim. aiLabeldefault nyala untuk chat pribadi, termasuk@lid. Matikan denganaiLabel: false.noSelfSync: truetidak menyalin pesan ke device sendiri. Kalau lawan tidak punya device, kirim gagal dengan status 421, tidak diam-diam sukses.updateMemberLabel,sendMessageMembers.sock.lidMappingmenyimpan pasangan LID/nomor.sock.rateLimitertersedia, tidak menahan setiap kirim.connection.update.classifyDisconnectmemberi kategori putus.shouldReconnecttetap yang lama: 428 tetap reconnect, 440 tidak.
Yang ditambah:
mentionAllataumentions: ['@all']di grupexternalAdReplydi pesan biasacode,table,latex,richResponsesendStatusMention(content, jids)— status + mention, sudah di-paceupdateCallPrivacy,updateMessagesPrivacy,updateDisableLinkPreviewsPrivacy- JID masuk dinormalkan ke
[email protected]kalau WhatsApp kirim@lid. LID asli tetap dikey.remoteJidLid/key.participantLid. Case memakaimsg.senderataumsg.key.participant || msg.key.remoteJid. Pesan ephemeral, view-once, dan caption dibuka dulu supaya teksnya kebaca. Tombol native flow ikutbuttonsResponseMessage.selectedButtonId. - ID pesan baru format
3EB0...(prefixZ4PH-sudah diganti). - Anti-call nyala default: tolak telepon pribadi dan grup, plus set privasi panggilan
nonesaat konek. Matikan denganantiCall: false.
Pakai
const { default: makeWASocket, useMultiFileAuthState, DisconnectReason } = require('@jojoxyz/condemnedforce-baileys')
const { state, saveCreds } = await useMultiFileAuthState('./session')
const sock = makeWASocket({
auth: state,
// default sudah nyala. Matikan dengan antiOverhit: false
antiOverhit: {
replyGapMs: 30,
normalGapMs: 260,
bulkGapMs: 650
},
antiCall: false
})
sock.ev.on('creds.update', saveCreds)
sock.ev.on('connection.update', ({ connection, lastDisconnect, shouldReconnect, reconnectDelayMs }) => {
if (connection !== 'close') return
const code = lastDisconnect?.error?.output?.statusCode
if (shouldReconnect === false || code === DisconnectReason.loggedOut) return
setTimeout(start, reconnectDelayMs || 2000)
})
// balasan — jalur cepat, tidak nunggu antrian bulk
await sock.sendMessage(jid, { text: 'siap' }, { quoted: msg })
// sebut semua member grup
await sock.sendMessage(groupJid, { text: 'absen', mentionAll: true })
// bulk / status jangan disamakan kecepatannya dengan reply
await sock.sendMessage(jid, { text: 'promo' }, { priority: 'low' })
await sock.sendMessage(jid, {
code: { language: 'js', content: 'console.log(1)' },
text: 'contoh',
ai: true
})Kalau kirim gagal karena socket putus, jangan anggap pesannya hilang:
const missed = sock.antiOverhit.drainFailed()Panggil itu setelah socket baru open, lalu kirim ulang yang masih perlu.
Config anti-overhit
| Field | Default | Fungsi |
| --- | --- | --- |
| maxConcurrentQueries | 3 | batas IQ yang jalan bareng |
| replyGapMs | 30 | jeda balasan setelah burst |
| normalGapMs | 260 | jeda pesan biasa |
| bulkGapMs | 650 | jeda broadcast/status |
| burst | 4 | balasan pertama dalam 2 detik tanpa jeda |
| replyWindowMs | 45000 | chat yang baru ngechat dianggap reply |
| holdWhileOfflineMs | 2500 | tahan kirim sebentar kalau socket baru putus, lalu error (tidak di-drop diam-diam) |
sock.antiOverhit.stats() dan sock.queryLane.stats() buat pantau antrian.
