@@ -3,41 +3,52 @@ import fetch from "node-fetch";
33export const spamAdv = async ( sock , chatId , msg , text ) => {
44 try {
55 const arg = text . trim ( ) . split ( / \s + / ) ;
6- const lv = arg [ 1 ] ;
7- const exp = arg [ 2 ] ;
8- const max = arg [ 3 ] ;
9- const from = arg [ 4 ] ;
6+ const [ , lv , exp , max , from ] = arg ;
107
118 if ( ! lv || ! exp || ! max || ! from ) {
129 return await sock . sendMessage (
1310 chatId ,
1411 {
15- text : "Format salah. Masukan lv, exp, target level, dan bab setelah .spamadv\nContoh: .spamadv 177 0 315 11" ,
12+ text : "❌ * Format salah!*\n\nGunakan: `.spamadv <lv> < exp> <target_lv> < bab>`\n*Contoh:* ` .spamadv 177 0 315 11` " ,
1613 } ,
1714 { quoted : msg } ,
1815 ) ;
1916 }
2017
18+ // Validasi input harus angka
19+ if ( [ lv , exp , max , from ] . some ( ( v ) => isNaN ( Number ( v ) ) ) ) {
20+ return await sock . sendMessage (
21+ chatId ,
22+ { text : "❌ Semua parameter harus berupa angka." } ,
23+ { quoted : msg } ,
24+ ) ;
25+ }
26+
2127 const response = await fetch (
2228 `https://neuraapi.vercel.app/api/toram/spamadv?lv=${ lv } &exp=${ exp } &lvmx=${ max } &from=${ from } ` ,
2329 ) ;
2430
31+ if ( ! response . ok ) {
32+ return await sock . sendMessage (
33+ chatId ,
34+ { text : `❌ API error: ${ response . status } ${ response . statusText } ` } ,
35+ { quoted : msg } ,
36+ ) ;
37+ }
38+
2539 const jsonResponse = await response . json ( ) ;
2640
27- /**
28- * Penyesuaian Akses Data:
29- * Jika log menunjukkan [ { ... } ], maka data adalah array.
30- * Kita menggunakan jsonResponse.data[0] atau jsonResponse[0]
31- * tergantung pada pembungkus utama dari API tersebut.
32- */
41+ // Normalisasi: support array maupun object {data: ...}
3342 const result = Array . isArray ( jsonResponse )
3443 ? jsonResponse [ 0 ]
35- : jsonResponse . data ;
44+ : Array . isArray ( jsonResponse ?. data )
45+ ? jsonResponse . data [ 0 ]
46+ : ( jsonResponse ?. data ?? null ) ;
3647
3748 if ( ! result ) {
3849 return await sock . sendMessage (
3950 chatId ,
40- { text : "Gagal mendapatkan data: Struktur respons tidak dikenali." } ,
51+ { text : "❌ Gagal mendapatkan data: Struktur respons tidak dikenali." } ,
4152 { quoted : msg } ,
4253 ) ;
4354 }
@@ -47,31 +58,31 @@ export const spamAdv = async (sock, chatId, msg, text) => {
4758 ? result . progress
4859 . map (
4960 ( v ) =>
50- `Run ${ v . run } : Lv ${ v . level } (${ v . percent } %) — EXP: ${ v . currentExp ?. toLocaleString ( ) } ` ,
61+ `Run ${ v . run } : Lv ${ v . level } (${ v . percent } %) — EXP: ${ v . currentExp ?. toLocaleString ( ) ?? "0" } ` ,
5162 )
5263 . join ( "\n" )
5364 : "Tidak ada detail progres." ;
5465
55- const responseText = `*SPAM ADV CALCULATOR*
66+ const responseText = `*🗡️ SPAM ADV CALCULATOR*
5667━━━━━━━━━━━━━━━━━━
57- *Initial State:*
58- • Start Level : ${ result . startLevel } (${ result . startPercent } %)
59- • Target Level: ${ result . targetLevel }
68+ *📊 Initial State:*
69+ - Start Level : ${ result . startLevel } (${ result . startPercent } %)
70+ - Target Level : ${ result . targetLevel }
6071
61- *Calculation Result:*
62- • Runs Needed : ${ result . runs } x
63- • Final Level : ${ result . finalLevel } (${ result . finalPercent } %)
64- • Final EXP : ${ result . finalExp ?. toLocaleString ( ) || "0" }
65- • Reached : ${ result . reachedTarget ? "✅ Berhasil" : "❌ Belum Mencapai Target " }
72+ *📈 Calculation Result:*
73+ - Runs Needed : ${ result . runs } x
74+ - Final Level : ${ result . finalLevel } (${ result . finalPercent } %)
75+ - Final EXP : ${ result . finalExp ?. toLocaleString ( ) ?? "0" }
76+ - Reached : ${ result . reachedTarget ? "✅ Berhasil mencapai target! " : "❌ Belum mencapai target " }
6677━━━━━━━━━━━━━━━━━━
67- *Progress Detail:*
78+ *📋 Progress Detail:*
6879${ progressText } `;
6980
7081 await sock . sendMessage ( chatId , { text : responseText } , { quoted : msg } ) ;
7182 } catch ( err ) {
7283 await sock . sendMessage (
7384 chatId ,
74- { text : `Terjadi kesalahan sistem: ${ err . message } ` } ,
85+ { text : `⚠️ Terjadi kesalahan sistem: ${ err . message } ` } ,
7586 { quoted : msg } ,
7687 ) ;
7788 }
0 commit comments