SUBZERO-MD / plugins /main-wa-presence.js
mrfrank-ofc's picture
Upload 63 files
8d8b0ad verified
raw
history blame
3.76 kB
const fs = require('fs');
const path = require('path');
const config = require('../config')
const {cmd , commands} = require('../command')
//auto recording
cmd({
on: "body"
},
async (conn, mek, m, { from, body, isOwner }) => {
if (config.AUTO_RECORDING === 'true') {
await conn.sendPresenceUpdate('recording', from);
}
}
);
//auto_voice
cmd({
on: "body"
},
async (conn, mek, m, { from, body, isOwner }) => {
const filePath = path.join(__dirname, '../data/autovoice.json');
const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
for (const text in data) {
if (body.toLowerCase() === text.toLowerCase()) {
if (config.AUTO_VOICE === 'true') {
//if (isOwner) return;
await conn.sendPresenceUpdate('recording', from);
await conn.sendMessage(from, { audio: { url: data[text] }, mimetype: 'audio/mpeg', ptt: true }, { quoted: mek });
}
}
}
});
//auto sticker
cmd({
on: "body"
},
async (conn, mek, m, { from, body, isOwner }) => {
const filePath = path.join(__dirname, '../data/autosticker.json');
const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
for (const text in data) {
if (body.toLowerCase() === text.toLowerCase()) {
if (config.AUTO_STICKER === 'true') {
//if (isOwner) return;
await conn.sendMessage(from,{sticker: { url : data[text]},package: 'SUBZERO-MD'},{ quoted: mek })
}
}
}
});
//auto reply
cmd({
on: "body"
},
async (conn, mek, m, { from, body, isOwner }) => {
const filePath = path.join(__dirname, '../data/autoreply.json');
const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
for (const text in data) {
if (body.toLowerCase() === text.toLowerCase()) {
if (config.AUTO_REPLY === 'true') {
//if (isOwner) return;
await m.reply(data[text])
}
}
}
});
// Composing (Auto Typing)
cmd({
on: "body"
},
async (conn, mek, m, { from, body, isOwner }) => {
if (config.AUTO_TYPING === 'true') {
await conn.sendPresenceUpdate('composing', from); // send typing
}
});
// Always Online
cmd({
on: "body"
}, async (conn, mek, m, { from, isOwner }) => {
try {
if (config.ALWAYS_ONLINE === "true") {
// Always Online Mode: Bot always appears online (double tick)
await conn.sendPresenceUpdate("available", from);
} else {
// Dynamic Mode: Adjust presence based on owner's status
if (isOwner) {
// If the owner is online, show as available (double tick)
await conn.sendPresenceUpdate("available", from);
} else {
// If the owner is offline, show as unavailable (single tick)
await conn.sendPresenceUpdate("unavailable", from);
}
}
} catch (e) {
console.log(e);
}
});
// Public Mod
cmd({
on: "body"
}, async (conn, mek, m, { from, isOwner }) => {
try {
if (config.ALWAYS_ONLINE === "true") {
// Public Mode + Always Online: Always show as online
await conn.sendPresenceUpdate("available", from);
} else if (config.PUBLIC_MODE === "true") {
// Public Mode + Dynamic: Respect owner's presence
if (isOwner) {
// If owner is online, show available
await conn.sendPresenceUpdate("available", from);
} else {
// If owner is offline, show unavailable
await conn.sendPresenceUpdate("unavailable", from);
}
}
} catch (e) {
console.log(e);
}
});