// code from goatstore // api: https://store.agi.bd const fs = require("fs-extra"); const { config } = global.GoatBot; const { client } = global; if (!config.adminOnly) config.adminOnly = {}; if (!config.adminOnly.allowUID) config.adminOnly.allowUID = []; if (!config.hideNotiMessage) { config.hideNotiMessage = {}; } if ( typeof config.hideNotiMessage.adminOnly !== "boolean" ) { config.hideNotiMessage.adminOnly = false; } module.exports = { config: { name: "adminonly", aliases: ["adonly"], version: "3.2.0", author: "๐Œ๐š๐‘๐ฎ๐…", countDown: 5, role: 2, description: { en: "Toggle admin-only mode and manage allowed UIDs." }, category: "owner", guide: { en: "{pn} on/off\n" + "{pn} noti on/off\n" + "{pn} allow add \n" + "{pn} allow remove \n" + "{pn} allow list" } }, langs: { en: { turnedOn: "๐Ÿ›ก๏ธ ๐€๐ƒ๐Œ๐ˆ๐ ๐Ž๐๐‹๐˜\n\n" + "โœ… Admin-only mode enabled.", turnedOff: "๐Ÿ›ก๏ธ ๐€๐ƒ๐Œ๐ˆ๐ ๐Ž๐๐‹๐˜\n\n" + "๐Ÿ”“ Admin-only mode disabled.", turnedOnNoti: "๐Ÿ”” ๐€๐ƒ๐Œ๐ˆ๐ ๐๐Ž๐“๐ˆ\n\n" + "โœ… Notification enabled.", turnedOffNoti: "๐Ÿ”• ๐€๐ƒ๐Œ๐ˆ๐ ๐๐Ž๐“๐ˆ\n\n" + "๐Ÿ”• Notification disabled.", addSuccess: "๐Ÿ‘ค ๐€๐‹๐‹๐Ž๐– ๐”๐’๐„๐‘\n\n" + "โœ… UID added successfully.", removeSuccess: "๐Ÿ‘ค ๐€๐‹๐‹๐Ž๐– ๐”๐’๐„๐‘\n\n" + "๐Ÿ—‘๏ธ UID removed successfully.", list: "๐Ÿ“‹ ๐€๐‹๐‹๐Ž๐–๐„๐ƒ ๐”๐ˆ๐ƒ๐’\n\n" + "%1\n\n" + "Total ยป %2", noList: "๐Ÿ“‹ ๐€๐‹๐‹๐Ž๐–๐„๐ƒ ๐”๐ˆ๐ƒ๐’\n\n" + "โŒ No allowed UID found.\n\n" + "Use ยป adminonly allow add ", invalid: "โš ๏ธ ๐ˆ๐๐•๐€๐‹๐ˆ๐ƒ ๐…๐Ž๐‘๐Œ๐€๐“\n\n" + "Use:\n" + "โ€บ adminonly on\n" + "โ€บ adminonly off\n" + "โ€บ adminonly noti on\n" + "โ€บ adminonly noti off\n" + "โ€บ adminonly allow add \n" + "โ€บ adminonly allow remove \n" + "โ€บ adminonly allow list" } }, onStart: function ({ args, message, getLang }) { let isSetNoti = false; let value; let indexGetVal = 0; if (args[0] === "allow") { const sub = args[1]; if (sub === "add") { const uid = args[2]; if (!uid) { return message.reply(getLang("invalid")); } if (!config.adminOnly.allowUID.includes(uid)) { config.adminOnly.allowUID.push(uid); } fs.writeFileSync( client.dirConfig, JSON.stringify(config, null, 2) ); return message.reply( getLang("addSuccess") ); } if (sub === "remove") { const uid = args[2]; if (!uid) { return message.reply(getLang("invalid")); } config.adminOnly.allowUID = config.adminOnly.allowUID.filter( u => u !== uid ); fs.writeFileSync( client.dirConfig, JSON.stringify(config, null, 2 )); return message.reply( getLang("removeSuccess") ); } if (sub === "list") { const list = config.adminOnly.allowUID; if (list.length === 0) { return message.reply( getLang("noList") ); } return message.reply( getLang( "list", list.join("\n"), list.length ) ); } return message.reply( getLang("invalid") ); } if (args[0] === "noti") { isSetNoti = true; indexGetVal = 1; } if (args[indexGetVal] === "on") { value = true; } else if (args[indexGetVal] === "off") { value = false; } else { return message.SyntaxError(); } if (isSetNoti) { config.hideNotiMessage.adminOnly = !value; fs.writeFileSync( client.dirConfig, JSON.stringify(config, null, 2) ); return message.reply( getLang( value ? "turnedOnNoti" : "turnedOffNoti" ) ); } config.adminOnly.enable = value; /* * Admin Only ON เฆนเฆฒเง‡ non-admin users-เฆเฆฐ * เฆœเฆจเงเฆฏ handlerEvents.onlyAdminBot message hide เฆนเฆฌเง‡เฅค */ if (value === true) { config.hideNotiMessage.adminOnly = true; } /* * Admin Only OFF เฆนเฆฒเง‡ notification เฆ†เฆฌเฆพเฆฐ * default เฆ…เฆฌเฆธเงเฆฅเฆพเงŸ เฆซเฆฟเฆฐเง‡ เฆฏเฆพเฆฌเง‡เฅค */ if (value === false) { config.hideNotiMessage.adminOnly = false; } fs.writeFileSync( client.dirConfig, JSON.stringify(config, null, 2) ); return message.reply( getLang( value ? "turnedOn" : "turnedOff" ) ); } };