← back to browse
goat command

مساعدة

عرض قائمة المساعدة

0
views
0
likes
0
installs

Aliases: help, menu, commands, المساعدة, الاوامر, هيلب

raw source
const pageGifs = [
  // صورة الصفحة 1
  "https://media1.tenor.com/m/3DldX9fbQkEAAAAC/northern-blade-myra.gif", 
  // صورة الصفحة 2
  "https://media.tenor.com/h7Y69BW96Z0AAAAM/anime-balls.gif", 
  // صورة الصفحة 3
  "https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExa2VvY3lmdzlxeWJwMmpvbjhlajNnN2N2OTNpYjh4dWE1MmVsa25yYyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/4ilFRqgbzbx4c/giphy.gif", 
  // صورة الصفحة 4 (وما بعدها)
  "https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExb3I3aW02Y3I1eHplYnlwcnIyeDhmc3BsMm41dHAwY2duNXVyYTQxeiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3WnrqPEnnCQkTCWFrl/giphy.gif" 
];

// قاموس الشرح العربي الكامل لجميع الأوامر
const translations = {
  // ADMIN & SYSTEM
  cmd: "إدارة ملفات الأوامر",
  setting: "إعدادات البوت العامة",
  adminmention: "تنبيه المشرفين",
  anti_isis_leave: "منع الخروج التلقائي",
  autoreact: "تفاعل تلقائي",
  autoseen: "قراءة الرسائل تلقائياً",
  delete: "حذف أمر من البوت",
  fork: "نسخ مشروع البوت",
  goatstore: "متجر الأوامر",
  help: "عرض قائمة المساعدة",
  join: "انضمام عبر الرابط",
  up: "مدة التشغيل والأداء",

  // AI
  "4k": "ترقية الصورة لـ 4K",
  age: "تخمين العمر من الصورة",
  edit: "تعديل الصور بالذكاء",
  liner: "مساعد الذكاء Liner",
  prompt: "استخراج وصف الصورة",
  remini: "تحسين جودة الصور",
  weather: "حالة الطقس",
  webinfo: "جلب معلومات موقع",

  // AI-IMAGE
  creart: "توليد صور فنية",
  flux: "توليد صور واقعية",
  gcimg: "توليد غلاف للمجموعة",
  imagen3: "توليد صور Imagen 3",
  imgen: "إنشاء صورة من النص",
  poli: "صور بأسلوب Pollinations",
  sdxl: "توليد صور SDXL",
  weigen: "توليد صور بجودة عالية",

  // ANIME
  aniinfo: "معلومات أنمي",
  manga: "معلومات مانجا",

  // BIRTHDAY
  wish: "تهنئة عيد ميلاد",

  // BOX & BOX CHAT
  groupimage: "تغيير صورة المجموعة",
  groupname: "تغيير اسم المجموعة",
  activemember: "الأعضاء التفاعليين",
  adduser: "إضافة عضو للمجموعة",
  admin: "إدارة المشرفين",
  all: "الإشارة للجميع",
  allbox: "عرض كل المجموعات",
  antichangeinfobox: "حماية معلومات الجروب",
  autosetname: "تسمية تلقائية",
  baby: "البوت التفاعلي",
  badwords: "فلتر الكلمات المسيئة",
  ban: "حظر عضو",
  boxinfo: "معلومات المجموعة",
  busy: "وضع عدم الإزعاج",
  count: "إحصائيات الرسائل",
  emoji: "تغيير إيموجي الجروب",
  filteruser: "تصفية الحسابات الميتة",
  onlyadminbox: "قصر الأوامر عالمشرفين",
  refresh: "تحديث بيانات الجروب",
  rules: "قوانين المجموعة",
  sendnoti: "إرسال إشعار عام",
  setname: "تغيير اسم المجموعة",
  tag: "الإشارة للجميع",
  tid: "معرف المجموعة",
  unsend: "حذف رسالة البوت",
  warn: "تحذير عضو",

  // CONFIG
  prefix: "تغيير بادئة البوت",
  setalias: "اسم مستعار للأمر",

  // CONTACTS ADMIN
  callad: "التواصل مع المطور",

  // CUSTOM
  setleave: "رسالة المغادرة",
  setwelcome: "رسالة الترحيب",
  shortcut: "إنشاء اختصار",

  // ECONOMY
  balance: "الرصيد والمحفظة",
  bet: "مراهنة بالأموال",
  daily: "المكافأة اليومية",
  leaderboard: "أغنى الأعضاء",
  math: "مسابقة رياضيات",
  quiz: "أسئلة وأجوبة",
  slot: "لعبة الحظ",

  // FUN
  blur: "تغبيش الصور",
  butslap: "صفع العضو",
  buzz: "تنبيه هزاز",
  emojimix: "دمج إيموجيين",
  fakechat: "محادثة مفبركة",
  fakechat2: "محادثة مفبركة 2",
  group_refresh: "تنشيط التفاعل",
  hack: "اختراق وهمي",
  jail: "الصورة في السجن",
  kiss: "تقبيل العضو",
  kiss2: "تقبيل متحرك",
  mia: "ميمز مي خليفة",
  mygirl: "عرض حبيبتك",
  needgf: "البحث عن حبيبة",
  nokia: "شاشة نوكيا",
  pair: "الزواج العشوائي",
  pet: "ملاطفة العضو",
  post: "منشور وهمي",
  time: "الوقت والتاريخ",
  toilet: "الصورة في المرحاض",
  trash: "رمي في القمامة",
  tv: "داخل شاشة تلفاز",
  videocall: "مكالمة وهمية",
  wanted: "مطلوب للعدالة",
  xray: "فحص أشعة",

  // GAME
  ffinfo: "حساب فري فاير",
  guessnumber: "تخمين الرقم",
  rank: "مستوى الرتبة",

  // GROUP
  protect: "حماية الجروب",

  // IMAGE
  pinterest: "صور من Pinterest",
  rbg: "إزالة الخلفية",
  sorthelp: "تنظيم الصور",

  // INFO & INFORMATION
  grouptag: "مناداة المجموعات",
  setrole: "صلاحيات الأوامر",
  texttoimage: "النص إلى صورة",
  owner: "معلومات المطور",

  // MEDIA
  anisearch: "فيديو أنمي",
  autolink: "تحميل تلقائي",
  catbox: "رفع لـ Catbox",
  convertmp3: "فيديو لـ MP3",
  download: "تحميل وسائط",
  gan: "توليد أغاني",
  pp: "صورة البروفايل",
  say: "النص إلى صوت",
  sing: "أغنية يوتيوب",
  tempmail: "إيميل وهمي",
  tiktok: "تحميل تيك توك",
  video: "فيديو يوتيوب",

  // OTHER & TOOLS
  imgur: "رفع لـ Imgur",
  imgbb: "رفع لـ ImgBB",

  // OWNER
  adminonly: "وضع المشرفين فقط",
  backupdata: "نسخ احتياطي",
  clear: "تنظيف الكاش",
  eval: "كود جافاسكربت مباشر",
  event: "الأحداث التلقائية",
  filecmd: "جلب كود أمر",
  getfbstate: "كوكيز البوت",
  ignoreonlyad: "تجاهل أوامر المشرفين",
  ignoreonlyadbox: "تجاهل المشرفين",
  install: "تثبيت أمر",
  jsontomongodb: "نقل لـ MongoDB",
  jsontosqlite: "نقل لـ SQLite",
  kick: "طرد عضو",
  kickall: "طرد الجميع",
  loadconfig: "إعادة تحميل الإعدادات",
  notification: "إشعار عام",
  out: "خروج من المجموعة",
  pending: "المجموعات المعلقة",
  restart: "إعادة التشغيل",
  setavt: "بروفايل البوت",
  setlang: "تغيير اللغة",
  setrankup: "إشعارات الرتبة",
  thread: "بيانات الجروب",
  update: "تحديث من GitHub",
  user: "بيانات المستخدمين",
  whitelist: "القائمة البيضاء",

  // RANK
  customrankcard: "تخصيص بطاقة الرتبة",
  rankup: "ترقية الرتبة",

  // SOFTWARE
  appstore: "تطبيقات AppStore",

  // SUPPORTGC
  supportgc: "الدعم الفني",

  // UTILITY
  accept: "قبول طلبات الانضمام",
  fbcover: "غلاف فيسبوك",
  pastebin: "رفع على Pastebin",
  qrgen: "صنع QR",
  translate: "ترجمة النصوص",
  uid: "معرف الحساب UID",
  webss: "لقطة شاشة لموقع",

  // WIKI
  emojimean: "معنى الإيموجي"
};

// قاموس ترجمة الفئات
const categoryNames = {
  admin: "⚙️ الإدارة العليا",
  ai: "🤖 الذكاء الاصطناعي",
  "ai-image": "🎨 توليد الصور",
  anime: "🌸 الأنمي والمانجا",
  birthday: "🎂 أعياد الميلاد",
  box: "📦 إعدادات الصندوق",
  "box chat": "👥 إدارة المحادثة",
  config: "🔧 الإعدادات",
  "contacts admin": "📞 التواصل مع المطور",
  custom: "🛠️ التخصيص والترحيب",
  economy: "💰 الاقتصاد والألعاب",
  fun: "🎮 التسلية والترفيه",
  game: "🏆 الألعاب",
  group: "🛡️ حماية المجموعات",
  image: "🖼️ أدوات الصور",
  info: "ℹ️ معلومات عامة",
  information: "📜 تفاصيل البوت",
  love: "❤️ الحب والزواج",
  media: "📥 التحميل والميديا",
  other: "📁 أخرى",
  owner: "👑 أدوات المطور",
  rank: "📊 التفاعل والرتب",
  software: "📱 التطبيقات",
  supportgc: "💬 جروب الدعم",
  system: "🖥️ النظام والأداء",
  tools: "🔨 أدوات الرفع",
  utility: "🛠️ الأدوات العامة",
  wiki: "📖 الموسوعة والشروح"
};

// --- دالة توليد الصفحات لتجنب التكرار ---
function generatePageContent(page, allCommands, prefix) {
  const categories = {};
  for (const [name, cmd] of allCommands) {
    const cat = (cmd.config.category || "other").toLowerCase();
    if (!categories[cat]) categories[cat] = [];
    categories[cat].push(name);
  }

  const categoryKeys = Object.keys(categories).sort();
  const catsPerPage = 7; // عدد الفئات في كل صفحة (ينتج حوالي 4 صفحات)
  const totalPages = Math.ceil(categoryKeys.length / catsPerPage);
  const actualPage = Math.max(1, Math.min(page, totalPages));

  const start = (actualPage - 1) * catsPerPage;
  const end = start + catsPerPage;
  const currentCats = categoryKeys.slice(start, end);

  let msg = `╭━━━ ❖ [ 𝐀𝐒𝐔𝐑𝐀 𝐁𝐎𝐓 ] ❖ ━━━╮\n`;
  msg += `┃ ✧ البادئة : [ ${prefix} ]\n`;
  msg += `┃ ✧ الأوامر : ${allCommands.size} أمر\n`;
  msg += `╰━━━━━━━━━━━━━━━━━━━━━╯\n\n`;

  for (const cat of currentCats) {
    const catTitle = categoryNames[cat] || `📁 ${cat.toUpperCase()}`;
    msg += ` ❖ ${catTitle} ❖\n`;
    for (const cmdName of categories[cat].sort()) {
      const arMeaning = translations[cmdName] ? ` ⇦ (${translations[cmdName]})` : "";
      msg += `  ├ ✧ ${cmdName}${arMeaning}\n`;
    }
    msg += `\n`;
  }

  msg += `╭━━━━━━━━━━━━━━━━━━━━━╮\n`;
  msg += `  📄 الصفحة [ ${actualPage} من ${totalPages} ]\n`;
  if (actualPage < totalPages) {
    msg += `  💡 للرد اكتب "التالي" أو "2"\n`;
  } else {
    msg += `  💡 للرد اكتب "السابق"\n`;
  }
  msg += `  🔍 لتفاصيل أمر: ${prefix}help <الاسم>\n`;
  msg += `╰━━━━━━━━━━━━━━━━━━━━━╯`;

  return { msg, totalPages, actualPage };
}

module.exports = {
  config: {
    name: "مساعدة",
    aliases: ["help", "menu", "commands", "المساعدة", "الاوامر", "هيلب"],
    version: "9.0",
    author: "Hamza",
    shortDescription: "عرض قائمة المساعدة",
    longDescription: "عرض قائمة المساعدة",
    category: "system",
    guide: "{pn} [رقم الصفحة | اسم الأمر]"
  },

  onStart: async function ({ api, event, args, prefix }) {
    const allCommands = global.GoatBot.commands;

    // حالة الاستعلام عن أمر معين بالاسم
    if (args[0] && isNaN(parseInt(args[0]))) {
      const cmdName = args[0].toLowerCase();
      const cmd =
        allCommands.get(cmdName) ||
        [...allCommands.values()].find(c => c.config.aliases?.includes(cmdName));

      if (!cmd) {
        return api.sendMessage(
          `❌ الأمر '${cmdName}' غير موجود!\n➤ اكتب ${prefix}help لرؤية القائمة.`,
          event.threadID
        );
      }

      const usage = typeof cmd.config.guide === "string"
        ? cmd.config.guide.replace("{pn}", cmd.config.name)
        : cmd.config.name;

      const infoMsg = 
`╭━━━ ❖ [ تفاصيل الأمر ] ❖ ━━━╮
 ✧ الاسم : ${cmd.config.name}
 ✧ الشرح : ${translations[cmd.config.name] || "لا يوجد شرح مختصر"}
 ✧ الألقاب: ${cmd.config.aliases?.join(", ") || "لا يوجد"}
 ✧ الفئة : ${categoryNames[(cmd.config.category || "").toLowerCase()] || cmd.config.category || "أخرى"}
 ✧ الاستخدام: ${prefix}${usage}
╰━━━━━━━━━━━━━━━━━━━━━╯
 📝 ${(cmd.config.longDescription || cmd.config.shortDescription || "لا يوجد وصف تفصيلي")}`;

      return api.sendMessage(infoMsg, event.threadID);
    }

    // جلب الصفحة المطلوبة
    let requestedPage = 1;
    if (args[0] && !isNaN(parseInt(args[0]))) {
      requestedPage = parseInt(args[0]);
    }

    const { msg, totalPages, actualPage } = generatePageContent(requestedPage, allCommands, prefix);
    
    // تحديد رابط الصورة حسب الصفحة
    const gifIndex = Math.min(actualPage - 1, pageGifs.length - 1);
    const gifUrl = pageGifs[gifIndex];

    return api.sendMessage(
      {
        body: msg,
        attachment: await global.utils.getStreamFromURL(gifUrl)
      },
      event.threadID,
      (err, info) => {
        if (err) return;
        // حفظ بيانات الرسالة لتفعيل الردود للانتقال بين الصفحات
        global.GoatBot.onReply.set(info.messageID, {
          commandName: "مساعدة",
          messageID: info.messageID,
          author: event.senderID,
          currentPage: actualPage,
          totalPages: totalPages
        });
      }
    );
  },

  onReply: async function ({ api, event, Reply, prefix }) {
    // التأكد أن الرد من نفس الشخص الذي طلب القائمة
    if (event.senderID !== Reply.author) return;

    const replyText = event.body.trim().toLowerCase();
    let targetPage = Reply.currentPage;

    if (replyText === "التالي" || replyText === "next") {
      targetPage++;
    } else if (replyText === "السابق" || replyText === "prev" || replyText === "السابقة") {
      targetPage--;
    } else if (!isNaN(parseInt(replyText))) {
      targetPage = parseInt(replyText);
    } else {
      return; // تجاهل أي رد لا يخص تصفح القائمة
    }

    if (targetPage < 1 || targetPage > Reply.totalPages) {
      return api.sendMessage("❌ رقم الصفحة غير متاح.", event.threadID, event.messageID);
    }

    // حذف الرسالة القديمة للقائمة حتى يبقى الجروب نظيفاً
    api.unsendMessage(Reply.messageID).catch(e => {});

    const allCommands = global.GoatBot.commands;
    const { msg, totalPages, actualPage } = generatePageContent(targetPage, allCommands, prefix);
    
    const gifIndex = Math.min(actualPage - 1, pageGifs.length - 1);
    const gifUrl = pageGifs[gifIndex];

    return api.sendMessage(
      {
        body: msg,
        attachment: await global.utils.getStreamFromURL(gifUrl)
      },
      event.threadID,
      (err, info) => {
        if (err) return;
        // تحديث المراقبة للرسالة الجديدة
        global.GoatBot.onReply.set(info.messageID, {
          commandName: "مساعدة",
          messageID: info.messageID,
          author: event.senderID,
          currentPage: actualPage,
          totalPages: totalPages
        });
      }
    );
  }
};

View raw file