Test
🧩 Syntax:
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 <rule1> | <rule2> | <rule3>' to add rules. Use '/rules -remove <rule number>' 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);
}
}
}
};