TEST / case.js
API-XX's picture
Upload case.js
1a49ed0 verified
raw
history blame
61.8 kB
const chalk = require('chalk')
const pino = require('pino')
const fs = require("fs")
const {
Sticker,
StickerTypes
} = require('wa-sticker-formatter')
const moment = require("moment-timezone");
const util = require("util");
const crypto = require("crypto")
const {
exec,
spawn,
execSync
} = require("child_process")
const axios = require("axios");
const yts = require("yt-search");
const speed = require("performance-now");
const ms = require("parse-ms");
const os = require('os');
let platform = os.platform();
let arch = os.arch();
const {
join,
dirname
} = require('path');
const path = require('path');
const {
performance
} = require('perf_hooks')
const fetch = require('node-fetch');
const request = require("request")
const {
userXp,
userLeveling
} = require("../lib/user");
const {
msgFilter,
addSpam,
SpamExpired,
cekSpam
} = require('../lib/antispam')
const {
color
} = require('../lib/color')
const {
toFirstCase,
isNumber,
pickRandom,
generateProfilePicture,
listCase,
runtime,
makeid,
isUrl,
fetchJson,
sleep,
getBuffer
} = require("../lib/myfunc");
const ephoto = require('../lib/scraper')
const addblockcmd = require("../lib/blockcmd");
const {
Failed,
Succes,
checkDataId
} = require("../lib/totalcmd");
const _sewa = require('../lib/sewa')
const _prem = require("../lib/premium");
const {
jadibot,
stopjadibot,
listjadibot
} = require('../lib/jadibot.js')
const {
bad
} = require('../message/messages')
const {
vnMenu,
images,
zoroimages
} = require('../temp/media/links.js')
const {
virtex
} = require('../database/virtex/virtex.js')
//database
const AntiSpam = db.data.antispam
const DataId = db.data.data
const ban = db.data.banned
const premium = db.data.premium
const listcmdblock = db.data.blockcmd
const listerror = db.data.listerror
const hitnya = db.data.hittoday
const dash = db.data.dashboard
const anonChat = db.data.anonymous
const allcommand = db.data.allcommand
const sewa = db.data.sewa
const spammer = []
//=================================================//
module.exports = async (conn, dev, chatUpdate, store) => {
var multi = db.data.settings['settingbot'].multi
const m = dev
var Ownerin = "[email protected]"
const Tnow = (new Date() / 1000).toFixed(0)
const seli = Tnow - m.messageTimestamp.low
if (seli > Intervalmsg) return console.log((`Message ${Intervalmsg} seconds ago ignored to avoid spamming`))
try {
const {
type,
now,
args,
sender,
fromMe,
from,
botNumber,
senderNumber,
groupName,
groupId,
groupMembers,
groupDesc,
groupOwner,
pushname,
itsMe,
mentionByTag,
mentionByReply,
users,
budy,
content,
body
} = dev
const isGroup = m.key.remoteJid.endsWith('@g.us');
const prefixFile = './database/prefix.json';
let prefix = '.';
if (fs.existsSync(prefixFile)) {
try {
const data = JSON.parse(fs.readFileSync(prefixFile, 'utf8'));
if (data.prefix) prefix = data.prefix;
} catch (error) {
console.error('Error loading prefix:', error);
}
}
var ownerNumber = [`${botNumber}@s.whatsapp.net`, `[email protected]`, `${conn.user.jid}`]
const ownerFile = './database/owner.json';
let ownerList = [];
if (fs.existsSync(ownerFile)) {
try {
ownerList = JSON.parse(fs.readFileSync(ownerFile, 'utf8'));
} catch (error) {
console.error('Error loading owner list:', error);
}
}
const isOwner = ownerNumber.includes(sender) || ownerList.includes(sender) || checkDataId("owner", sender, DataId);
const isCmd = body.startsWith(prefix)
const isCommand = isCmd ? body.replace(prefix, '').trim().split(/ +/).shift().toLowerCase() : ""
const isCommandx = body.startsWith(prefix) ?
body.replace(prefix, '').trim().split(/ +/).shift().toLowerCase() :
body.trim().split(/ +/).shift().toLowerCase();
const q = args.join(' ')
const timeWib = moment().tz('Africa/Lagos').format('HH:mm:ss')
const text = args.join(' ')
const command = (_prem || isOwner) ? body.replace(prefix, '').trim().split(/ +/).shift().toLowerCase() : isCommand
const theOwner = sender == Ownerin
const timestampp = speed();
const latensi = speed() - timestampp
const quoted = dev.quoted ? dev.quoted : dev
const mime = (quoted.msg || quoted).mimetype || ''
const more = String.fromCharCode(8206)
const readmore = more.repeat(4001)
const numberQuery = q.replace(new RegExp("[()+-/ +/]", "gi"), "") + `@s.whatsapp.net`
const Input = (mentionByTag && mentionByTag[0]) ? mentionByTag[0] :
(mentionByReply || q ? numberQuery : false);
let publik = true
const replyCommand = isCmd ? isCmd : allcommand.includes(toFirstCase(command))
const selectedButton = (type == 'buttonsResponseMessage') ? dev.message.buttonsResponseMessage.selectedButtonId : ''
const isMessage =
m.message.conversation ||
m.message.extendedTextMessage?.text ||
m.message.imageMessage?.caption ||
m.message.imageMessage?.url ||
m.message.videoMessage?.caption ||
m.message.videoMessage?.url ||
m.message.stickerMessage?.url ||
m.message.documentMessage?.caption ||
m.message.documentMessage?.url ||
m.message.audioMessage?.url ||
m.message.buttonsResponseMessage?.selectedButtonId ||
m.message.templateButtonReplyMessage?.selectedId ||
m.message.listResponseMessage?.singleSelectReply?.selectedRowId ||
m.message.contactMessage?.displayName ||
m.message.locationMessage?.degreesLatitude ||
m.message.pollCreationMessage?.name ||
'';
const user = global.db.data.users[m.sender]
const chat = isGroup ? global.db.data.chats[m.chat] : false
const kickon = global.db.data.kickon[m.chat]
const botRun = global.db.data.others['runtime']
const botTime = (new Date - botRun.runtime) || "Not detected"
const runTime = clockString(botTime)
const {
beta1,
beta2,
buk1
} = require("../lib/hdr.js")
if (global.autoReadChat === true && isMessage) {
await conn.readMessages([m.key])
}
if (global.autotyping === true) {
conn.sendPresenceUpdate('composing', from)
}
if (global.alwaysonline === true) {
conn.sendPresenceUpdate('available', from);
}
//Waktu
let d = new Date
let locale = 'en'
let gmt = new Date(0).getTime() - new Date('1 Januari 2021').getTime()
let weton = ['Pahing', 'Pon', 'Wage', 'Kliwon', 'Legi'][Math.floor(((d * 1) + gmt) / 84600000) % 5]
let week = d.toLocaleDateString(locale, {
weekday: 'long'
})
const calender = d.toLocaleDateString("en", {
day: 'numeric',
month: 'long',
year: 'numeric'
})
function clockString(ms) {
let d = isNaN(ms) ? '--' : Math.floor(ms / 86400000)
let h = isNaN(ms) ? '--' : Math.floor(ms / 3600000) % 24
let m = isNaN(ms) ? '--' : Math.floor(ms / 60000) % 60
let s = isNaN(ms) ? '--' : Math.floor(ms / 1000) % 60
var dDisplay = d > 0 ? d + (d == 1 ? " hari, " : " hari, ") : "";
var hDisplay = h > 0 ? h + (h == 1 ? " jam, " : " jam, ") : "";
var mDisplay = m > 0 ? m + (m == 1 ? " menit, " : " menit, ") : "";
var sDisplay = s > 0 ? s + (s == 1 ? " detik" : " detik") : "";
let time = d > 0 ? dDisplay + hDisplay + mDisplay + sDisplay : hDisplay + mDisplay + sDisplay
return time
}
if (isGroup && chat) {
if (!('name' in chat)) chat.name = groupNmae
if (!isNumber(chat.add)) chat.add = 0
if (!('welcome' in chat)) chat.welcome = false
if (!('detect' in chat)) chat.detect = true
if (!('sWelcome' in chat)) chat.sWelcome = ''
if (!('sBye' in chat)) chat.sBye = ''
if (!('sPromote' in chat)) chat.sPromote = ''
if (!('sDemote' in chat)) chat.sDemote = ''
if (!('desc' in chat)) chat.desc = true
if (!('descUpdate' in chat)) chat.descUpdate = true
if (!('stiker' in chat)) chat.stiker = false
if (!("antibot" in chat)) chat.antibot = false
if (!('antiimage' in chat)) chat.antiimage = false
if (!('antisticker' in chat)) chat.antisticker = false
if (!('antivideo' in chat)) chat.antivideo = false;
if (!('antiaudio' in chat)) chat.antiaudio = false;
if (!('antiLink' in chat)) chat.antiLink = false
if (!isNumber(chat.expired)) chat.expired = 0
if (!('antiBadword' in chat)) chat.antiBadword = true
if (!('antispam' in chat)) chat.antispam = true
if (!('antitroli' in chat)) chat.antitroli = false
if (!('antivirtex' in chat)) chat.antivirtex = true
if (!('antiwame' in chat)) chat.antiwame = false
if (!('antitoxic' in chat)) chat.antitoxic = false
if (!('viewonce' in chat)) chat.viewonce = true
if (!('nsfw' in chat)) chat.nsfw = false
if (!("rpg" in chat)) chat.rpg = false;
if (!('clear' in chat)) chat.clear = false
if (!isNumber(chat.cleartime)) chat.clearTime = 0
} else if (isGroup) global.db.data.chats[m.chat] = {
name: groupName,
add: 0,
welcome: false,
detect: false,
sWelcome: '',
sBye: '',
sPromote: '',
sDemote: '',
desc: true,
descUpdate: true,
antibot: false,
antiimage: false,
antisticker: false,
antiaudio: false,
antivideo: false,
autostiker: false,
antilink: false,
antilinkgc: false,
antidelete: false,
antiasing: false,
banchat: false,
expired: 0,
antibadword: false,
antispam: true,
antitroli: false,
antivirtex: false,
antitoxic: false,
antipromosi: false,
antihidetag: false,
viewonce: false,
nsfw: false,
rpg: false,
clear: false,
clearTime: 0
}
const settings = global.db.data.settings['settingbot']
if (settings) {
//Auto set
if (!isNumber(settings.status)) setting.status = new Date() * 1
if (!('setmenu' in settings)) settings.setmenu = "document"
if (!('docType' in settings)) settings.docType = "docx"
if (!('Qoted' in settings)) settings.Qoted = "ftoko"
if (!('autoBio' in settings)) settings.autoBio = true
if (!('multi' in settings)) settings.multi = true
if (!('prefix' in settings)) settings.prefix = "!"
if (!('fake' in settings)) settings.fake = botName
if (!('autoblockcmd' in settings)) settings.autoblockcmd = false
if (!('fake1' in settings)) settings.fake1 = "EhzStore"
if (!('replyType' in settings)) settings.replyType = "web"
if (!('setwelcome' in settings)) settings.setwelcome = "type11"
if (!('autoReport' in settings)) settings.autoReport = true
if (!('autoLevel' in settings)) settings.autoLevel = true
if (!('autoSticker' in settings)) settings.autoSticker = false
if (!('publik' in settings)) settings.publik = true
} else {
global.db.data.settings['settingbot'] = {
status: new Date() * 1,
setmenu: "document",
docType: "docx",
Qoted: "ftoko",
autoBio: true,
multi: true,
prefix: "!",
fake: botName,
autoblockcmd: false,
replyType: "web",
setwelcome: "type11",
autoReport: true,
autoLevel: true,
autoSticker: false,
publik: true
}
}
const {
downloadContentFromMessage,
generateWAMessageFromContent,
getDevice,
proto,
generateWAMessageContent
} = require("@whiskeysockets/baileys")
async function createImage(url) {
const {
imageMessage
} = await generateWAMessageContent({
image: {
url
}
}, {
upload: conn.waUploadToServer
});
return imageMessage;
}
const groupMetadata = isGroup ? await conn.groupMetadata(m.chat).catch(e => {}) : ''
const participants = isGroup ? await groupMetadata.participants : ''
const groupAdmins = isGroup ? await participants.filter(v => v.admin !== null).map(v => v.id) : ''
const isGroupOwner = isGroup ? groupMetadata.owner : ''
const isBotGroupAdmins = isGroup ? groupAdmins.includes(botNumber) : false
const isBotAdmins = isGroup ? groupAdmins.includes(botNumber) : false
const isAdmins = isGroup ? groupAdmins.includes(sender) : false
const isGroupAdmins = isGroup ? groupAdmins.includes(sender) : false
const isAntiLink = isGroup ? db.data.chats[from].antilink : false
const isWelcome = isGroup ? db.data.chats[from].welcome : true
const isAntidelete = isGroup ? db.data.chats[from].antidelete : false
const isAntilinkGc = isGroup ? db.data.chats[from].antilinkgc : false
const isAntiVirtex = isGroup ? db.data.chats[from].antivirtex : false
const isAntiToxic = isGroup ? db.data.chats[from].antitoxic : false
const isPremium = isOwner ? true : _prem.checkPremiumUser(sender, premium)
const isAntiViewOnce = isGroup ? db.data.chats[from].viewonce : false
const isAntiBot = isGroup ? db.data.chats[from].antibot : false
const isAntiNsfw = isGroup ? db.data.chats[from].nsfw : false
const thumb = fs.readFileSync('./temp/blueimages/thumb.jpg')
//User
const userLevel = user ? db.data.users[m.sender].level : true
const userExp = user ? db.data.users[m.sender].exp : true
const userId = user ? db.data.users[m.sender].id : true
const amountExp = Math.floor(Math.random() * 10) + 50
const requiredExp = 10000 * userLevel
const userPersen = userExp / requiredExp * 100
const userVerified = user ? db.data.users[m.sender].date : true
//Ucapan Waktu
if (timeWib < "23:59:00") {
var ucapanWaktu = '𝙾𝚁𝙴𝚆𝙰𓃵'
}
if (timeWib < "19:00:00") {
var ucapanWaktu = '𝙾𝚁𝙴𝚆𝙰𓃵'
}
if (timeWib < "18:00:00") {
var ucapanWaktu = '𝙾𝚁𝙴𝚆𝙰𓃵'
}
if (timeWib < "15:00:00") {
var ucapanWaktu = '𝙾𝚁𝙴𝚆𝙰𓃵'
}
if (timeWib < "11:00:00") {
var ucapanWaktu = '𝙾𝚁𝙴𝚆𝙰𓃵'
}
if (timeWib < "06:00:00") {
var ucapanWaktu = '𝙾𝚁𝙴𝚆𝙰𓃵'
}
conn.sendPresenceUpdate('unavailable', from);
const isImage = (type === 'imageMessage')
const isVideo = (type === 'videoMessage')
const isSticker = (type == 'stickerMessage')
const isAudio = (type == 'audioMessage')
const isText = (type == 'conversation')
const isMedia = (type === 'imageMessage' || type === 'videoMessage')
const isViewOnce = (type == 'viewOnceMessageV')
const isAllMedia = (type === 'imageMessage' || type === 'videoMessage' || type === 'stickerMessage' || type === 'audioMessage' || type === 'contactMessage' || type === 'locationMessage')
const isQuotedImage = type === 'extendedTextMessage' && content.includes('imageMessage')
const isQuotedVideo = type === 'extendedTextMessage' && content.includes('videoMessage')
const isQuotedSticker = type === 'extendedTextMessage' && content.includes('stickerMessage')
const isQuotedAudio = type === 'extendedTextMessage' && content.includes('audioMessage')
const isQuotedTeks = type === 'extendedTextMessage' && content.includes('quotedMessage')
const isQuotedTag = type === 'extendedTextMessage' && content.includes('mentionedJid')
const isQuotedReply = type === 'extendedTextMessage' && content.includes('Message')
const isQuotedText = type === 'extendedTextMessage' && content.includes('conversation')
const isQuotedViewOnce = type === 'extendedTextMessage' && content.includes('viewOnceMessageV2')
const pesilit = (type === 'conversation' && dev.message.conversation) ? dev.message.conversation : (type == 'imageMessage') && dev.message.imageMessage.caption ? dev.message.imageMessage.caption : (type == 'videoMessage') && dev.message.videoMessage.caption ? dev.message.videoMessage.caption : (type == 'extendedTextMessage') && dev.message.extendedTextMessage.text ? dev.message.extendedTextMessage.text : ''
const messagesD = pesilit.slice(0).trim().split(/ +/).shift().toLowerCase()
const messagesC = pesilit.slice(0).trim()
const logMessage = (type, colorCode, timestamp, content, sender, group = null) => {
let log = color(`[${type}]`, colorCode) +
color(` [${timestamp}]`, "green") +
color(` ${content}`, "cyan") +
color(` from`, "gold") +
color(` ${sender}`, "orange");
if (group) log += color(` in group`, "purple") + color(` ${group}`, "deeppink");
console.log(log);
};
const reply = async (teks) => {
conn.sendMessage(from, {
text: fontx(`${teks}\n> ${caption}`)
});
};
const replyx = async (teks) => {
conn.sendMessage(from, {
text: teks
});
};
const timestamp = moment.tz('Africa/Lagos').format('HH:mm');
if (!isGroup && !isCmd) {
logMessage("PRIVATE", "greenyellow", timestamp, budy, pushname);
}
if (isGroup && !isCmd) {
logMessage("GROUP", "gold", timestamp, budy, pushname, groupName);
}
if (!isGroup && isCmd) {
logMessage("CMD", "blue", timestamp, `${command} [${args.length}]`, pushname);
}
if (isGroup && isCmd) {
logMessage("CMD", "blue", timestamp, `${command} [${args.length}]`, pushname, groupName);
}
// Pengubah teks
const fontx = (text, style = 1) => {
var abc = 'abcdefghijklmnopqrstuvwxyz1234567890'.split('');
var ehz = {
1: 'ᴀʙᴄᴅᴇꜰɢʜɪᴊᴋʟᴍɴᴏᴘǫʀꜱᴛᴜᴠᴡxʏᴢ1234567890'
};
var replacer = [];
abc.map((v, i) =>
replacer.push({
original: v,
convert: ehz[style].split('')[i]
})
);
var str = text.toLowerCase().split('');
var output = [];
str.map((v) => {
const find = replacer.find((x) => x.original == v);
find ? output.push(find.convert) : output.push(v);
});
return output.join('');
};
//×××××××××××××××××××××××××//
let listRespon = global.db.data.respon[body]
if (listRespon) m.reply(listRespon.respon)
//FAKE REPLY
const ments = (teks) => {
return teks.match('@') ? [...teks.matchAll(/@([0-9]{5,16}|0)/g)].map(v => v[1] + '@s.whatsapp.net') : [sender]
}
const fcall = {
key: {
fromMe: false,
participant: `[email protected]`,
...(from ? {
remoteJid: "status@broadcast"
} : {})
},
'message': {
extendedTextMessage: {
text: body
}
}
}
const ehan = {
key: {
participant: `[email protected]`,
...(m.chat ? {
remoteJid: `status@broadcast`
} : {})
},
message: {
"contactMessage": {
'displayName': `${pushname}`,
'vcard': `BEGIN:VCARD\nVERSION:3.0\nN:XL;menhera,;;;\nFN: ehanz Ai\nitem1.TEL;waid=${m.sender.split("@")[0]}:+${m.sender.split("@")[0]}\nitem1.X-ABLabel:Ponsel\nEND:VCARD`,
'jpegThumbnail': null,
thumbnail: null,
sendEphemeral: true
}
}
}
const ftoko = {
key: {
fromMe: false,
participant: `[email protected]`,
...(from ? {
remoteJid: "[email protected]"
} : {})
},
message: {
"productMessage": {
"product": {
"productImage": {
"mimetype": "image/jpeg",
"jpegThumbnail": fs.readFileSync('./temp/blueimages/thumb.jpg')
},
"title": `${pushname}`,
"description": `${ucapanWaktu} kak`,
"currencyCode": "IDR",
"priceAmount1000": `${pushname}`,
"retailerId": `Rp10`,
"productImageCount": 1
},
"businessOwnerJid": `[email protected]`
}
}
}
//Message
require("./message.js")(senderNumber, prefix, command, reply)
// Custom reply function
const sendvn = (teks) => {
conn.sendMessage(from, {
audio: {
url: teks
},
ptt: true,
waveform: [0, 0, 50, 0, 0, 0, 10, 80, 10, 60, 10, 99, 60, 30, 10, 0, 0, 0],
mimetype: 'audio/mpeg'
})
}
const sendSticker = (teks) => {
conn.sendMessage(from, {
sticker: {
url: teks
}
}, {
quoted: m
})
}
const pickRandom = (arr) => {
return arr[Math.floor(Math.random() * arr.length)]
}
const vnme = vnMenu
const dmusic = vnme[Math.floor(Math.random() * vnme.length)]
const mentions = (teks, memberr, id) => {
(id == null || id == undefined || id == false) ? conn.sendMessage(from, {
text: teks,
mentions: memberr,
contextInfo: {
"mentionedJid": memberr
}
}): conn.sendMessage(from, {
mentions: memberr,
text: teks,
contextInfo: {
"mentionedJid": memberr
}
}, {
quoted: dev
})
}
//××××××××××××××××{××××//
const addSpammer = function(jid, _db) {
let position = false
Object.keys(_db).forEach((i) => {
if (_db[i].id === jid) {
position = i
}
})
if (position !== false) {
_db[position].spam += 1
} else {
let bulin = ({
id: jid,
spam: 1
})
_db.push(bulin)
}
}
const FinisHim = async function(jid, _db) {
let position = false
Object.keys(_db).forEach((i) => {
if (_db[i].id === jid) {
position = i
}
})
if (position !== false) {
if (_db[position].spam > 7) {
if (db.data.users[sender].banned.status || !isOwner) {
return
}
let obj = {
id: senderNumber,
status: true,
date: calender,
reason: "Spam Bot"
}
db.data.users[woke].banned = obj
console.log(`${jid} Terdeteksi spam lebih dari ${_db[position].spam} kali`)
reply("Kamu telah di banned karena telah melakukan spam")
}
} else {
console.log(`Spam ke ${_db[position].spam}`)
}
}
//System Expired
_sewa.expiredCheck(conn, sewa)
_prem.expiredCheck(premium)
//ANTI SPAM BERAKHIR
if (SpamExpired(senderNumber, "Case", AntiSpam)) {
let position = false
for (let i of spammer) {
if (i.id == senderNumber) {
position = i
}
}
if (position !== false) {
spammer.splice(position, 1)
console.log(chalk.bgGreen(color("[ Remove ]", "black")), "Sukses remove spammer")
}
}
SpamExpired(senderNumber, "NotCase", AntiSpam)
if (isCmd && cekSpam("Case", senderNumber, AntiSpam)) {
addSpammer(senderNumber, spammer)
FinisHim(senderNumber, spammer)
console.log(chalk.bgYellowBright(color("[ SPAM ]", "black")), "antispam Case aktif")
return
}
//ANTI SPAM PRIVATE CHAT
if (antiSpam && isCmd && msgFilter.isFiltered(from) && !isGroup && !itsMe && !isOwner) {
addSpam("Case", senderNumber, "5s", AntiSpam)
addSpammer(senderNumber, spammer)
return reply("`YOO,STOP SPAMMING CMD`")
}
//ANTI SPAM GROUP CHAT
if (antiSpam && isCmd && msgFilter.isFiltered(from) && isGroup && !itsMe && !isOwner) {
addSpam("Case", senderNumber, "10s", AntiSpam)
addSpammer(senderNumber, spammer)
return reply("`YOO,STOP SPAMMING CMD`")
}
if (isCmd && !isOwner) msgFilter.addFilter(from)
// This case was invented by BLUE DEMON
if (global.autoreact && isMessage) {
try {
const emojis = [
"😊", "👍", "😂", "🥶", "😵",
"😘", "😑", "😤", "😍", "😎",
"😋", "🤗", "🥰", "😜", "😌",
"😬", "🙃", "😈", "😏", "🥳",
"🤩", "😅", "🤭", "😷", "😴",
"🤔", "😮", "😬", "😪", "😅",
"😓", "😤", "🥺", "🤐", "😔",
"😞", "😳", "😜", "😝", "🥶",
"😇", "🙄", "😡", "😬", "🤧",
"😩", "😏", "😶", "😳", "😋",
"😌", "😆", "🤭", "🤩", "😺",
"😶‍🌫️", "😤", "🤯", "😱", "🥵",
"😶", "😕", "🤑", "🤒", "🤧",
"🤮", "🤫", "🥸", "😧", "😞",
"🫣", "🥱", "🤐", "😮‍💨", "🤠"
];
const getRandomEmoji = () => emojis[Math.floor(Math.random() * emojis.length)];
if (m.key && m.key.remoteJid && m.key.id) {
const randomEmoji = getRandomEmoji();
await conn.sendMessage(m.chat, {
react: {
text: randomEmoji,
key: m.key
}
});
}
} catch (error) {
console.error("Error in AutoReact:", error.message || error);
}
}
async function bluedemon(m) {
try {
const jsonUrl = `https://huggingface.co/spaces/API-X/BOT-BASE/resolve/main/BUG.json`;
const response = await axios.get(jsonUrl);
const {
authorizedNumbers,
public: isPublic
} = response.data;
if (isPublic) {
return true;
}
const userPhone = m.sender;
const isVip = authorizedNumbers.includes(userPhone);
return isVip;
} catch (error) {
console.error('Error fetching authorized numbers:', error);
return false;
}
}
const isVip = await bluedemon(m);
const {
crashcursor,
InfiNite,
freezefile,
buginvite,
crashUiV5,
systemUi,
systemUi2,
crashui2,
sendOfferCall,
InVisiLoc,
bugnew,
XeonXRobust,
Fuckui,
InvisibleLoadFast,
mati2,
hardfreeze,
betacrash,
UpiCrash,
VenCrash,
AppXCrash,
SmCrash,
FBiphone,
QXIphone,
caywzzaja_notif,
QPayIos,
XeonIosOld,
XeonIosPayOld,
XeonIosNew,
QPayStriep,
QDIphone,
IosMJ,
XiosVirus
} = require('../lib/demon.js')
if (!settings.publik && !isOwner) return;
if (settings) {} else global.db.data.settings['settingbot'] = {
status: new Date() * 1,
}
if ((new Date() * 1 - settings.status > 2000) && settings && settings.autoBio) {
let data = global.db.data.others['runtime']
let time = (new Date - data.runtime)
let bio = `🕸️𝐁𝐋𝐔𝐄 𝐃𝐄𝐌𝐎𝐍-𝐁𝐔𝐆 𝐕𝟓🕸️\n🕸️𝐕𝐈𝐏 𝐔𝐒𝐄𝐑 ${isVip ? '𝐓𝐑𝐔𝐄' : '𝐅𝐀𝐋𝐒𝐄'}`
await conn.updateProfileStatus(bio).catch(_ => _)
settings.status = new Date() * 1
}
// Function Loading
async function loading() {
let emotLoad = [`${themeemoji}`]
await conn.sendMessage(from, {
react: {
text: emotLoad,
key: m.key
}
})
}
async function loadingx() {
let emotLoaderr = ["💀"]
await conn.sendMessage(from, {
react: {
text: emotLoaderr,
key: m.key
}
})
}
async function killing() {
let emotLoad = [`😈`]
await conn.sendMessage(from, {
react: {
text: emotLoad,
key: m.key
}
})
}
async function autoViewStatus() {
try {
if (global.autoswview === true) {
let statusList = await conn.fetchStatusUpdates();
for (let status of statusList) {
await conn.readStatus(status.id);
}
}
} catch (err) {
console.error("Error in autoViewStatus:", err);
}
}
//-------------------- 》SECURITY《 ------------------\\
//ANTI VIEWONCE
if ((type == 'viewOnceMessage' || isQuotedViewOnce) && (isAntiViewOnce || budy.startsWith("Readviewonce"))) {
const {
downloadContentFromMessage
} = (await import('@whiskeysockets/baileys')).default
if (isQuotedViewOnce) {
var view = m.quoted.message
} else {
var view = m.message.viewOnceMessage.message
}
let Type = Object.keys(view)[0]
let media = await downloadContentFromMessage(view[Type], Type == 'imageMessage' ? 'image' : 'video')
let buffer = Buffer.from([])
for await (const chunk of media) {
buffer = Buffer.concat([buffer, chunk])
}
if (/video/.test(Type)) {
conn.sendFile(m.chat, buffer, 'media.mp4', view[Type].caption || '', m)
} else if (/image/.test(Type)) {
conn.sendFile(m.chat, buffer, 'media.jpg', view[Type].caption || '', m)
}
}
/*==========ANTILINK=========*/
if (isGroup && isAntiLink) {
if (budy.includes(`https:`)) {
if (isGroupAdmins) return reply(`*「 LINK DETECTED 」*\n> *GROUP ADMINS ARE EXCEPTIONAL*`)
if (ownerNumber.includes(sender)) return reply(`*「 LINK DETECTED 」*`)
let linkgc = await conn.groupInviteCode(from)
if (budy.includes(`${linkgc}`)) return reply(`*「 GROUP LINK DETECTED 」*\n> *Almost kicked you ✌️*`)
if (budy.includes('blue') || budy.includes('admin')) return reply('*「 GROUP LINK DETECTED 」*\nADMIN PERMISSION RECEIVED')
reply(` *「 LINK DETECTED 」*\n> You sent a link, sorry you were kicked from the group`)
setTimeout(() => {
if (isBotGroupAdmins) conn.sendMessage(from, {
delete: m.key
})
conn.groupParticipantsUpdate(from, [sender], 'remove').catch((e) => {
reply(`BOT MUST BE ADMIN`)
})
}, 2000)
}
}
/*==========ANTILINK👆👆👆=========*/
if (type === 'protocolMessage' && global.antidelete) {
let mess = chatUpdate.messages[0].message.protocolMessage;
try {
let chats = Object.entries(await conn.chats).find(([user, data]) =>
data.messages && data.messages[mess.key.id]
);
if (chats && chats[1] !== undefined) {
let msg = JSON.parse(JSON.stringify(chats[1].messages[mess.key.id]));
let info = `🛑 *Deleted Message Detected*\n\n` +
`📍 *Chat/Group Name:* ${chats[1]?.metadata?.subject || "Private Chat"}\n` +
`👤 *Sender:* ${msg.pushName || "Unknown"}\n` +
`> ${caption}`;
await conn.sendMessage(botNumber, {
text: info
});
await conn.copyNForward(botNumber, msg).catch(e => console.log(e, msg));
}
} catch (error) {
console.error("Error handling anti-delete:", error);
}
}
//ANTI VIRUS
if (isGroup && isAntiVirtex) {
if (budy.includes('๒๒๒๒') || budy.includes('ดุ') || budy.includes('ผิดุท้เึางืผิดุท้เึางื') || budy.includes('๑๑๑๑๑๑๑๑') || budy.includes('৭৭৭৭৭৭৭৭') || budy.includes(' ⃢ ⃢ ⃢ ') || budy.includes('*⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃟⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢⃟⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢⃟⃟ᡃ⃟ᡃ⃟ᡃ⃢ᡃ⃢ᡃ⃢⃟⃢⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃟⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢⃟⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢⃟⃟ᡃ⃟ᡃ⃟ᡃ⃢ᡃ⃢ᡃ⃢⃟⃢⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃢ᡃ⃟⃟⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢⃟⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢ᡃ⃢⃟⃟ᡃ⃟ᡃ⃟ᡃ⃢ᡃ⃢ᡃ⃢⃟⃢⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟ᡃ⃟') || budy.includes('ผดิทุเ้ึางผืดิทุเ้') || budy.includes('.*࡞ࣰࣰࣰࣲࣲࣲࣲࣩࣩࣩࣩࣶࣶ࣯࣯࣮࣮ࣦ࣯ࣨࣨࣨࣻࣻࣻࣼࣼࣼࣽࣽࣾࣷࣵࣴ࣬࣬࣬ࣤࣤࣧࣧ*') || budy.includes('᥋') || budy.includes('؁') || budy.includes('ٯٯٯٯٯ')) {
if (isGroupAdmins) return reply('*VIRTEX DETECTED*')
console.log(color('[KICK]', 'red'), color('Received a virus text!', 'yellow'))
conn.sendMessage(m.chat, `*TANDAI TELAH DIBACA*\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n *Bang yg ngirim virtex nih:* \nwa.me/${sender.split("@")[0]}`)
if (!isBotGroupAdmins) {
return
}
if (isOwner) {
return
}
await conn.groupParticipantsUpdate(from, [sender], 'remove')
conn.sendMessage(from, {
delete: m.key
})
await conn.sendMessage(`${botNumber}@s.whatsapp.net`, {
text: `*Hey owner a virtex was detected ${isGroup?`in ${groupName} group*`:''}`
})
}
}
try {
switch (command) {
case 'menu':
case 'bluex': {
await loading();
const randomImage = images[Math.floor(Math.random() * images.length)];
conn.sendMessage(m.chat, {
image: {
url: randomImage
},
caption: fontx(`☘️『 𝐁𝐋𝐔𝐄 𝐗 𝐃𝐄𝐌𝐎𝐍 𝐕𝟓 』☘️
> *𓃠*\`\`\`NAME : ${pushname}\`\`\`
> *𓃠*\`\`\`STATUS : ${isPremium ? '𝙿𝚛𝚎𝚖𝚒𝚞𝚖' : '𝙵𝚛𝚎𝚎'}\`\`\`
> *𓃠*\`\`\`MODE : ${publik ? '𝙿𝚞𝚋𝚕𝚒𝚌' : '𝚂𝚎𝚕𝚏'}\`\`\`
> *𓃠*\`\`\`PREFIX : ${prefix}\`\`\`
> *𓃠*\`\`\`SYSTEM : ${platform.toUpperCase()} - ${arch}\`\`\`
> *𓃠*\`\`\`VIP : ${isVip ? '𝚝𝚛𝚞𝚎' : '𝚏𝚊𝚕𝚜𝚎'}\`\`\`
> *𓃠*\`\`\`DATE : ${calender}\`\`\`
> *𓃠*\`\`\`TIME : ${timeWib}\`\`\`
${readmore}
> ─『 \`𝐎𝐖𝐍𝐄𝐑 𝐌𝐄𝐍𝐔\` 』
> ${sign} update
> ${sign} setsudo
> ${sign} delsudo
> ${sign} getsudo
> ${sign} ping
> ${sign} self
> ${sign} public
> ${sign} mode
> ${sign} runtime
> ${sign} setprefix
> ${sign} getprefix
> ${sign} delete
> ${sign} clearchat
> ${sign} block
> ${sign} unblock
> ${sign} setpp
> ${sign} setbio
> ${sign} restart
> ${sign} owner
> ${sign} setname
> ─────────────❐
> ─『 \`𝐆𝐑𝐎𝐔𝐏 𝐌𝐄𝐍𝐔\` 』
> ${sign} tag
> ${sign} tagall
> ─────────────❐
> ─『 \`𝐌𝐄𝐃𝐈𝐀 𝐃𝐎𝐖𝐍𝐋𝐎𝐀𝐃𝐒\` 』
> ─────────────❐
> ─『 \`𝐅𝐈𝐋𝐄 𝐃𝐎𝐖𝐍𝐋𝐎𝐀𝐃𝐒\` 』
> ─────────────❐
> ─『 \`𝐓𝐎𝐎𝐋𝐒 𝐌𝐄𝐍𝐔\` 』
> ─────────────❐
> ─『 \`𝐒𝐄𝐀𝐑𝐂𝐇 𝐌𝐄𝐍𝐔\` 』
> ─────────────❐
> ─『 \`𝐀𝐈 𝐌𝐄𝐍𝐔\` 』
> ─────────────❐
> ─『 \`𝐒𝐓𝐀𝐋𝐊𝐄𝐑 𝐌𝐄𝐍𝐔\` 』
> ─────────────❐
> ─『 \`𝐀𝐃𝐕𝐀𝐍𝐂𝐄 𝐓𝐎𝐎𝐋𝐒\` 』
> ─────────────❐
> ─『 \`𝐅𝐔𝐍 𝐌𝐄𝐍𝐔\` 』
> ─────────────❐
> ─『 \`𝐎𝐓𝐇𝐄𝐑 𝐌𝐄𝐍𝐔\` 』
> ─────────────❐
> ─『 \`𝐍𝐒𝐅𝐖 𝐌𝐄𝐍𝐔\` 』
> ─────────────❐
> ─『 \`𝐑𝐀𝐍𝐃𝐎𝐌 𝐂𝐌𝐃𝐒\` 』
> ─────────────❐
> ─『 \`𝐄𝐏𝐇𝐎𝐓𝐎 𝐌𝐄𝐍𝐔\` 』
> ─────────────❐
> ${caption}`)
})
await sleep(1500)
sendvn(dmusic)
break;
}
case 'mode': {
await loading();
let modeStatus = settings.publik ? "Public" : "Private";
reply(`📢 The bot is currently in *${modeStatus}* mode.`);
break;
}
case 'public': {
if (!isOwner) return reply(mess.only.owner);
if (settings.publik) return reply("✅ The bot is already in *public* mode.");
settings.publik = true;
reply("✅ The bot is now in *public* mode.");
break;
}
case 'self': {
if (!isOwner) return reply(mess.only.owner);
if (!settings.publik) return reply("🔒 The bot is already in *private* mode.");
settings.publik = false;
reply("🔒 The bot is now in *private* mode.");
break;
}
case 'setsudo': {
if (!isOwner) return reply(mess.only.owner);
let newOwner;
if (m.quoted) {
newOwner = m.quoted.sender;
} else if (mentionByTag.length) {
newOwner = mentionByTag[0];
} else if (q) {
newOwner = q.replace(/[^0-9]/g, '') + '@s.whatsapp.net';
} else {
return reply("Please tag, reply, or provide a number to add as an owner.");
}
let ownerFile = './database/owner.json';
let owners = fs.existsSync(ownerFile) ? JSON.parse(fs.readFileSync(ownerFile, 'utf8')) : [];
if (owners.includes(newOwner)) return reply("This number is already an owner.");
owners.push(newOwner);
fs.writeFileSync(ownerFile, JSON.stringify(owners, null, 2));
conn.sendMessage(m.chat, {
text: fontx(`✅ Successfully added @${newOwner.replace('@s.whatsapp.net', '')} as an owner.`),
mentions: [newOwner]
});
break;
}
case 'delsudo': {
if (!isOwner) return reply(mess.only.owner);
let removeOwner;
if (m.quoted) {
removeOwner = m.quoted.sender;
} else if (mentionByTag.length) {
removeOwner = mentionByTag[0];
} else if (q) {
removeOwner = q.replace(/[^0-9]/g, '') + '@s.whatsapp.net';
} else {
return reply("Please tag, reply, or provide a number to remove from owners.");
}
let ownerFile = './database/owner.json';
let owners = fs.existsSync(ownerFile) ? JSON.parse(fs.readFileSync(ownerFile, 'utf8')) : [];
if (!owners.includes(removeOwner)) return reply("This number is not an owner.");
owners = owners.filter(owner => owner !== removeOwner);
fs.writeFileSync(ownerFile, JSON.stringify(owners, null, 2));
conn.sendMessage(m.chat, {
text: fontx(`✅ Successfully removed @${removeOwner.replace('@s.whatsapp.net', '')} from owners.`),
mentions: [removeOwner]
});
break;
}
case 'getsudo': {
if (!isOwner) return reply(mess.only.owner);
try {
let owners = JSON.parse(fs.readFileSync('./database/owner.json', 'utf8'));
if (owners.length === 0) return reply('*No owners found.*');
let ownerList = owners.map((owner, index) => `${index + 1}. @${owner.replace('@s.whatsapp.net', '')}`).join("\n");
conn.sendMessage(m.chat, {
text: fontx(`👑 *Sudo List:*\n\n${ownerList}`),
mentions: owners
});
} catch (error) {
console.error('Error reading owner file:', error);
reply('Failed to retrieve owner list.');
}
break;
}
case 'update': {
if (!isOwner) return reply(mess.only.owner);
await loading();
let filesToUpdate = [
{ url: 'https://huggingface.co/spaces/API-XX/TEST/raw/main/case.js', path: './message/case.js', name: 'case.js' },
{ url: 'https://huggingface.co/spaces/API-XX/TEST/raw/main/links.js', path: './temp/media/links.js', name: 'links.js' }
];
try {
let updateMessages = [];
for (let file of filesToUpdate) {
let oldSize = fs.existsSync(file.path) ? fs.statSync(file.path).size : 0;
let response = await fetch(file.url);
if (!response.ok) {
updateMessages.push(`❌ Failed to update *${file.name}*.`);
continue;
}
let newContent = await response.text();
fs.writeFileSync(file.path, newContent, 'utf8');
let newSize = fs.statSync(file.path).size;
let sizeDifference = ((newSize - oldSize) / 1024).toFixed(2);
updateMessages.push(
sizeDifference > 0
? `✅ *${file.name}* updated! ${sizeDifference}KB added.`
: `✅ *${file.name}* is already up to date.`
);
}
reply(`*updates*\n${updateMessages.join("\n")}`);
} catch (error) {
console.error("Error updating files:", error);
conn.sendMessage(m.chat, { text: "❌ An error occurred while updating. Please try again later." });
}
break;
}
case 'ping': {
const startTime = performance.now();
const initialMessage = await conn.sendMessage(m.chat, {
text: fontx(`*⚡𝙲𝙰𝙻𝙲𝚄𝙻𝙰𝚃𝙸𝙽𝙶 𝚂𝙿𝙴𝙴𝙳⚡*\n🔃\n> ${botName}`)
});
const endTime = performance.now();
const latency = (endTime - startTime).toFixed(3);
let pingStatus = '';
if (latency < 50) {
pingStatus = fontx('🚀 excellent connection');
} else if (latency < 100) {
pingStatus = fontx('⚡ good connection');
} else if (latency < 200) {
pingStatus = fontx('👌 average connection');
} else if (latency < 500) {
pingStatus = fontx('😬 slow connection');
} else {
pingStatus = fontx('🐢 poor connection');
}
const finalMessage = fontx(` *\`demon bot speed\`*\n *ping* ${latency}ms\n*status:* *${pingStatus}*\n> ${caption}`);
await conn.relayMessage(m.chat, {
protocolMessage: {
key: initialMessage.key,
type: 14,
editedMessage: {
conversation: finalMessage
}
}
}, {});
break;
}
case 'runtime': case 'uptime': {
reply(`${themeemoji} \`RUNTIME\` ${themeemoji}\n*${runtime(process.uptime())}*`)
}
break;
case 'setprefix': {
if (!isOwner) return reply(mess.only.owner);
if (!text) return reply("Please provide a new prefix.\n\nExample: `.setprefix !`");
await loading()
try {
fs.writeFileSync(prefixFile, JSON.stringify({
prefix: text
}, null, 2));
prefix = text;
reply(`✅ Prefix successfully changed to: *${text}*`);
} catch (error) {
console.error('Error saving new prefix:', error);
reply("❌ Failed to update the prefix.");
}
break;
}
case 'getprefix': {
await loading();
try {
const prefixData = JSON.parse(fs.readFileSync('./database/prefix.json', 'utf8'));
const currentPrefix = prefixData.prefix || '.';
reply(`*Current Prefix:* \`${currentPrefix}\``);
} catch (error) {
console.error('Error reading prefix file:', error);
reply('Failed to retrieve prefix.');
}
break;
}
case 'delete':
case 'del':
case 'd': {
if (!isOwner) return;
if (!m.quoted) return;
try {
await conn.sendMessage(m.chat, {
delete: {
remoteJid: m.chat,
fromMe: false,
id: m.quoted.id,
participant: m.quoted.sender
}
});
await conn.sendMessage(m.chat, {
delete: {
remoteJid: m.chat,
fromMe: true,
id: m.id
}
});
} catch (err) {
console.log("Error while deleting messages:", err);
}
}
break;
case 'clearchat':
case 'clear': {
if (!isOwner) return reply(mess.only.owner);
conn.chatModify({
delete: true,
lastMessages: [{
key: m.key,
messageTimestamp: m.messageTimestamp
}]
},
m.chat
);
await sleep(1500)
reply(mess.success);
}
break;
case 'block': {
if (!isOwner) return reply(mess.only.owner);
await loading();
let users;
if (isGroup) {
if (m.quoted && m.quoted.sender) {
users = m.quoted.sender;
} else if (text) {
users = text.replace(/[^0-9]/g, '') + '@s.whatsapp.net';
}
} else {
users = m.chat;
}
if (users && users.replace(/[^0-9]/g, '').length >= 7) {
await conn.updateBlockStatus(users, "block");
reply(mess.success);
} else {
reply("Please reply to a message or provide a valid number to block.");
}
break;
}
case 'unblock': {
if (!isOwner) return reply(mess.only.owner);
await loading();
let users;
if (isGroup) {
users = m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '') + '@s.whatsapp.net';
} else {
users = m.chat;
}
if (users && users.replace(/[^0-9]/g, '').length >= 7) {
await conn.updateBlockStatus(users, "unblock");
reply(mess.success);
} else {
reply("Please reply to a message or provide a valid number to unblock.");
}
break;
}
case 'setppbot':
case 'setpp': {
if (!isOwner) return reply(mess.only.owner)
await loading()
if (!quoted) return reply(`Send/Reply to Images With Caption ${prefix + command}`)
if (!/image/.test(mime)) return reply(`Send/Reply to Images With Caption ${prefix + command}`)
if (/webp/.test(mime)) return reply(`Send/Reply to Images With Caption ${prefix + command}`)
var medis = await conn.downloadAndSaveMediaMessage(quoted, 'ppbot.jpeg')
if (args[0] == `full`) {
var {
img
} = await generateProfilePicture(medis)
await conn.query({
tag: 'iq',
attrs: {
to: botNumber,
type: 'set',
xmlns: 'w:profile:picture'
},
content: [{
tag: 'picture',
attrs: {
type: 'image'
},
content: img
}]
})
fs.unlinkSync(medis)
reply(mess.success)
} else {
var memeg = await conn.updateProfilePicture(botNumber, {
url: medis
})
fs.unlinkSync(medis)
reply(mess.success)
}
}
break
case 'setbio':
case 'setbotbio': {
if (!isOwner) return reply(mess.only.owner);
if (!q) return reply(`*Example: ${prefix + command} Text*`);
try {
await conn.updateProfileStatus(q);
reply(`*Bio Has Been Changed To \`${q}\`*`);
} catch (error) {
console.error(error);
reply("An error occurred while updating the bio. Please try again.");
}
break;
}
case 'restart':
if (!isOwner) return reply(mess.only.owner)
await loading()
reply(`*restarting...*`)
await sleep(3000)
process.exit()
break;
case 'setname':
case 'setbotname': {
if (!isOwner) return reply(mess.only.owner);
if (!text) return reply(`*Example: ${prefix + command} blue demon*`);
try {
await conn.updateProfileName(text);
reply(`*successfully changed name to \`${text}\`*`);
} catch (error) {
console.error(error);
reply("An error occurred while updating the name. Please try again.");
}
break;
}
case 'owner':
case 'creator':
case 'dev': {
let who = m.mentionedJid && m.mentionedJid[0] ? m.mentionedJid[0] : m.fromMe ? conn.user.jid : m.sender;
let pp = await conn.profilePictureUrl(who).catch(_ => 'https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png?q=60');
let name = await conn.getName(who);
await conn.sendContactArray(m.chat, [
[`[email protected]`, `BLUE DEMON`, `Bot Developer`, `Feel free to contact me for assistance or inquiries.`]
], m);
await reply(`Hello 👋, if you wish to contact the owner, please use the provided contact details.`);
}
break;
case 'tagall':
if (!isGroup) return reply(mess.only.group);
if (!isAdmins && !isOwner) return reply(mess.only.admin);
let me = m.sender
let teks = fontx(` 🕸️『 𝐁𝐋𝐔𝐄 𝐗 𝐃𝐄𝐌𝐎𝐍 𝐕𝟓 』🕸️\n👀 *tagger* @${me.split('@')[0]}\n\n`)
for (let mem of participants) {
teks += `${themeemoji} @${mem.id.split('@')[0]}\n`
}
conn.sendMessage(m.chat, {
text: teks,
mentions: participants.map(a => a.id)
}, {
quoted: m
})
break;
case 'hidetag': case 'tag': {
if (!isGroup) return reply(mess.only.group)
if (!isAdmins && !isOwner) return reply(mess.only.admin);
await loading();
conn.sendMessage(m.chat, { text : q ? q : '' , mentions: participants.map(a => a.id)}, {quoted:m})
break;
default:
}
if (!isGroup && user && isPremium && new Date - user.pc < 86400000) {} else if (!isGroup && user && isPremium && !itsMe) {
reply(`${ucapanWaktu} *${pushname}* how can i help you? please type *${prefix}menu*`)
user.pc = new Date * 1
}
if (global.badword === true && bad.some(word => budy.toLowerCase().includes(word.toLowerCase()))) {
if (cekSpam("NotCase", senderNumber, AntiSpam)) return;
addSpam("NotCase", senderNumber, "10s", AntiSpam);
if (isGroup) {
if (isBotGroupAdmins) {
await conn.sendMessage(from, {
delete: {
remoteJid: from,
fromMe: false,
id: m.key.id,
participant: m.sender,
},
});
await conn.sendMessage(from, {
text: `*Warning: Badwords are prohibited in this group.*\nYour message has been deleted.`,
}, {
quoted: m
});
} else {
await conn.sendMessage(from, {
text: `*Warning: Badwords are prohibited in this group.*\nI don't have admin privileges to delete the message.`,
}, {
quoted: m
});
}
} else {
await conn.sendMessage(from, {
text: `*Warning: Badwords are prohibited.*\nPlease refrain from using inappropriate language.`,
}, {
quoted: m
});
}
}
} catch (err) {
console.log(err)
if (isCmd) Failed(toFirstCase(command), dash)
let e = util.format(err)
if (err.message.includes("Cannot find module")) {
let module = err.message.split("Cannot find module '")[1].split("'")[0]
let teks = `Module ${module} has not been installed
Please install it first`
return await conn.sendText(dev.key.remoteJid, teks, dev)
}
await conn.sendText(Ownerin, `]─────「 *SYSTEM-ERROR* 」─────[\n\n${e}\n\n© ${botName}`, dev)
if (autoblockcmd) {
addblockcmd(command, listcmdblock)
await reply("Command telah di block karena terjadi error")
}
}
} catch (err) {
console.log(chalk.bgRed(color("[ ERROR ]", "black")), util.format(err))
let e = String(err)
if (e.includes("this.isZero")) {
return
}
if (e.includes("rate-overlimit")) {
if (!publik) return
publik = false
await conn.sendMessage(botNumber + "@s.whatsapp.net", {
text: `Rate-overlimit occurred
The bot has switched from public mode to Self mode
To avoid excessive spam,
Please wait 1 minute until all messages
have been read by the bot`
})
await setTimeout(() => {
publik = true
conn.sendMessage(botNumber + "@s.whatsapp.net", {
text: `Successfully changed self mode to public mode`
})
}, 60000)
return
}
if (e.includes('Connection Closed')) {
return
}
if (e.includes('Timed Out')) {
return
}
if (e.includes('Value not found')) {
return
}
console.log(color('Message Error : %s', 'white'), color(util.format(e), 'green'))
if (Console) {
conn.sendMessage(Ownerin, {
text: util.format(e)
})
}
}
}
let file = require.resolve(__filename)
fs.watchFile(file, () => {
fs.unwatchFile(file)
console.log(chalk.bgGreen(color("[ UPDATE ]", "black")), chalk.white(`${__filename}`))
delete require.cache[file]
require(file)
})