/* Api Stalk Nickname Menggunakan https://ceknickname.my.id Silahkan Melakukan pendaftaran Terlebih Dahulu Selanjutnya Hubungi Admin Sertakan Username Yang Terdaftar */ const fetch = require('node-fetch'); const config = { domains: { primary: "https://ceknickname.my.id", fallback: "https://ceknickname.vercel.app" }, apis: { zenlessZonezero: { default: "zenless-zone-zero", alternatives: ["zenlesszonezero", "zzz"] } }, auth: { // dapatkan apikey dan username di https://ceknickname.my.id apiKey: global.apiKey, //"your-apikey", username: global.username //"your-username" } }; // ==================================== async function fetchWithFallback(game, params, usePrimaryDomain = true, apiIndex = -1) { if (!config.apis[game]) { return { code: 400, status: "false", message: `Game ${game} tidak didukung` }; } const domain = usePrimaryDomain ? config.domains.primary : config.domains.fallback; let apiEndpoint; if (apiIndex === -1) { apiEndpoint = config.apis[game].default; } else if (apiIndex < config.apis[game].alternatives.length) { apiEndpoint = config.apis[game].alternatives[apiIndex]; } else { if (usePrimaryDomain) { return fetchWithFallback(game, params, false, -1); } else { return { code: 503, status: "false", message: "Semua API tidak tersedia saat ini" }; } } const queryString = Object.keys(params) .map(key => `${key}=${encodeURIComponent(params[key])}`) .join('&'); const url = `${domain}/api/game/${apiEndpoint}?${queryString}`; try { const response = await fetch(url, { method: 'GET', headers: { 'x-api-key': config.auth.apiKey, 'x-username': config.auth.username } }); const data = await response.json(); if (response.ok && data.status !== "false") { return data; } else { return fetchWithFallback(game, params, usePrimaryDomain, apiIndex + 1); } } catch (error) { if (usePrimaryDomain) { return fetchWithFallback(game, params, false, -1); } else if (apiIndex < config.apis[game].alternatives.length - 1) { return fetchWithFallback(game, params, false, apiIndex + 1); } else { return { code: 500, status: "false", message: "Internal Server Error" }; } } } // ==================================== exports.stalkzzz = async (userId, zoneId) => { return new Promise(async (resolve) => { if (!userId || !zoneId) { return resolve({ code: 400, status: "false", message: "Format Salah! Silakan isi ID dan Zone" }); } try { const result = await fetchWithFallback('zenlessZonezero', { id: userId, zone: zoneId }); if (result.code === 404 || result.status === "false") { resolve({ code: 404, status: "false", creator: "ceknickname.vercel.app", message: "ID atau Zone tidak ditemukan" }); } else { resolve({ code: 200, status: "true", creator: "ceknickname.vercel.app", message: "ID berhasil ditemukan", data: { username: result.data?.username || "Unknown", user_id: userId, zone: zoneId } }); } } catch (error) { console.error('Error in stalkzzz:', error); resolve({ code: 500, status: "false", message: "Internal Server Error" }); } }); }; // ==================================== exports.getZzzZones = async () => { return new Promise(async (resolve) => { try { resolve({ status: true, creator: "ceknickname.vercel.app", message: "Zone ID berhasil ditemukan", data: [ { zoneId: "prod_gf_jp", name: "Asia" }, { zoneId: "prod_gf_us", name: "America" }, { zoneId: "prod_gf_eu", name: "Europe" }, { zoneId: "prod_gf_sg", name: "TW,HK,MO" } ] }); } catch (error) { console.error('Error fetching zones:', error); resolve({ status: false, message: "Error fetching zone data", data: [] }); } }); }; // ==================================== // Example usage in switch case case "stalkzzz": { if (!text) { return m.reply(`Example : stalkzzz 12345678 Asia`); } const { stalkzzz, getZzzZones } = require('./lib/stalkzzz'); const args = text.split(" "); const userId = args[0]; const zoneName = args.slice(1).join(" "); if (!zoneName) { return m.reply(`Example : stalkzzz userid region\nGunakan format yang benar!\n\nRegion yang tersedia:\n- Asia\n- America\n- Europe\n- TW,HK,MO`); } try { const zonesData = await getZzzZones(); if (!zonesData.status) { return m.reply("Terjadi kesalahan saat memuat data zone"); } const zoneInfo = zonesData.data.find(zone => zone.name.toLowerCase() === zoneName.toLowerCase()); if (!zoneInfo) { return m.reply(`Region tidak valid. Gunakan salah satu dari:\n- Asia\n- America\n- Europe\n- TW,HK,MO`); } const zoneId = zoneInfo.zoneId; let xst = "`"; const data = await stalkzzz(userId, zoneId); if (data.code === 200) { const regionName = zonesData.data.find(z => z.zoneId === data.data.zone)?.name || data.data.zone; m.reply(`๐Ÿ”Ž ${xst}Zenless Zone Zero${xst} ๐Ÿ” *ยป Nickname :* ${data.data.username} *ยป userId :* ${data.data.user_id} (${regionName})`); } else { m.reply(`Maaf, Tidak dapat menemukan nickname.`); } } catch (error) { console.error('Error in stalkzzz command:', error); m.reply("Terjadi kesalahan saat memproses permintaan"); } } break;