const fs = require('fs'); const path = require('path'); module.exports = { config: { name: "rules", aliases: ["-a", "-r", "-res"], version: "1.0", author: "JMLABACO", countDown: 5, role: 0, shortDescription: "Manage rules for the chat.", longDescription: "Add, remove, reset, or display rules for the chat.", category: "chat", guide: "Use '/rules -add | | ' to add rules. Use '/rules -remove ' to remove a rule. Use '/rules -reset' to clear all rules. Use '/rules' to display all rules." }, onStart: async function ({ api, event, args }) { if (!event || !event.threadID) { console.error("Event or ThreadID is undefined."); return; } const threadID = event.threadID; const cacheFolderPath = path.join(__dirname, "cache"); const filePath = path.join(cacheFolderPath, "rules.json"); if (!fs.existsSync(cacheFolderPath)) { fs.mkdirSync(cacheFolderPath); } if (args[0] === '-add' || args[0] === '-a') { const rulesToAdd = args.slice(1).join(' '); const rules = fs.existsSync(filePath) ? JSON.parse(fs.readFileSync(filePath)) : {}; rules[threadID] = rules[threadID] || []; rules[threadID].push(rulesToAdd); fs.writeFileSync(filePath, JSON.stringify(rules)); api.sendMessage(`Rules added: ${rulesToAdd}`, threadID); } else if (args[0] === '-remove' || args[0] === '-r') { const ruleNumberToRemove = parseInt(args[1], 10); let rules = fs.existsSync(filePath) ? JSON.parse(fs.readFileSync(filePath)) : {}; if (rules[threadID] && ruleNumberToRemove > 0 && ruleNumberToRemove <= rules[threadID].length) { const removedRule = rules[threadID].splice(ruleNumberToRemove - 1, 1); fs.writeFileSync(filePath, JSON.stringify(rules)); api.sendMessage(`Rule removed: ${removedRule}`, threadID); } else { api.sendMessage("Invalid rule number to remove.", threadID); } } else if (args[0] === '-reset' || args[0] === '-res') { let rules = fs.existsSync(filePath) ? JSON.parse(fs.readFileSync(filePath)) : {}; if (rules[threadID]) { delete rules[threadID]; fs.writeFileSync(filePath, JSON.stringify(rules)); api.sendMessage("Rules reset successfully.", threadID); } else { api.sendMessage("No rules to reset for this chat.", threadID); } } else { let rules = fs.existsSync(filePath) ? JSON.parse(fs.readFileSync(filePath)) : {}; if (rules[threadID] && rules[threadID].length > 0) { const formattedRules = rules[threadID].map((rule, index) => `• ${rule}`).join('\n'); api.sendMessage(`[]===RULES===[]\n${formattedRules}`, threadID); } else { api.sendMessage("No rules set for this chat.", threadID); } } } };