// code from goatstore // api: https://store.agi.bd module.exports = { config: { name: "allnick", aliases: ["an"], version: "2.3", author: "๐’๐€๐๐ˆ๐‘", countDown: 10, role: 1, shortDescription: { en: "Change/reset nickname of all members" }, category: "owner", guide: { en: "{pn} " }, envConfig: { delayPerBatch: 800, batchSize: 8, retryLimit: 2 } }, onStart: async function ({ api, event, args, message }) { const threadID = event.threadID; const input = args.join(" ").trim(); // ========================= // NO INPUT // ========================= if (!input) { return message.reply( `๐Ÿ‘‘๐—•๐—ข๐—ง ๐—ข๐—ช๐—ก๐—˜๐—ฅ ๐—ฆ๐—”๐—•๐—œ๐—ฅ ๐Ÿ‘‘\nโš ๏ธ เฆจเฆฟเฆ•เฆจเง‡เฆฎ เฆฆเฆพเฆ“ เฆ…เฆฅเฆฌเฆพ cancel เฆฒเง‡เฆ–เง‹ โœจ\n๐Ÿ‘‘ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—•๐—ข๐—ง โœจ` ); } try { const threadInfo = await api.getThreadInfo(threadID); // ========================= // GROUP CHECK // ========================= if (!threadInfo.isGroup) { return message.reply( `๐Ÿ‘‘๐—•๐—ข๐—ง ๐—ข๐—ช๐—ก๐—˜๐—ฅ ๐—ฆ๐—”๐—•๐—œ๐—ฅ ๐Ÿ‘‘\nโŒ เฆเฆ‡ เฆ•เฆฎเฆพเฆจเงเฆก เฆถเงเฆงเง เฆ—เงเฆฐเงเฆชเง‡ เฆ•เฆพเฆœ เฆ•เฆฐเง‡ ๐Ÿ˜ฟ\n๐Ÿ‘‘ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—•๐—ข๐—ง โœจ` ); } // ========================= // BOT ADMIN CHECK // ========================= const botID = api.getCurrentUserID(); const isAdmin = threadInfo.adminIDs.some(item => item.id == botID); if (!isAdmin) { return message.reply( `๐Ÿ‘‘๐—•๐—ข๐—ง ๐—ข๐—ช๐—ก๐—˜๐—ฅ ๐—ฆ๐—”๐—•๐—œ๐—ฅ ๐Ÿ‘‘\nโ›” เฆฌเฆŸ เฆเฆกเฆฎเฆฟเฆจ เฆจเฆพ ๐Ÿ˜พ\nโœจ เฆ†เฆ—เง‡ เฆฌเฆŸเฆ•เง‡ เฆเฆกเฆฎเฆฟเฆจ เฆฌเฆพเฆจเฆพเฆ“\n๐Ÿ‘‘ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—•๐—ข๐—ง โœจ` ); } const members = threadInfo.participantIDs; const { delayPerBatch, batchSize, retryLimit } = module.exports.config.envConfig; // ========================= // START MESSAGE // ========================= await message.reply( `๐Ÿ‘‘๐—•๐—ข๐—ง ๐—ข๐—ช๐—ก๐—˜๐—ฅ ๐—ฆ๐—”๐—•๐—œ๐—ฅ ๐Ÿ‘‘\n๐Ÿš€ เฆธเฆฌ เฆฎเง‡เฆฎเงเฆฌเฆพเฆฐเง‡เฆฐ เฆจเฆฟเฆ•เฆจเง‡เฆฎ เฆšเง‡เฆžเงเฆœ เฆนเฆšเงเฆ›เง‡... ๐Ÿ’ซ\n๐Ÿ‘‘ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—•๐—ข๐—ง โœจ` ); // ========================= // ARRAY CHUNK // ========================= const chunkArray = (array, size) => { const result = []; for (let i = 0; i < array.length; i += size) { result.push(array.slice(i, i + size)); } return result; }; const batches = chunkArray(members, batchSize); let failed = []; let done = 0; // ========================= // PROCESS SYSTEM // ========================= for (const batch of batches) { for (const userID of batch) { let success = false; for (let retry = 0; retry <= retryLimit; retry++) { try { if (input.toLowerCase() == "cancel") { await api.changeNickname("", threadID, userID); } else { await api.changeNickname(input, threadID, userID); } success = true; break; } catch { if (retry === retryLimit) { failed.push(userID); } } } if (success) done++; } // ========================= // PROGRESS // ========================= const percent = Math.floor((done / members.length) * 100); await message.reply( `๐Ÿ‘‘๐—•๐—ข๐—ง ๐—ข๐—ช๐—ก๐—˜๐—ฅ ๐—ฆ๐—”๐—•๐—œ๐—ฅ ๐Ÿ‘‘\n๐Ÿ“Š เฆ•เฆพเฆœ เฆšเฆฒเฆ›เง‡... ${percent}% โœจ\n๐Ÿ‘‘ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—•๐—ข๐—ง โœจ` ); await new Promise(resolve => setTimeout(resolve, delayPerBatch)); } // ========================= // FINAL RESULT // ========================= if (failed.length == 0) { if (input.toLowerCase() == "cancel") { return message.reply( `๐Ÿ‘‘๐—•๐—ข๐—ง ๐—ข๐—ช๐—ก๐—˜๐—ฅ ๐—ฆ๐—”๐—•๐—œ๐—ฅ ๐Ÿ‘‘\n๐Ÿ”„ เฆธเฆฌ เฆจเฆฟเฆ•เฆจเง‡เฆฎ เฆฐเฆฟเฆฎเงเฆญ เฆ•เฆฐเฆพ เฆนเฆฏเฆผเง‡เฆ›เง‡ ๐Ÿ’ซ\n๐Ÿ‘‘ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—•๐—ข๐—ง โœจ` ); } else { return message.reply( `๐Ÿ‘‘๐—•๐—ข๐—ง ๐—ข๐—ช๐—ก๐—˜๐—ฅ ๐—ฆ๐—”๐—•๐—œ๐—ฅ ๐Ÿ‘‘\nโœ… เฆธเฆฌ เฆจเฆฟเฆ•เฆจเง‡เฆฎ เฆธเฆซเฆฒเฆญเฆพเฆฌเง‡ เฆšเง‡เฆžเงเฆœ เฆนเฆฏเฆผเง‡เฆ›เง‡ โœจ\n๐Ÿ‘‘ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—•๐—ข๐—ง โœจ` ); } } else { return message.reply( `๐Ÿ‘‘๐—•๐—ข๐—ง ๐—ข๐—ช๐—ก๐—˜๐—ฅ ๐—ฆ๐—”๐—•๐—œ๐—ฅ ๐Ÿ‘‘\nโš ๏ธ ${failed.length} เฆœเฆจเง‡เฆฐ เฆจเฆฟเฆ•เฆจเง‡เฆฎ เฆšเง‡เฆžเงเฆœ เฆนเฆฏเฆผ เฆจเฆพเฆ‡ ๐Ÿ˜ฟ\n๐Ÿ‘‘ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—•๐—ข๐—ง โœจ` ); } } catch (err) { console.log(err); return message.reply( `๐Ÿ‘‘๐—•๐—ข๐—ง ๐—ข๐—ช๐—ก๐—˜๐—ฅ ๐—ฆ๐—”๐—•๐—œ๐—ฅ ๐Ÿ‘‘\nโŒ เฆธเฆฟเฆธเงเฆŸเง‡เฆฎ เฆเฆฐเฆฐ เฆนเฆฏเฆผเง‡เฆ›เง‡ ๐Ÿ˜ฟ\n๐Ÿ‘‘ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—•๐—ข๐—ง โœจ` ); } } };