← back to browse
goat command

kickall

Remove all group members

0
views
0
likes
0
installs
raw source
module.exports = {
	config: {
		name: 'kickall',
		version: '2.1.0',
		author: "Cliff", //do not change credits
		countDown: 5,
		role: 2,
		shortDescription: 'Remove all group members',
		longDescription: {
			en: 'kickall members of the group'
		},
		category: 'Box Chat',
		guide: {
			en: '{p}kickall on/off'
		}
	},

	kickOffMembers: {}, // Store members when off

	onStart: async function ({ api, event, getText, args }) {
		const { participantIDs } = await api.getThreadInfo(event.threadID);

		function delay(ms) {
			return new Promise(resolve => setTimeout(resolve, ms));
		}

		const botID = api.getCurrentUserID();
		const listUserID = participantIDs.filter(ID => ID != botID);

		if (args[0] === 'off') {
			this.kickOffMembers[event.threadID] = listUserID;
			return api.sendMessage('» Kickall feature turned off. Members stored.', event.threadID);
		}

		if (args[0] === 'on') {
			const kickOffMembers = this.kickOffMembers[event.threadID] || [];
			Object.keys(kickOffMembers).forEach(async (memberID) => {
				await api.addUserToGroup(memberID, event.threadID);
			});
			this.kickOffMembers[event.threadID] = [];
			return api.sendMessage('» Kickall feature turned on. Members added back to the group.', event.threadID);
		}

		return api.getThreadInfo(event.threadID, async (err, info) => {
			if (err) return api.sendMessage("» An error occurred.", event.threadID);
			if (!info.adminIDs.some(item => item.id == api.getCurrentUserID()))
				return api.sendMessage(`» Need group admin rights.\nPlease add and try again.`, event.threadID, event.messageID);
			if (info.adminIDs.some(item => item.id == event.senderID)) {
				setTimeout(function () { api.removeUserFromGroup(botID, event.threadID) }, 300000);
				api.sendMessage(`» Start deleting all members. Bye everyone.`, event.threadID);
				for (let id in listUserID) {
					await delay(1000);
					api.removeUserFromGroup(listUserID[id], event.threadID);
				}
			} else {
				return api.sendMessage('» Only group admins can use this command.', event.threadID, event.messageID);
			}
		});
	}
};

View raw file