module.exports = { config: { name: "wingoMoney", aliases: ["wingo", "wg"], version: "1.8.0", author: "Rahat Mahmud | Azadx69x", role: 0, category: "game", shortDescription: "Wingo betting game", usages: "wg daily | wg bet | wg leaderboard" }, onStart: async function ({ api, event, args, prefix, usersData }) { const userID = event.senderID; let user = await usersData.get(userID) || {}; if (typeof user.money !== "number") user.money = 0; const styleText = (text) => { const bold = { "A":"š—”","B":"š—•","C":"š—–","D":"š——","E":"š—˜","F":"š—™","G":"š—š","H":"š—›","I":"š—œ","J":"š—","K":"š—ž","L":"š—Ÿ","M":"š— ", "N":"š—”","O":"š—¢","P":"š—£","Q":"š—¤","R":"š—„","S":"š—¦","T":"š—§","U":"š—Ø","V":"š—©","W":"š—Ŗ","X":"š—«","Y":"š—¬","Z":"š—­", "a":"š—®","b":"š—Æ","c":"š—°","d":"š—±","e":"š—²","f":"š—³","g":"š—“","h":"š—µ","i":"š—¶","j":"š—·","k":"š—ø","l":"š—¹","m":"š—ŗ", "n":"š—»","o":"š—¼","p":"š—½","q":"š—¾","r":"š—æ","s":"š˜€","t":"š˜","u":"š˜‚","v":"š˜ƒ","w":"š˜„","x":"š˜…","y":"š˜†","z":"š˜‡", "0":"šŸ¬","1":"šŸ­","2":"šŸ®","3":"šŸÆ","4":"šŸ°","5":"šŸ±","6":"šŸ²","7":"šŸ³","8":"šŸ“","9":"šŸµ", ".":"āˆ™","$":"$" }; return text.split("").map(c => bold[c] || c).join(""); }; const formatMoney = (n) => { let str; if (n >= 1_000_000) str = (n / 1_000_000).toFixed(2) + "M$"; else if (n >= 1_000) str = (n / 1_000).toFixed(2) + "K$"; else str = n + "$"; return styleText(str); }; if (args[0] === "daily") { if (Date.now() - (user.lastDaily || 0) < 86400000) return api.sendMessage(styleText("ā³ Daily already claimed!"), event.threadID); user.money += 100; user.lastDaily = Date.now(); await usersData.set(userID, user); return api.sendMessage( styleText(`šŸŽ Daily Reward: +100$\nšŸ’³ Balance: ${formatMoney(user.money)} (${styleText(user.money+"$")})`), event.threadID ); } if (args[0] === "leaderboard") { const all = await usersData.getAll(); const list = all .filter(u => typeof u.data?.money === "number") .sort((a, b) => b.data.money - a.data.money) .slice(0, 10); let msg = styleText("šŸ† Wingo Leaderboard šŸ†\n\n"); list.forEach((u, i) => { msg += styleText(`${i + 1}. ${u.userID} → ${formatMoney(u.data.money)}\n`); }); return api.sendMessage(msg, event.threadID); } if (args[0] === "bet") { const amount = Number(args[1]); const option = args[2]; if (!amount || amount <= 0) return api.sendMessage( styleText(`āŒ Invalid amount!\nUsage: ${prefix}wg bet `), event.threadID ); if (!["red", "green", "big", "small"].includes(option)) return api.sendMessage(styleText("āŒ Invalid option!"), event.threadID); if (user.money < amount) return api.sendMessage( styleText(`āŒ Not enough balance!\nšŸ’³ Balance: ${formatMoney(user.money)}`), event.threadID ); user.money -= amount; await usersData.set(userID, user); api.sendMessage(styleText("šŸŽ° Wingo started...\nā³ Wait 5 seconds"), event.threadID, async (err, info) => { if (err) return; setTimeout(async () => { const num = Math.floor(Math.random() * 10); const color = [1, 3, 7, 9].includes(num) ? "RED" : [2, 4, 6, 8].includes(num) ? "GREEN" : "VIOLET"; const size = num >= 5 ? "BIG" : "SMALL"; let resultMsg = styleText("ā”ā”ā”ā”ā”ā”šŸŽÆ Result ━━━━━┓\n"); resultMsg += styleText(`ā”ƒ šŸ”¢ Number: ${num}\n`); resultMsg += styleText(`ā”ƒ šŸŽØ Color: ${color}\n`); resultMsg += styleText(`ā”ƒ šŸ“ Size: ${size}\n`); resultMsg += styleText("ā”ƒ\n"); const win = option === color.toLowerCase() || option === size.toLowerCase(); if (win) { user.money += amount * 2; resultMsg += styleText(`ā”ƒ šŸŽ‰ You Win! ${amount}\n`); resultMsg += styleText(`ā”ƒ šŸ’³ Balance: ${formatMoney(user.money)} (${user.money}$)\n`); } else { resultMsg += styleText(`ā”ƒ 😢 You Lose! ${amount}\n`); resultMsg += styleText(`ā”ƒ šŸ’³ Balance: ${formatMoney(user.money)} (${user.money}$)\n`); } resultMsg += styleText("┗━━━━━━━━━━━━━━━━━┛"); await usersData.set(userID, user); api.editMessage(resultMsg, info.messageID, event.threadID); }, 5000); }); return; } return api.sendMessage( styleText( `šŸŽ° Wingo Menu\n\n` + `${prefix}wg daily\n` + `${prefix}wg bet \n` + `${prefix}wg leaderboard` ), event.threadID ); } };