// code from goatstore // api: https://store.agi.bd const fs = require("fs-extra"); const path = require("path"); const https = require("https"); module.exports = { config: { name: "help", aliases: ["menu", "commands", "cmd"], version: "7.0.0", author: "saju*developer", // 👑 ব্র্যান্ডের ক্রিয়েটর shortDescription: "Show all commands", longDescription: "Show all commands in ultra-premium luxury UI with visuals", category: "system", // 💡 GOATBOT V2 এরর ফিক্স: এখানে অবজেক্ট এবং সঠিক ল্যাঙ্গুয়েজ কি ব্যবহার করা হয়েছে guide: { en: "{pn}help [command name]" } }, onStart: async function ({ message, args, prefix }) { const allCommands = global.GoatBot.commands; // ⚡ লাক্সারি ম্যাথ ফন্ট মডিফায়ার্স const fancyFont = (str) => str.replace(/[A-Za-z]/g, (c) => { const map = { 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:"𝐳" }; return map[c] || c; }); const categoryFont = (str) => str.split("").map(c => { const map = { 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:"𝐙" }; return map[c] || c; }).join(""); const cleanCategoryName = (text) => text ? text.toLowerCase() : "others"; // 💡 FIX: GoatBot V2-এ args একটি ডিরেক্ট স্ট্রিং, তাই args[0] এর বদলে ডিরেক্ট args চেক করতে হবে if (args && args.trim().length > 0) { const cmdName = args.trim().toLowerCase(); const cmd = allCommands.get(cmdName) || [...allCommands.values()].find(c => c.config.aliases?.includes(cmdName)); if (!cmd) return message.reply( `❌ ${fancyFont(`Command '${cmdName}' not found!`)} ➤ Try ${prefix}help to see full list` ); const rawGuide = (cmd.config.guide && typeof cmd.config.guide === "object") ? (cmd.config.guide.en || cmd.config.guide.vi || "") : (typeof cmd.config.guide === "string" ? cmd.config.guide : ""); const usage = rawGuide ? rawGuide.replace("{pn}", cmd.config.name) : cmd.config.name; const infoMsg = `┏━━━━━━━━━━━━━┓ 🧩 𝐂𝐌𝐃 𝐈𝐍𝐅𝐎 ┗━━━━━━━━━━━━━┛ ✦ Name : ${cmd.config.name} ✦ Aliases : ${cmd.config.aliases?.join(", ") || "None"} ✦ Category : ${categoryFont((cmd.config.category || "Others").toUpperCase())} ✦ Version : v${cmd.config.version || "1.0"} ✦ Author : ${cmd.config.author || "Unknown"} ✦ Usage : ${prefix}${usage} ━━━━━━━━━━━━━━━ 📝 ${(cmd.config.longDescription || cmd.config.shortDescription || "No description")}`; return message.reply(infoMsg); } const categories = {}; for (const [name, cmd] of allCommands) { const cat = cleanCategoryName(cmd.config.category); if (!categories[cat]) categories[cat] = []; categories[cat].push(name); } // ─── আল্ট্রা প্রিমিয়াম ও সাইবার ম্যাট্রিক্স ইন্টারফেস লেআউট ─── let msg = `╭────────── ✧ ──────────╮\n` + ` ✨ 𝗖𝗢𝗠𝗠𝗔𝗡𝗗 𝗠𝗔𝗧𝗥𝗜𝗫 ✨\n` + `╰────────── ✧ ──────────╯\n\n` + ` 👋 𝖧𝖾𝗅𝗅𝗈, 𝖴𝗌𝖾𝗋! 𝖨 𝖺𝗆 𝗒𝗈𝗎𝗋 𝖺𝖽𝗏𝖺𝗇𝖼𝖾𝖉 𝖺𝗌𝗌𝗂𝗌𝗍𝖺𝗇𝗍.\n` + ` 𝖢𝗎𝗋𝗋𝖾𝗇𝗍 𝖳𝗁𝗋𝖾𝖺𝖽 𝖯𝗋𝖾𝖿𝗂𝗑 ⪧ [ ${prefix} ]\n` + ` 📊 𝖳𝗈𝗍𝖺𝗅 𝖬𝗈𝖽𝗎𝗅𝖾𝗌 Loaded ⪧ ${allCommands.size} Active\n\n`; for (const cat of Object.keys(categories).sort()) { const catTitle = categoryFont(cat.toUpperCase()); msg += `🪐 𝗦𝗠𝗔𝗥𝗧 𝗕𝗟𝗢𝗖𝗞: ${catTitle}\n`; const formattedCmds = categories[cat].sort().map(name => `\`${name}\``).join(" • "); msg += ` ⪧ ${formattedCmds}\n\n`; } msg += `⚡ ───────────────────── ⚡\n`; msg += `💡 𝖨𝗇𝗌𝗉𝖾𝖼𝗍 𝖳𝗈index: 𝖳𝗒𝗉𝖾 \`${prefix}help [cmd]\`\n`; msg += `👑 𝖣𝖾𝗏𝖾𝗅𝗈𝗉𝖾𝖽 𝖻𝗒 saju*developer`; // 🖼️ ইমেজ/পিকচার লিংক সেটআপ (এখানে আপনার পছন্দমত ইমেজের ডিরেক্ট লিংক বসাতে পারেন) const imageURLs = [ "https://i.imgur.com/Xw6JTfn.gif", "https://i.imgur.com/mW0yjZb.gif", "https://i.imgur.com/KQBcxOV.gif" ]; const randomImageURL = imageURLs[Math.floor(Math.random() * imageURLs.length)]; const cacheFolder = path.join(__dirname, "cache"); // সেফলি ক্যাশ ফোল্ডার তৈরি করার মেথড if (!fs.existsSync(cacheFolder)) { fs.mkdirSync(cacheFolder, { recursive: true }); } const imageName = path.basename(randomImageURL.split(/[?#]/)[0]) || "menu_pic.gif"; const imagePath = path.join(cacheFolder, imageName); if (!fs.existsSync(imagePath)) { try { await downloadFile(randomImageURL, imagePath); } catch (e) { // ইমেজ ডাউনলোড কোনো কারণে ফেইল হলে বট ক্র্যাশ না করে শুধু মেইন টেক্সট মেনু পাঠিয়ে দেবে return message.reply({ body: msg }); } } // ইমেজ সহ সম্পূর্ণ প্রফেশনাল রেসপন্স ডেলিভারি return message.reply({ body: msg, attachment: fs.createReadStream(imagePath) }); } }; // সেফ এবং নন-ব্লকিং ফাইল ডাউনলোড ইঞ্জিন function downloadFile(url, dest) { return new Promise((resolve, reject) => { const file = fs.createWriteStream(dest); https.get(url, (res) => { if (res.statusCode !== 200) { fs.unlink(dest, () => {}); return reject(); } res.pipe(file); file.on("finish", () => file.close(resolve)); }).on("error", (err) => { fs.unlink(dest, () => {}); reject(err); }); }); }