1+ const { zokou } = require ( "../framework/zokou" ) ;
2+
3+ // 𝐆𝐫𝐨𝐮𝐩 𝐌𝐨𝐝𝐮𝐥𝐞
4+ // 𝐏𝐨𝐰𝐞𝐫𝐞𝐝 𝐛𝐲 𝐱𝐡_𝐜𝐥𝐢𝐧𝐭𝐨𝐧
5+
6+ zokou (
7+ {
8+ nomCom : "leave" ,
9+ categorie : "Group" ,
10+ reaction : "👋" ,
11+ } ,
12+ async ( dest , zk , commandeOptions ) => {
13+ const { repondre, ms, arg, prefixe, isOwner } = commandeOptions ;
14+
15+ // Owner-only check for leaving all groups
16+ const ownerNumber = "254735342808@s.whatsapp.net" ;
17+ const sender = ms . key . participant || ms . key . remoteJid ;
18+
19+ // Handle .leaveall
20+ if ( arg [ 0 ] === "all" ) {
21+ if ( sender !== ownerNumber && ! isOwner ) {
22+ return repondre (
23+ `𝐎𝐰𝐧𝐞𝐫 𝐎𝐧𝐥𝐲!\n\n𝐓𝐡𝐢𝐇 𝐜𝐨𝐦𝐦𝐚𝐧𝐝 𝐢𝐇 𝐫𝐞𝐇𝐭𝐫𝐢𝐜𝐭𝐞𝐝 𝐭𝐨 𝐭𝐡𝐞 𝐛𝐨𝐭 𝐨𝐰𝐧𝐞𝐫 (@${ ownerNumber . split ( "@" ) [ 0 ] } ).`
24+ ) ;
25+ }
26+
27+ try {
28+ repondre ( `𝐁𝐲𝐞 𝐞𝐯𝐞𝐫𝐲𝐨𝐧𝐞! 𝐓𝐡𝐞 𝐛𝐨𝐭 𝐰𝐢𝐥𝐥 𝐥𝐞𝐚𝐯𝐞 𝐚𝐥𝐥 𝐠𝐫𝐨𝐮𝐩𝐇...` ) ;
29+
30+ // Fetch all group chats (assumed method; adjust if needed)
31+ const chats = await zk . chats ; // Hypothetical; replace with Zokou's method
32+ const groupChats = Object . values ( chats ) . filter (
33+ ( chat ) => chat . id . endsWith ( "g.us" ) && ! chat . readOnly
34+ ) ;
35+
36+ for ( let i = 0 ; i < groupChats . length ; i ++ ) {
37+ await zk . sendMessage (
38+ groupChats [ i ] . id ,
39+ { text : "𝐁𝐲𝐞 𝐞𝐯𝐞𝐫𝐲𝐨𝐧𝐞! 𝐓𝐡𝐞 𝐛𝐨𝐭 𝐢𝐇 𝐥𝐞𝐚𝐯𝐢𝐧𝐠 𝐭𝐡𝐢𝐇 𝐠𝐫𝐨𝐮𝐩." } ,
40+ { quoted : ms }
41+ ) ;
42+ await zk . groupLeave ( groupChats [ i ] . id ) ;
43+ await delay ( i * 2000 ) ; // 2-second delay between leaves
44+ }
45+
46+ repondre ( `𝐒𝐮𝐜𝐜𝐞𝐇𝐇! 𝐋𝐞𝐟𝐭 𝐚𝐥𝐥 𝐠𝐫𝐨𝐮𝐩𝐇.` ) ;
47+ } catch ( error ) {
48+ console . error ( "Error leaving all groups:" , error ) ;
49+ repondre ( `𝐄𝐫𝐫𝐨𝐫 𝐥𝐞𝐚𝐯𝐢𝐧𝐠 𝐚𝐥𝐥 𝐠𝐫𝐨𝐮𝐩𝐇: ${ error . message } ` ) ;
50+ }
51+ return ;
52+ }
53+
54+ // Handle specific group JID
55+ if ( arg . length > 0 ) {
56+ const groupJid = arg [ 0 ] ;
57+ if ( ! groupJid . endsWith ( "g.us" ) ) {
58+ return repondre (
59+ `𝐈𝐧𝐯𝐚𝐥𝐢𝐝 𝐠𝐫𝐨𝐮𝐩 𝐉𝐈𝐃! 𝐔𝐇𝐞 𝐚 𝐟𝐨𝐫𝐦𝐚𝐭 𝐥𝐢𝐤𝐞 𝟏𝟐𝟑𝟒𝟓𝟔@g.us`
60+ ) ;
61+ }
62+
63+ try {
64+ // Check if bot is in the group (assumed method)
65+ const chats = await zk . chats ;
66+ const groupExists = Object . values ( chats ) . some (
67+ ( chat ) => chat . id === groupJid
68+ ) ;
69+ if ( ! groupExists ) {
70+ return repondre (
71+ `𝐁𝐨𝐭 𝐢𝐇 𝐧𝐨𝐭 𝐢𝐧 𝐭𝐡𝐚𝐭 𝐠𝐫𝐨𝐮𝐩 (${ groupJid } )!`
72+ ) ;
73+ }
74+
75+ await zk . sendMessage (
76+ groupJid ,
77+ { text : "𝐁𝐲𝐞 𝐞𝐯𝐞𝐫𝐲𝐨𝐧𝐞! 𝐓𝐡𝐞 � b𝐨𝐭 𝐢𝐇 𝐥𝐞𝐚𝐯𝐢𝐧� g 𝐭𝐡𝐢� H � g𝐫𝐨𝐮𝐩." } ,
78+ { quoted : ms }
79+ ) ;
80+ await zk . groupLeave ( groupJid ) ;
81+ repondre ( `𝐒𝐮𝐜𝐜𝐞𝐇𝐇! 𝐋𝐞𝐟𝐭 𝐭𝐡𝐞 𝐠𝐫𝐨𝐮𝐩 ${ groupJid } .` ) ;
82+ } catch ( error ) {
83+ console . error ( "Error leaving specific group:" , error ) ;
84+ repondre ( `𝐄𝐫𝐫𝐨𝐫 𝐥𝐞𝐚𝐯𝐢𝐧� g � g𝐫𝐨𝐮𝐩 ${ groupJid } : ${ error . message } ` ) ;
85+ }
86+ return ;
87+ }
88+
89+ // Leave current group (default)
90+ if ( ! ms . key . remoteJid . endsWith ( "g.us" ) ) {
91+ return repondre (
92+ `𝐓𝐡𝐢� H 𝐜𝐨𝐦𝐦𝐚𝐧𝐝 𝐜𝐚𝐧 𝐨𝐧𝐥𝐲 𝐛𝐞 𝐮� H𝐞𝐝 𝐢𝐧 � g𝐫𝐨𝐮𝐩� H!`
93+ ) ;
94+ }
95+
96+ try {
97+ await zk . sendMessage (
98+ dest ,
99+ { text : "𝐁𝐲𝐞 𝐞𝐯� e𝐫𝐲𝐨𝐧𝐞! 𝐓𝐡� e 𝐛𝐨𝐭 𝐢� H 𝐥𝐞𝐚𝐯𝐢𝐧� g 𝐭𝐡𝐢� H � g𝐫𝐨𝐮𝐩." } ,
100+ { quoted : ms }
101+ ) ;
102+ await zk . groupLeave ( dest ) ;
103+ } catch ( error ) {
104+ console . error ( "Error leaving current group:" , error ) ;
105+ repondre (
106+ `𝐄𝐫𝐫𝐨𝐫 𝐥𝐞𝐚𝐯𝐢𝐧� g 𝐭𝐡𝐢� H � g𝐫𝐨𝐮𝐩: ${ error . message } `
107+ ) ;
108+ }
109+ }
110+ ) ;
111+
112+ module . exports = { zokou } ;
113+
114+ const delay = ( time ) => new Promise ( ( res ) => setTimeout ( res , time ) ) ;
0 commit comments