Botpack / modules /commands /help.js
Jonell01's picture
Upload 64 files
2821330 verified
raw
history blame
3.86 kB
module.exports.config = {
name: "help",
version: "1.0.0",
hasPermssion: 0,
credits: "august",
description: "Guide for new users",
commandCategory: "system",
usages: "/help",
hide: true,
usePrefix: true,
cooldowns: 5,
envConfig: {
autoUnsend: true,
delayUnsend: 60
}
};
const mathSansBold = {
A: "๐– ", B: "๐–ก", C: "๐–ข", D: "๐–ฃ", E: "๐–ค", F: "๐–ฅ", G: "๐–ฆ", H: "๐–ง", I: "๐–จ",
J: "๐–ฉ", K: "๐–ช", L: "๐–ซ", M: "๐–ฌ", N: "๐–ญ", O: "๐–ฎ", P: "๐–ฏ", Q: "๐–ฐ", R: "๐–ฑ",
S: "๐–ฒ", T: "๐–ณ", U: "๐–ด", V: "๐–ต", W: "๐–ถ", X: "๐–ท", Y: "๐–ธ", Z: "๐–น",
a: "๐– ", b: "๐–ก", c: "๐–ข", d: "๐–ฃ", e: "๐–ค", f: "๐–ฅ", g: "๐–ฆ", h: "๐–ง", i: "๐–จ",
j: "๐–ฉ", k: "๐–ช", l: "๐–ซ", m: "๐–ฌ", n: "๐–ญ", o: "๐–ฎ", p: "๐–ฏ", q: "๐–ฐ", r: "๐–ฑ",
s: "๐–ฒ", t: "๐–ณ", u: "๐–ด", v: "๐–ต", w: "๐–ถ", x: "๐–ท", y: "๐–ธ", z: "๐–น"
};
module.exports.handleEvent = function ({ api, event, getText }) {
const { commands } = global.client;
const { threadID, messageID, body } = event;
if (!body || typeof body == "undefined" || body.indexOf("commands") != 0) return;
const splitBody = body.slice(body.indexOf("commands")).trim().split(/\s+/);
if (splitBody.length == 1 || !commands.has(splitBody[1].toLowerCase())) return;
const threadSetting = global.data.threadData.get(parseInt(threadID)) || {};
const command = commands.get(splitBody[1].toLowerCase());
const prefix = (threadSetting.hasOwnProperty("PREFIX")) ? threadSetting.PREFIX : global.config.PREFIX;
return api.sendMessage(getText("moduleInfo", command.config.name, command.config.description, `${prefix}${command.config.name} ${(command.config.usages) ? command.config.usages : ""}`, command.config.commandCategory, command.config.cooldowns, ((command.config.hasPermission == 0) ? getText("user") : (command.config.hasPermission == 1) ? getText("adminGroup") : getText("adminBot")), command.config.credits), threadID, messageID);
};
module.exports.run = async function ({ api, event, args }) {
const uid = event.senderID;
const userName = (await api.getUserInfo(uid))[uid].name;
const { commands } = global.client;
const { threadID, messageID } = event;
const threadSetting = global.data.threadData.get(parseInt(threadID)) || {};
const { autoUnsend, delayUnsend } = global.configModule[this.config.name];
const prefix = (threadSetting.hasOwnProperty("PREFIX")) ? threadSetting.PREFIX : global.config.PREFIX;
const categories = new Set();
const categorizedCommands = new Map();
for (const [name, value] of commands) {
if (value.config.hide) continue; // Skip hidden commands
const categoryName = value.config.commandCategory;
if (!categories.has(categoryName)) {
categories.add(categoryName);
categorizedCommands.set(categoryName, []);
}
categorizedCommands.get(categoryName).push(`โ”‚ โœง ${value.config.name}`);
}
let msg = `๐–ง๐–พ๐—’ ${userName}, ๐—๐—๐–พ๐—Œ๐–พ ๐–บ๐—‹๐–พ ๐–ผ๐—ˆ๐—†๐—†๐–บ๐—‡๐–ฝ๐—Œ ๐—๐—๐–บ๐— ๐—†๐–บ๐—’ ๐—๐–พ๐—…๐—‰ ๐—’๐—ˆ๐—Ž:\n\n`;
for (const categoryName of categories) {
const categoryNameSansBold = categoryName.split("").map(c => mathSansBold[c] || c).join("");
msg += `โ•ญโ”€โใ€Œ ${categoryNameSansBold} ใ€\n`;
msg += categorizedCommands.get(categoryName).join("\n");
msg += "\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โŸก\n";
}
msg += `โ”œโ”€โ”€โ”€โ”€โ”€โ˜พโ‹†\nโ”‚ ยป Total commands: [ ${commands.size} ]\nโ”‚ใ€Œ โ˜พโ‹† PREFIX: ${global.config.PREFIX} ใ€\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โŸก`;
return api.shareContact(msg, api.getCurrentUserID(), threadID, async (error, info) => {
if (autoUnsend) {
await new Promise(resolve => setTimeout(resolve, delayUnsend * 60000));
return api.unsendMessage(info.messageID);
} else return;
});
};