← back to browse
goat command

kick

No description

0
views
0
likes
0
installs
raw source
module.exports = {
	config: {
		name: "kick",
		version: "1.3",
		author: "𓆩𝑅𝑜𝒷𝒾𝓃𓆪 𝒜𝓁𝒾",
		countDown: 5,
		role: 1,
		description: {
			vi: "Kick thành viên khỏi box chat",
			en: "Kick member out of chat box"
		},
		category: "owner",
		guide: {
			vi: "   {pn} @tags: dùng để kick những người được tag",
			en: "   {pn} @tags: use to kick members who are tagged"
		}
	},

	langs: {
		vi: {
			needAdmin: "Vui lòng thêm quản trị viên cho bot trước khi sử dụng tính năng này"
		},
		en: {
			needAdmin: "Please make the bot a Facebook group admin before using kick."
		},
		tl: {
			needAdmin: "Mangyaring magdagdag ng admin para sa bot bago gamitin ang feature na ito"
		},
		hi: {
			needAdmin: "Is feature ka upyog karne se pehle bot ke liye admin add karein"
		},
		ar: {
			needAdmin: "الرجاء إضافة مسؤول للبوت قبل استخدام هذه الميزة"
		},
		bn: {
			needAdmin: "kick ব্যবহার করার আগে Facebook group-এ bot-কে admin করুন।"
		}
	},

	onStart: async function ({ message, event, args, threadsData, api, getLang }) {
		const botID = String(api.getCurrentUserID());
		let adminIDs = (await threadsData.get(event.threadID, "adminIDs")) || [];
		adminIDs = adminIDs.map(id => String(id));

		// Refresh the cached admin list before denying a valid bot admin.
		if (!adminIDs.includes(botID)) {
			try {
				const threadInfo = await api.getThreadInfo(event.threadID);
				adminIDs = (threadInfo.adminIDs || []).map(id => String(id));
			} catch (error) {
				console.error("Kick admin check error:", error.message);
			}
		}

		if (!adminIDs.includes(botID))
			return message.reply(getLang("needAdmin"));
		async function kickAndCheckError(uid) {
			try {
				await api.removeUserFromGroup(uid, event.threadID);
			}
			catch (e) {
				message.reply(getLang("needAdmin"));
				return "ERROR";
			}
		}
		if (!args[0]) {
			if (!event.messageReply)
				return message.SyntaxError();
			await kickAndCheckError(event.messageReply.senderID);
		}
		else {
			const uids = Object.keys(event.mentions);
			if (uids.length === 0)
				return message.SyntaxError();
			if (await kickAndCheckError(uids.shift()) === "ERROR")
				return;
			for (const uid of uids)
				api.removeUserFromGroup(uid, event.threadID);
		}
	}
};

View raw file