// code from goatstore // api: https://store.agi.bd module.exports = { config: { name: "botnick", aliases: ["botname"], version: "2.0.0", author: "š€š’šˆš… š±šŸ”šŸ—", countDown: 5, role: 2, shortDescription: { en: "Change bot nickname in all groups" }, longDescription: { en: "Change the bot nickname in all group chats" }, category: "owner", guide: { en: "{pn} " } }, langs: { en: { missingNickname: "āŒ | Please enter the new nickname.", changing: "ā³ | Changing bot nickname to \"%1\" in %2 groups...", success: "āœ… | Bot nickname changed to \"%1\" in %2 groups.", partial: "āš ļø | Nickname change completed.\n\nāœ… Success: %1 groups\nāŒ Failed: %2 groups\n\nFailed Group IDs:\n%3", noGroups: "āŒ | No group chats found." } }, onStart: async function ({ api, args, threadsData, message, getLang }) { const newNickname = args.join(" ").trim(); if (!newNickname) { return message.reply(getLang("missingNickname")); } const botID = api.getCurrentUserID(); try { const allThreads = await threadsData.getAll(); const groups = allThreads.filter(thread => { if (!thread.isGroup) { return false; } if (!Array.isArray(thread.members)) { return false; } return thread.members.some( member => String(member.userID) === String(botID) ); }); if (groups.length === 0) { return message.reply(getLang("noGroups")); } await message.reply( getLang("changing", newNickname, groups.length) ); let success = 0; const failed = []; for (const thread of groups) { try { await api.changeNickname( newNickname, thread.threadID, botID ); success++; } catch (error) { failed.push(thread.threadID); console.error( `[BOTNICK] ${thread.threadID}:`, error.message || error ); } await new Promise(resolve => setTimeout(resolve, 250)); } if (failed.length === 0) { return message.reply( getLang("success", newNickname, success) ); } return message.reply( getLang( "partial", success, failed.length, failed.join("\n") ) ); } catch (error) { console.error("[BOTNICK ERROR]", error); return message.reply( "āŒ | Error: " + (error.message || error) ); } } };