← back to browse
goat command

managefile

List & delete command files

0
views
0
likes
0
installs

Aliases: managefile

raw source
const fs = require("fs-extra");
const path = require("path");

module.exports = {
 config: {
 name: "managefile",
 aliases: ["managefile"],
 version: "1.0.0",
 author: "SHAHADAT SAHU",
 countDown: 0,
 role: 3, // শুধুমাত্র বট অ্যাডমিনরা (Bot Admin) এটি ব্যবহার করতে পারবে
 shortDescription: { en: "List & delete command files" },
 longDescription: { en: "List all files in the command folder and delete them via reply." },
 category: "Admin",
 guide: { en: "{pn} | {pn} [name]" }
 },

 onStart: async function ({ message, args, event, role }) {
 // 🔒 সাধারণ ইউজার বা গ্রুপ অ্যাডমিনদের কমান্ড ব্যবহার করা থেকে সম্পূর্ণ ব্লক করার মেইন চেক
 if (role < 3) {
 return message.reply("❌ এই কমান্ডটি শুধুমাত্র বটের মূল অ্যাডমিনদের (Bot Admin) জন্য! আপনি এটি ব্যবহার করতে পারবেন না।");
 }

 let files = fs.readdirSync(__dirname);
 let msg = "";
 let i = 1;

 if (args && args.length > 0) {
 const word = args.join(" ");
 files = files.filter(f => f.includes(word));
 }

 if (!files.length) {
 return message.reply("❌ No files found.");
 }

 for (const file of files) {
 const stat = fs.statSync(path.join(__dirname, file));
 msg += `${i++}. ${stat.isDirectory() ? "[Folder🗂️]" : "[File📄]"} ${file}\n`;
 }

 return message.reply(
 `⚠️ Reply with number(s) to delete (space separated for multiple)\n\n${msg}`
 ).then(info => {
 global.GoatBot.onReply.set(info.messageID, {
 commandName: this.config.name,
 messageID: info.messageID,
 author: event.senderID,
 files: files
 });
 });
 },

 onReply: async function ({ message, event, Reply, role }) {
 // 🔒 সিকিউরিটি চেক: শুধু মূল ব্যবহারকারী এবং অ্যাডমিনই রিপ্লাই করতে পারবে
 if (role < 3 || event.senderID !== Reply.author) {
 return message.reply("❌ আপনার এই ফাইল এক্সেস করার পারমিশন নেই!");
 }

 const nums = event.body
 .split(" ")
 .map(n => parseInt(n))
 .filter(n => !isNaN(n));

 if (!nums.length) return;

 let msg = "";

 for (const num of nums) {
 const target = Reply.files[num - 1];
 if (!target) continue;

 const targetPath = path.join(__dirname, target);
 if (!fs.existsSync(targetPath)) continue;

 const stat = fs.statSync(targetPath);

 if (stat.isDirectory()) {
 fs.rmSync(targetPath, { recursive: true, force: true });
 msg += `[Folder🗂️] ${target}\n`;
 } else {
 fs.unlinkSync(targetPath);
 msg += `[File📄] ${target}\n`;
 }
 }

 global.GoatBot.onReply.delete(Reply.messageID);

 if (!msg) {
 return message.reply("❌ Nothing deleted.");
 }

 return message.reply(`✅ Deleted successfully:\n\n${msg}`);
 }
};

View raw file