goat
command
botlog
No description
0
views
0
likes
0
installs
Aliases: blogconfig
raw source
const { writeFileSync } = require("fs-extra");
module.exports = {
config: {
name: "botlog",
aliases: ["blogconfig"],
version: "2.3.5",
author: "ST | Sheikh Tamim",
countDown: 5,
role: 2,
description: {
vi: "Cấu hình hệ thống log bot",
en: "Configure bot logging system settings"
},
category: "owner",
guide: {
en: " {pn} on/off: Enable/disable bot logging"
+ "\n {pn} thread on/off: Enable/disable thread-based logging"
+ "\n {pn} thread add <threadID>: Add thread to log list"
+ "\n {pn} thread remove <threadID>: Remove thread from log list"
+ "\n {pn} thread list: Show current thread list"
+ "\n {pn} admin on/off: Enable/disable admin logging"
+ "\n {pn} silent on/off: Enable/disable silent mode for disabled threads"
+ "\n {pn} added on/off: Enable/disable bot added event logging"
+ "\n {pn} kicked on/off: Enable/disable bot kicked event logging"
+ "\n {pn} info: Show current configuration"
}
},
langs: {
en: {
enabled: "✅ Bot logging enabled",
disabled: "❌ Bot logging disabled",
threadEnabled: "✅ Thread logging enabled",
threadDisabled: "❌ Thread logging disabled",
threadAdded: "✅ Added thread %1 to logging list",
threadRemoved: "✅ Removed thread %1 from logging list",
threadNotFound: "❌ Thread %1 not found in logging list",
threadList: "📋 Current logging threads:\n%1",
noThreads: "📋 No threads configured for logging",
adminEnabled: "✅ Admin logging enabled",
adminDisabled: "❌ Admin logging disabled",
silentEnabled: "✅ Silent mode enabled for disabled threads",
silentDisabled: "❌ Silent mode disabled for disabled threads",
currentConfig: "🔧 Current Bot Logging Configuration:\n\n📢 Main: %1\n📋 Thread logging: %2\n📝 Thread IDs: %3\n👑 Admin logging: %4\n🔇 Silent mode: %5",
syntaxError: "❌ Invalid syntax. Use {pn} help for guide"
}
},
onStart: async function ({ args, message, event, getLang }) {
const { threadID } = event;
const { config } = global.GoatBot;
// Initialize botLogging if it doesn't exist
if (!config.botLogging) {
config.botLogging = {
enable: true,
sendToThreads: false,
logThreadIds: [],
sendToAdmins: true,
silentOnDisabledThreads: true
};
}
const logConfig = config.botLogging;
if (!args[0]) {
const status = logConfig.enable ? "✅ Enabled" : "❌ Disabled";
const threadStatus = logConfig.sendToThreads ? "✅ Enabled" : "❌ Disabled";
const threadIds = logConfig.logThreadIds && logConfig.logThreadIds.length > 0 ? logConfig.logThreadIds.join(", ") : "None";
const adminStatus = logConfig.sendToAdmins ? "✅ Enabled" : "❌ Disabled";
const silentStatus = logConfig.silentOnDisabledThreads ? "✅ Enabled" : "❌ Disabled";
const addedStatus = logConfig.logBotAdded ? "✅ Enabled" : "❌ Disabled";
const kickedStatus = logConfig.logBotKicked ? "✅ Enabled" : "❌ Disabled";
return message.reply(getLang("currentConfig", status, threadStatus, threadIds, adminStatus, silentStatus) + `\n🤖 Bot Added: ${addedStatus}\n👋 Bot Kicked: ${kickedStatus}`);
}
const subCommand = args[0].toLowerCase();
const action = args[1] ? args[1].toLowerCase() : null;
switch (subCommand) {
case "on":
case "enable":
logConfig.enable = true;
break;
case "off":
case "disable":
logConfig.enable = false;
break;
case "added":
if (action === "on" || action === "enable") {
logConfig.logBotAdded = true;
message.reply("✅ Bot added logging enabled");
} else if (action === "off" || action === "disable") {
logConfig.logBotAdded = false;
message.reply("❌ Bot added logging disabled");
} else {
return message.reply("❌ Use: botlog added on/off");
}
break;
case "kicked":
case "leave":
if (action === "on" || action === "enable") {
logConfig.logBotKicked = true;
message.reply("✅ Bot kicked logging enabled");
} else if (action === "off" || action === "disable") {
logConfig.logBotKicked = false;
message.reply("❌ Bot kicked logging disabled");
} else {
return message.reply("❌ Use: botlog kicked on/off");
}
break;
case "thread":
if (action === "on" || action === "enable") {
logConfig.sendToThreads = true;
message.reply(getLang("threadEnabled"));
} else if (action === "off" || action === "disable") {
logConfig.sendToThreads = false;
message.reply(getLang("threadDisabled"));
} else if (action === "add") {
const threadIdToAdd = args[2];
if (!threadIdToAdd) {
return message.reply("❌ Please provide thread ID");
}
if (!logConfig.logThreadIds.includes(threadIdToAdd)) {
logConfig.logThreadIds.push(threadIdToAdd);
message.reply(getLang("threadAdded", threadIdToAdd));
} else {
message.reply("❌ Thread already in logging list");
}
} else if (action === "remove") {
const threadIdToRemove = args[2];
if (!threadIdToRemove) {
return message.reply("❌ Please provide thread ID");
}
const index = logConfig.logThreadIds.indexOf(threadIdToRemove);
if (index > -1) {
logConfig.logThreadIds.splice(index, 1);
message.reply(getLang("threadRemoved", threadIdToRemove));
} else {
message.reply(getLang("threadNotFound", threadIdToRemove));
}
} else if (action === "list") {
if (logConfig.logThreadIds.length > 0) {
message.reply(getLang("threadList", logConfig.logThreadIds.join("\n")));
} else {
message.reply(getLang("noThreads"));
}
} else {
return message.reply("❌ Use: botlog thread on/off/add/remove/list");
}
break;
case "admin":
if (action === "on" || action === "enable") {
logConfig.sendToAdmins = true;
message.reply(getLang("adminEnabled"));
} else if (action === "off" || action === "disable") {
logConfig.sendToAdmins = false;
message.reply(getLang("adminDisabled"));
} else {
return message.reply("❌ Use: botlog admin on/off");
}
break;
case "silent":
if (action === "on" || action === "enable") {
logConfig.silentOnDisabledThreads = true;
message.reply(getLang("silentEnabled"));
} else if (action === "off" || action === "disable") {
logConfig.silentOnDisabledThreads = false;
message.reply(getLang("silentDisabled"));
} else {
return message.reply("❌ Use: botlog silent on/off");
}
break;
case "info":
case "config":
const status = logConfig.enable ? "✅ Enabled" : "❌ Disabled";
const threadStatus = logConfig.sendToThreads ? "✅ Enabled" : "❌ Disabled";
const threadIds = logConfig.logThreadIds && logConfig.logThreadIds.length > 0 ? logConfig.logThreadIds.join(", ") : "None";
const adminStatus = logConfig.sendToAdmins ? "✅ Enabled" : "❌ Disabled";
const silentStatus = logConfig.silentOnDisabledThreads ? "✅ Enabled" : "❌ Disabled";
const addedStatus = logConfig.logBotAdded ? "✅ Enabled" : "❌ Disabled";
const kickedStatus = logConfig.logBotKicked ? "✅ Enabled" : "❌ Disabled";
message.reply(getLang("currentConfig", status, threadStatus, threadIds, adminStatus, silentStatus) + `\n🤖 Bot Added: ${addedStatus}\n👋 Bot Kicked: ${kickedStatus}`);
break;
default:
if (subCommand === "on" || subCommand === "enable") {
logConfig.enable = true;
message.reply(getLang("enabled"));
} else if (subCommand === "off" || subCommand === "disable") {
logConfig.enable = false;
message.reply(getLang("disabled"));
} else {
return message.reply(getLang("syntaxError"));
}
}
// Save config changes
const fs = require("fs-extra");
fs.writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
if (!["info", "config", "added", "kicked", "thread", "admin", "silent"].includes(subCommand)) {
message.reply(subCommand === "on" || subCommand === "enable" ? getLang("enabled") : getLang("disabled"));
} {
return message.reply(getLang("syntaxError"));
}
switch (args[0].toLowerCase()) {
case "on":
case "enable": {
logConfig.enable = true;
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("enabled"));
}
case "off":
case "disable": {
logConfig.enable = false;
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("disabled"));
}
case "thread": {
if (!args[1]) return message.reply(getLang("syntaxError"));
switch (args[1].toLowerCase()) {
case "on":
case "enable":
logConfig.sendToThreads = true;
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("threadEnabled"));
case "off":
case "disable":
logConfig.sendToThreads = false;
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("threadDisabled"));
case "add":
if (!args[2]) return message.reply(getLang("syntaxError"));
const addThreadId = args[2];
if (!logConfig.logThreadIds.includes(addThreadId)) {
logConfig.logThreadIds.push(addThreadId);
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("threadAdded", addThreadId));
}
return message.reply(getLang("threadNotFound", addThreadId));
case "remove":
if (!args[2]) return message.reply(getLang("syntaxError"));
const removeThreadId = args[2];
const threadIndex = logConfig.logThreadIds.indexOf(removeThreadId);
if (threadIndex !== -1) {
logConfig.logThreadIds.splice(threadIndex, 1);
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("threadRemoved", removeThreadId));
}
return message.reply(getLang("threadNotFound", removeThreadId));
case "list":
if (logConfig.logThreadIds.length === 0) {
return message.reply(getLang("noThreads"));
}
const threadList = logConfig.logThreadIds.map((id, index) => `${index + 1}. ${id}`).join("\n");
return message.reply(getLang("threadList", threadList));
default:
return message.reply(getLang("syntaxError"));
}
}
case "admin": {
if (!args[1]) return message.reply(getLang("syntaxError"));
switch (args[1].toLowerCase()) {
case "on":
case "enable":
logConfig.sendToAdmins = true;
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("adminEnabled"));
case "off":
case "disable":
logConfig.sendToAdmins = false;
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("adminDisabled"));
default:
return message.reply(getLang("syntaxError"));
}
}
case "silent": {
if (!args[1]) return message.reply(getLang("syntaxError"));
switch (args[1].toLowerCase()) {
case "on":
case "enable":
logConfig.silentOnDisabledThreads = true;
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("silentEnabled"));
case "off":
case "disable":
logConfig.silentOnDisabledThreads = false;
writeFileSync(global.client.dirConfig, JSON.stringify(config, null, 2));
return message.reply(getLang("silentDisabled"));
default:
return message.reply(getLang("syntaxError"));
}
}
case "info": {
const threadIds = logConfig.logThreadIds.length > 0 ? logConfig.logThreadIds.join(", ") : "None";
return message.reply(getLang("currentConfig",
logConfig.enable ? "Enabled" : "Disabled",
logConfig.sendToThreads ? "Enabled" : "Disabled",
threadIds,
logConfig.sendToAdmins ? "Enabled" : "Disabled",
logConfig.silentOnDisabledThreads ? "Enabled" : "Disabled"
));
}
default:
return message.reply(getLang("syntaxError"));
}
}
};