goat
command
out
Bot leaves group
0
views
0
likes
0
installs
raw source
module.exports = {
config: {
name: "out",
version: "2.0.1",
author: "𝐂𝐘𝐁𝐄𝐑 ☢️_𖣘 -𝐁𝐎𝐓 ⚠️ 𝑻𝑬𝑨𝑴_ ☢️",
countDown: 5,
role: 0,
shortDescription: "Bot leaves group",
longDescription: "Bot leaves current group or selected group from list (Only Group Admin & Bot Admin)",
category: "Admin",
guide: {
en: "{pn}\n{pn} help\n{pn} gc list"
}
},
onStart: async function ({ api, event, args, message, threadsData }) {
const { threadID, messageID, senderID } = event;
// ===== Permission Check =====
const ADMINS = global.GoatBot?.config?.adminBot || [];
const isBotAdmin = ADMINS.includes(senderID);
let isGroupAdmin = false;
try {
const threadInfo = await api.getThreadInfo(threadID);
isGroupAdmin = threadInfo.adminIDs?.some(item => item.id == senderID);
} catch (e) {}
// অ্যাডমিন না হলে সম্পূর্ণ ইগনোর (কোনো মেসেজ না)
if (!isBotAdmin && !isGroupAdmin) return;
const command = (args[0] || "").toLowerCase();
const subCommand = (args[1] || "").toLowerCase();
// ===== HELP =====
if (command === "help") {
return api.sendMessage(
`╔═══════『 𝗢𝗨𝗧 𝗛𝗘𝗟𝗣 』═══════╗
┃
┃ ➤ .out
┃ → বর্তমান গ্রুপ থেকে বট লিভ নেবে
┃
┃ ➤ .out gc list
┃ → সব গ্রুপের লিস্ট দেখাবে
┃ → নাম্বার দিলে সেই গ্রুপ থেকে লিভ
┃
┃ ➤ .out help
┃ → এই হেল্প মেসেজ দেখাবে
┃
┃ 🔒 শুধু গ্রুপ অ্যাডমিন ও বট অ্যাডমিন
┃
╚══════════════════════════╝`,
threadID,
messageID
);
}
// ===== GC LIST =====
if (command === "gc" && subCommand === "list") {
try {
const allThreads = await api.getThreadList(100, null, ["INBOX"]);
const groups = allThreads.filter(t => t.isGroup && t.threadID);
if (groups.length === 0) {
return api.sendMessage("❌ কোনো গ্রুপ পাওয়া যায়নি।", threadID, messageID);
}
let msg = `📋 𝗧𝗼𝘁𝗮𝗹 𝗚𝗿𝗼𝘂𝗽𝘀: ${groups.length}\n\n`;
groups.forEach((g, i) => {
msg += `${i + 1}. ${g.name || "Unnamed Group"}\n 🆔 ${g.threadID}\n\n`;
});
msg += `👉 কোন গ্রুপ থেকে লিভ নিতে চাও?\nনাম্বার লিখে রিপ্লাই দাও (যেমন: 1)`;
return api.sendMessage(msg, threadID, (err, info) => {
if (err) return;
global.GoatBot.onReply.set(info.messageID, {
commandName: this.config.name,
author: senderID,
messageID: info.messageID,
type: "chooseGroup",
groups: groups.map(g => ({
id: g.threadID,
name: g.name || "Unnamed Group"
}))
});
}, messageID);
} catch (err) {
console.error(err);
return api.sendMessage("❌ গ্রুপ লিস্ট আনতে সমস্যা হয়েছে।", threadID, messageID);
}
}
// ===== শুধু .out → বর্তমান গ্রুপ থেকে লিভ =====
if (!command) {
return api.removeUserFromGroup(api.getCurrentUserID(), threadID, (err) => {
if (err) {
return api.sendMessage("❌ এই গ্রুপ থেকে লিভ নেওয়া যায়নি।", threadID, messageID);
}
});
}
// ভুল কমান্ড হলে
return api.sendMessage(
"❌ ভুল কমান্ড!\nসঠিক ব্যবহার দেখতে লিখো: .out help",
threadID,
messageID
);
},
onReply: async function ({ api, event, Reply, message }) {
const { threadID, messageID, senderID, body } = event;
// শুধু যিনি লিস্ট চেয়েছেন তিনিই রিপ্লাই দিতে পারবে
if (senderID !== Reply.author) return;
if (Reply.type !== "chooseGroup") return;
const choice = parseInt(body.trim());
if (isNaN(choice) || choice < 1 || choice > Reply.groups.length) {
return api.sendMessage(
`❌ ভুল নাম্বার!\n১ থেকে ${Reply.groups.length} এর মধ্যে একটি নাম্বার দাও।`,
threadID,
messageID
);
}
const selected = Reply.groups[choice - 1];
api.removeUserFromGroup(api.getCurrentUserID(), selected.id, (err) => {
if (err) {
return api.sendMessage(
`❌ "${selected.name}" গ্রুপ থেকে লিভ নেওয়া যায়নি।`,
threadID,
messageID
);
}
return api.sendMessage(
`✅ সফলভাবে লিভ নেওয়া হয়েছে!\n📌 গ্রুপ: ${selected.name}\n🆔 ${selected.id}`,
threadID,
messageID
);
});
}
};