| | module.exports.config = {
|
| | name: "chat",
|
| | version: "1.0.0",
|
| | hasPermssion: 1,
|
| | credits: "Jonell Magallanes",
|
| | description: "",
|
| | usePrefix: true,
|
| | commandCategory: "Risk",
|
| | usages: "[on/off]",
|
| | cooldowns: 10
|
| | };
|
| | async function getUserName(api, senderID) {
|
| | try {
|
| | const userInfo = await api.getUserInfo(senderID);
|
| | return userInfo[senderID]?.name || "User";
|
| | } catch (error) {
|
| | console.log(error);
|
| | return "User";
|
| | }
|
| | }
|
| | var chat = {};
|
| |
|
| | module.exports.handleEvent = async function({api, event}) {
|
| | if (!Object.keys(chat).includes(String(event.threadID))) return;
|
| |
|
| | const botID = api.getCurrentUserID();
|
| | if (event.senderID === botID) return;
|
| |
|
| | const threadInfo = await api.getThreadInfo(event.threadID);
|
| |
|
| |
|
| | const isAdmin = threadInfo.adminIDs.some(adminInfo => adminInfo.id === event.senderID);
|
| |
|
| |
|
| | const isBotAdmin = threadInfo.adminIDs.some(adminInfo => adminInfo.id === botID);
|
| |
|
| |
|
| |
|
| | if (chat[String(event.threadID)] && !isAdmin && isBotAdmin) {
|
| | api.removeUserFromGroup(event.senderID, event.threadID); api.sendMessage(`${await getUserName(api, event.senderID)} has been removed from the group due the chat off has activated declared by Administrator group.`, event.threadID, event.messageID);
|
| | }
|
| | };
|
| |
|
| | module.exports.onLoad = function() {
|
| | const { readFileSync, existsSync, writeFileSync } = require("fs");
|
| | const path = __dirname + "/cache/chat.json";
|
| | if (existsSync(path)) {
|
| | chat = JSON.parse(readFileSync(path));
|
| | } else {
|
| | writeFileSync(path, JSON.stringify({}), 'utf-8');
|
| | }
|
| | };
|
| |
|
| | module.exports.run = async function({ api, event, args }) {
|
| | const { writeFileSync } = require("fs");
|
| | const path = __dirname + "/cache/chat.json";
|
| |
|
| | if (!(String(event.threadID) in chat)) chat[String(event.threadID)] = false;
|
| |
|
| | const threadInfo = await api.getThreadInfo(event.threadID);
|
| |
|
| | const isAdmin = threadInfo.adminIDs.some(adminInfo => adminInfo.id === event.senderID);
|
| |
|
| |
|
| | if (isAdmin) {
|
| | if (args[0] === "off") {
|
| | chat[String(event.threadID)] = true;
|
| | writeFileSync(path, JSON.stringify(chat), 'utf-8');
|
| | return api.sendMessage(`🛡️ | Chat off has been Activated. The bot will now remove non-admin members from the group when they chat.`, event.threadID);
|
| | } else if (args[0] === "on") {
|
| | chat[String(event.threadID)] = false;
|
| | writeFileSync(path, JSON.stringify(chat), 'utf-8');
|
| | return api.sendMessage(`✅ | Chat off has been Deactivated. The bot will no longer remove members when they chat.`, event.threadID);
|
| | } else {
|
| | return api.sendMessage('Use the command "chat on" to enable or "chat off" to disable chat.', event.threadID);
|
| | }
|
| | } else {
|
| | return api.sendMessage("Admin privilege is required to change chat settings.", event.threadID);
|
| | }
|
| | }; |