← back to browse
goat command

antiout

Prevent members from leaving the group

0
views
0
likes
0
installs
raw source
module.exports = {
 config: {
 name: "antiout",
 version: "2.0",
 author: "Sazzad",
 countDown: 5,
 role: 1, // Only admin can use this command
 shortDescription: {
 en: "Prevent members from leaving the group"
 },
 longDescription: {
 en: "Enable/disable anti-out feature that automatically adds back members who leave the group"
 },
 category: "admin",
 guide: {
 en: "{pn} [on|off] - Turn anti-out feature on or off"
 }
 },

 langs: {
 en: {
 turnedOn: "✅ Anti-out feature has been enabled for this group",
 turnedOff: "✅ Anti-out feature has been disabled for this group",
 missingPermission: "❌ Sorry boss Sazzad! I couldn't add the user back.\nUser %1 might have blocked me or doesn't have messenger option enabled.",
 addedBack: "⚠️ Attention %1!\nThis!\nYou need admin clearance to leave this group!"
 }
 },

 onStart: async function ({ args, message, event, threadsData, getLang }) {
 if (args[0] === "on") {
 await threadsData.set(event.threadID, true, "data.antiout");
 message.reply(getLang("turnedOn"));
 } 
 else if (args[0] === "off") {
 await threadsData.set(event.threadID, false, "data.antiout");
 message.reply(getLang("turnedOff"));
 }
 else {
 message.reply("Please specify 'on' or 'off' to enable/disable anti-out feature");
 }
 },

 onEvent: async function ({ event, api, threadsData, usersData, getLang }) {
 if (event.logMessageType !== "log:unsubscribe") 
 return;

 const antiout = await threadsData.get(event.threadID, "data.antiout");
 if (!antiout) 
 return;

 if (event.logMessageData.leftParticipantFbId === api.getCurrentUserID()) 
 return;

 const name = await usersData.getName(event.logMessageData.leftParticipantFbId);
 
 try {
 await api.addUserToGroup(event.logMessageData.leftParticipantFbId, event.threadID);
 api.sendMessage(getLang("addedBack", name), event.threadID);
 } 
 catch (error) {
 api.sendMessage(getLang("missingPermission", name), event.threadID);
 }
 }
};

View raw file