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}`);
}
};