const money = require("../../utils/money"); module.exports = { config: { name: "transfer", aliases: ["pay", "send", "give"], version: "1.0", author: "HR ID OY", countDown: 5, role: 0, shortDescription: { en: "Transfer your balance" }, longDescription: { en: "Transfer your balance to another user" }, category: "Game", guide: { en: "{pn} @mention\n{pn} (reply)\n{pn} " } }, onStart: async function ({ api, event, args }) { const { threadID, messageID, senderID, mentions, messageReply } = event; let targetID; let amount; // Reply if (messageReply) { targetID = messageReply.senderID; amount = parseInt(args[0]); } // Mention else if (Object.keys(mentions).length > 0) { targetID = Object.keys(mentions)[0]; amount = parseInt(args[0]); } // UID else if (args.length >= 2) { targetID = args[0]; amount = parseInt(args[1]); } else { return api.sendMessage( "šŸ’ø | Usage:\n\n• .transfer @mention\n• Reply: .transfer \n• .transfer ", threadID, messageID ); } if (targetID == senderID) return api.sendMessage( "āŒ | You can't transfer money to yourself.", threadID, messageID ); if (isNaN(amount) || amount <= 0) return api.sendMessage( "āŒ | Please enter a valid amount.", threadID, messageID ); const senderBalance = await money.get(senderID); if (senderBalance < amount) return api.sendMessage( `āŒ | You don't have enough balance.\n\nšŸ’° Balance: ${senderBalance}$`, threadID, messageID ); // Transfer await money.subtract(senderID, amount); await money.add(targetID, amount); let senderName = "Unknown"; let receiverName = "Unknown"; try { const info = await api.getUserInfo([senderID, targetID]); senderName = info[senderID]?.name || "Unknown"; receiverName = info[targetID]?.name || "Unknown"; } catch (e) {} api.sendMessage( `šŸ’ø š—•š—”š—Ÿš—”š—”š—–š—˜ š—§š—„š—”š—”š—¦š—™š—˜š—„ šŸ‘¤ From: ${senderName} šŸŽÆ To: ${receiverName} šŸ’µ Amount: ${amount}$ ━━━━━━━━━━━━━━ šŸ’° Your Balance: ${await money.get(senderID)}$ šŸ’³ Receiver Balance: ${await money.get(targetID)}$ āœ… Transfer Successful!`, threadID, messageID ); } };