├── Dockerfile ├── LICENSE ├── Procfile ├── README.md ├── app.json ├── config.js ├── database.json ├── handler.js ├── index.js ├── install.sh ├── lib ├── cloudDBAdapter.js ├── cluster.js ├── converter.js ├── database.js ├── exif.js ├── functions.js ├── gdrive.js ├── jagokata.js ├── levelling.js ├── logs.js ├── lowdb │ ├── Low.d.ts │ ├── Low.js │ ├── LowSync.d.ts │ ├── LowSync.js │ ├── MissingAdapterError.d.ts │ ├── MissingAdapterError.js │ ├── adapters │ │ ├── Elyas │ │ ├── JSONFile.d.ts │ │ ├── JSONFile.js │ │ ├── JSONFileSync.d.ts │ │ ├── JSONFileSync.js │ │ ├── LocalStorage.d.ts │ │ ├── LocalStorage.js │ │ ├── Memory.d.ts │ │ ├── Memory.js │ │ ├── MemorySync.d.ts │ │ ├── MemorySync.js │ │ ├── TextFile.d.ts │ │ ├── TextFile.js │ │ ├── TextFileSync.d.ts │ │ └── TextFileSync.js │ ├── index.d.ts │ └── index.js ├── mediafire.js ├── mongoDB.js ├── myfunc.js ├── print.js ├── scrape.js ├── simple.js ├── sticker.js ├── tictactoe.d.ts ├── tictactoe.js ├── uploadFile.js ├── uploadImage.js ├── wallq.js ├── webp.js ├── webp2mp4.js ├── welcome.js └── y2mate.js ├── main.js ├── media ├── afk.jpg ├── bank.jpg ├── dini.jpg ├── donasi.jpg ├── elyas.jpg ├── haisayang.jpg ├── kerang.jpg ├── malam.jpg ├── menu.mp4 ├── pagi.jpg ├── quotes.jpg ├── shiraori.jpg ├── shiro.mp4 ├── siang.jpg ├── sore.jpg ├── tqto.jpg └── waalaikumusalam.jpg ├── package.json ├── plugins ├── 18+.js ├── Cek.js ├── Craft.js ├── Duel.js ├── How.js ├── Huuu.js ├── Hyzer Official ├── INFOBOT.js ├── Ngawur.js ├── Ok.js ├── _afk.js ├── _antilink.js ├── _buttonResponse.js ├── _expired.js ├── _role.js ├── _tictactoe.js ├── absen-absen.js ├── absen-cekabsen.js ├── absen-delete.js ├── absen-start.js ├── add.js ├── addowner.js ├── addprem.js ├── adventure.js ├── afk.js ├── aksara.js ├── alay.js ├── alquran.js ├── animalfact.js ├── animeinfo.js ├── animelink.js ├── apakah.js ├── apikey.js ├── artikata.js ├── artinama.js ├── asahotak.js ├── asahotak_ans.js ├── asahotak_hint.js ├── asmaulhusna.js ├── attp.js ├── axolt.js ├── ayatkursi.js ├── bacot.js ├── banchat.js ├── bannedList.js ├── bansos.js ├── base64.js ├── bcgc.js ├── berburu.js ├── berkebon.js ├── binary.js ├── bitly.js ├── brainly.js ├── bucin.js ├── build.js ├── buylimit.js ├── caklontong.js ├── caklontong_ans.js ├── caklontong_hint.js ├── carigrup.js ├── casino.js ├── ceritahoror.js ├── cerpen.js ├── cheatlimit.js ├── chop.js ├── collect.js ├── contact.js ├── cook.js ├── covid.js ├── craft.js ├── creator.js ├── cuaca.js ├── cuttly.js ├── dadu.js ├── daily.js ├── darkjoke.js ├── database.js ├── debounce.js ├── delete.js ├── delprem.js ├── doaharian.js ├── donasi.js ├── elaina.js ├── elf.js ├── emojimix.js ├── enable.js ├── exec.js ├── exec2.js ├── expired.js ├── fakta.js ├── family100.js ├── family100_answer.js ├── fb.js ├── feed.js ├── fetch.js ├── fflogo.js ├── film.js ├── fishop.js ├── font.js ├── galau.js ├── gcbot.js ├── getplugins.js ├── gimage.js ├── gitclone.js ├── github-search.js ├── githubdl.js ├── githubstalk.js ├── gombal.js ├── google.js ├── halo.js ├── hartatahta.js ├── heal.js ├── heroml.js ├── hidetag.js ├── hlh.js ├── hourly.js ├── idfreefire.js ├── ig.js ├── igstalk.js ├── igstory.js ├── inv.js ├── iqtest.js ├── jadian.js ├── jadwalbola.js ├── join.js ├── judi.js ├── jys.js ├── kalkulator.js ├── kandang.js ├── kanji.js ├── kapankah.js ├── katabijak.js ├── kerja.js ├── kisahnabi.js ├── koboy.js ├── kodebahasa.js ├── kodepos.js ├── kolam.js ├── kopi.js ├── kuis.js ├── kuis_ans.js ├── kuncigitar.js ├── leaderboard.js ├── levelup.js ├── limit.js ├── linkgroup.js ├── lirik.js ├── listprem.js ├── logokaneki.js ├── logololi.js ├── logoneko.js ├── logorem.js ├── loli.js ├── mancing.js ├── masak.js ├── math.js ├── math_ans.js ├── mediafire.js ├── megumin.js ├── meme.js ├── menu-list.js ├── menu2.js ├── merampok.js ├── mining.js ├── monthly ├── monthly.js ├── motivasi.js ├── my.js ├── nabung.js ├── narik.js ├── news.js ├── nguli.js ├── nhsearch.js ├── nomorhoki.js ├── nsfwahegao.js ├── nsfwarm.js ├── nsfwavatar.js ├── nsfwblow.js ├── nsfwblowjob.js ├── nsfwbooty.js ├── nsfwcum.js ├── nsfwecchi.js ├── nsfwero.js ├── nsfwfeets.js ├── nsfwfemdom.js ├── nsfwfutanari.js ├── nsfwhentai.js ├── nsfwhololewd.js ├── nsfwjahy.js ├── nsfwloli.js ├── nsfwmilf.js ├── nsfwneko.js ├── nsfwpussy.js ├── nsfwsideoppai.js ├── nsfwsolo.js ├── nsfwthighss.js ├── nsfwtiddies.js ├── nulis.js ├── oadmin.js ├── ojekk.js ├── pantun.js ├── pasar.js ├── pick.js ├── ping.js ├── pinterest.js ├── play.js ├── playstore.js ├── ppcp.js ├── profile.js ├── qr.js ├── quotemaker.js ├── quotes.js ├── quotesanim.js ├── quran.js ├── random_pikachu.js ├── react.js ├── readmore.js ├── regist.js ├── repeat.js ├── repeat2.js ├── report.js ├── resep.js ├── resetprefixbot.js ├── runtime.js ├── sadboylogo.js ├── sagiri.js ├── say.js ├── self.js ├── servermc.js ├── setProfileGroup.js ├── setbotbio.js ├── setbotpp.js ├── setprefixbot.js ├── settinggrup.js ├── setwelcome.js ├── sf.js ├── shaun_the_sheep_photo.js ├── shopee.js ├── shorturl.js ├── siapakahaku.js ├── siapakahaku_ans.js ├── siapakahaku_hint.js ├── simsimi.js ├── slot.js ├── smeme.js ├── smim.js ├── solat.js ├── spamcall.js ├── spamgmail.js ├── spotify.js ├── sshp.js ├── sspc.js ├── sticker.js ├── stickerfilter.js ├── stickerly.js ├── stickfilter.js ├── stickmaker.js ├── suit.js ├── suitpvp.js ├── suitpvp_ans.js ├── susunkata.js ├── susunkata_ans.js ├── susunkata_hint.js ├── tagadmin.js ├── tagall.js ├── tagme.js ├── taugasi.js ├── tebakbendera.js ├── tebakbendera_ans.js ├── tebakbendera_hint.js ├── tebakgambar.js ├── tebakgambar_ans.js ├── tebakgambar_hint.js ├── tebakkabupaten.js ├── tebakkabupaten_ans.js ├── tebakkabupaten_hint.js ├── tebakkata.js ├── tebakkata_ans.js ├── tebakkata_hint.js ├── tebakkimia.js ├── tebakkimia_ans.js ├── tebakkimia_hint.js ├── tebaklagu.js ├── tebaklagu_ans.js ├── tebaklagu_hint.js ├── tebaklirik.js ├── tebaklirik_ans.js ├── tebaklirik_hint.js ├── tebakumur.js ├── tekateki.js ├── tekateki_ans.js ├── tekateki_hint.js ├── textpro.js ├── tictactoe.js ├── tiktok.js ├── tiktoknowm.js ├── tiktokstalk.js ├── tiktokwm.js ├── tinyurl.js ├── titlein.js ├── toimg2.js ├── tomp3.js ├── topdf.js ├── totalfitur.js ├── tourl.js ├── tovideo.js ├── tqto.js ├── transfer.js ├── translate.js ├── trigger.js ├── truth.js ├── ttp.js ├── tts.js ├── twitter.js ├── unbanchat.js ├── underwater.js ├── update.js ├── use.js ├── voicechanger.js ├── vote-cekvote.js ├── vote-hapus.js ├── vote-mulai.js ├── vote-vote.js ├── waalaikummussalam.js ├── waifu.js ├── wait.js ├── waktu.js ├── wallpaperAnime.js ├── wallpaperq.js ├── wallq.js ├── warn.js ├── weekly.js ├── whatmusic.js ├── wiki2.js ├── wikipedia.js ├── wm.js ├── wolflogo.js ├── wpmobile.js ├── yta.js ├── ytcomment.js ├── yts.js ├── ytstalk.js ├── ytv.js ├── ytv720.js ├── zippyshare.js └── zodiac.js ├── session.data.json ├── src ├── Aesthetic │ ├── Aesthetic_000.jpeg │ ├── Aesthetic_001.jpg │ └── Aesthetic_002.jpg ├── LICENSE ├── avatar_contact.png ├── caklontong.json ├── font │ ├── 212BabyGirl.otf │ ├── 212LeahleeSans.ttf │ ├── 99HandWritting.ttf │ ├── ACallingFontDby7NTypes.otf │ ├── ACasualHandwrittenPenNoncommercial.ttf │ ├── ADayinSeptember.otf │ ├── ASMelanieHandwritting.ttf │ ├── Alittlesunshine.ttf │ ├── And-This-Happened.ttf │ ├── AvenirCondensedHand.ttf │ ├── Avocados.ttf │ ├── BabyDoll.ttf │ ├── BattleOfKingsRegular.ttf │ ├── BrayNotes.ttf │ ├── Convered-By-Your-Grace.ttf │ ├── Edoms-Handwritting-Normal.ttf │ ├── Futura Bold Italic font.ttf │ ├── Futura Bold font.ttf │ ├── Futura Book Italic font.ttf │ ├── Futura Book font.ttf │ ├── Futura Extra Black font.ttf │ ├── Futura Heavy Italic font.ttf │ ├── Futura Heavy font.ttf │ ├── Futura Light Italic font.ttf │ ├── Futura Light font.ttf │ ├── Futura Medium Italic font.ttf │ ├── Futura XBlk BT.ttf │ ├── Futura-CondensedLight.otf │ ├── GloriaHallelujah-Regular.ttf │ ├── HandwritingCR-2.ttf │ ├── Kempton-Demo-Handwritting.ttf │ ├── MyHandsareHoldingYou.ttf │ ├── My_handwriting.ttf │ ├── Nadeznas-Handwritting.ttf │ ├── Roboto-Black.ttf │ ├── Roboto-BlackItalic.ttf │ ├── Roboto-Bold.ttf │ ├── Roboto-BoldItalic.ttf │ ├── Roboto-Italic.ttf │ ├── Roboto-Light.ttf │ ├── Roboto-LightItalic.ttf │ ├── Roboto-Medium.ttf │ ├── Roboto-MediumItalic.ttf │ ├── Roboto-Regular.ttf │ ├── Roboto-Thin.ttf │ ├── Roboto-ThinItalic.ttf │ ├── ShadowsIntoLight-Regular.ttf │ ├── Zahraaa.ttf │ ├── angelina.ttf │ ├── futur.ttf │ ├── futura light bt.ttf │ ├── futura medium bt.ttf │ ├── futura medium condensed bt.ttf │ └── michellehandwritting.ttf ├── kertas │ ├── Elyas.js │ └── magernulis1.jpg ├── premium.json ├── squidGame_GLRL.mp3 ├── squidGame_GLRL_Scan.mp3 ├── squidGame_GLRL_Shoot.mp3 └── welcome.jpg └── tmp └── Elyas /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:lts-buster 2 | 3 | RUN apt-get update && \ 4 | apt-get install -y \ 5 | ffmpeg \ 6 | imagemagick \ 7 | webp && \ 8 | apt-get upgrade -y && \ 9 | rm -rf /var/lib/apt/lists/* 10 | 11 | COPY package.json . 12 | 13 | RUN npm install 14 | 15 | COPY . . 16 | 17 | EXPOSE 5000 18 | 19 | CMD ["node", "index.js"] 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021-2022 ilmanhdyt 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | worker: node . 2 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ShiraoriBOT-Md", 3 | "description": "Lightweight WhatsApp Bot", 4 | "repository": "https://github.com/ilmanhdyt/ShiraoriBOT-Md", 5 | "logo": "https://node-js-sample.herokuapp.com/node.png", 6 | "keywords": [ 7 | "bot", 8 | "whatsapp", 9 | "multi-device", 10 | "whatsapp-bot" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | pkg update && pkg upgrade 2 | pkg install git -y 3 | pkg install nodejs -y 4 | pkg install ffmpeg -y 5 | pkg install imagemagick -y 6 | pkg install yarn 7 | git clone https://github.com/ilmanhdyt/ShiraoriBOT-Md 8 | cd ShiraoriBOT-Md 9 | yarn 10 | node . 11 | 12 | -------------------------------------------------------------------------------- /lib/cluster.js: -------------------------------------------------------------------------------- 1 | const cluster = require('cluster') 2 | const os = require('os') 3 | const path = require('path') 4 | const { connectionOptions } = require('../main') 5 | const { makeWASocket } = require('./simple') 6 | 7 | var conn 8 | module.exports = { 9 | Cluster() { 10 | if (cluster.isMaster || !cluster.isWorker) { 11 | if (!os.cpus().length <= 1) throw new Error(`Requires at least 1 cores, but you only have ${os.cpus().length} cores`) 12 | cluster.setupMaster({ 13 | exec: path.join(__dirname, './cluster.js') 14 | }) 15 | // for (let i = 0; i < 3; i++) 16 | cluster.fork() 17 | console.log(cluster.workers) 18 | } else { 19 | // console.log(cluster.workers) 20 | // if (cluster.worker.id == 1) this.baileys() 21 | } 22 | }, 23 | baileys() { 24 | conn = makeWASocket(connectionOptions) 25 | for (let event of Object.keys(conn.ev._events)) { 26 | conn.ev.on(event, (...updates) => { 27 | event, updates 28 | }) 29 | } 30 | }, 31 | convert() { 32 | 33 | } 34 | } 35 | 36 | if (cluster.isWorker) module.exports.Cluster() -------------------------------------------------------------------------------- /lib/jagokata.js: -------------------------------------------------------------------------------- 1 | const cheerio = require('cheerio') 2 | const fetch = require('node-fetch') 3 | 4 | module.exports = function quotes(input) { 5 | return new Promise((resolve, reject) => { 6 | fetch('https://jagokata.com/kata-bijak/kata-' + input.replace(/\s/g, '_') + '.html?page=1') 7 | .then(res => res.text()) 8 | .then(res => { 9 | const $ = cheerio.load(res) 10 | data = [] 11 | $('div[id="main"]').find('ul[id="citatenrijen"] > li').each(function (index, element) { 12 | x = $(this).find('div[class="citatenlijst-auteur"] > a').text().trim() 13 | y = $(this).find('span[class="auteur-beschrijving"]').text().trim() 14 | z = $(element).find('q[class="fbquote"]').text().trim() 15 | data.push({ author: x, bio: y, quote: z }) 16 | }) 17 | data.splice(2, 1) 18 | if (data.length == 0) return resolve({ creator: '@neoxr - Wildan Izzudin & @ariffb.id - Ariffb', status: false }) 19 | resolve({ creator: '@neoxr - Wildan Izzudin & @ariffb.id - Ariffb', status: true, data }) 20 | }).catch(reject) 21 | }) 22 | } -------------------------------------------------------------------------------- /lib/logs.js: -------------------------------------------------------------------------------- 1 | let stdouts = [] 2 | module.exports = (maxLength = 200) => { 3 | let oldWrite = process.stdout.write.bind(process.stdout) 4 | module.exports.disable = () => { 5 | module.exports.isModified = false 6 | return process.stdout.write = oldWrite 7 | } 8 | process.stdout.write = (chunk, encoding, callback) => { 9 | stdouts.push(Buffer.from(chunk, encoding)) 10 | oldWrite(chunk, encoding, callback) 11 | if (stdouts.length > maxLength) stdouts.shift() 12 | } 13 | module.exports.isModified = true 14 | return module.exports 15 | } 16 | 17 | module.exports.isModified = false 18 | module.exports.logs = () => Buffer.concat(stdouts) 19 | 20 | -------------------------------------------------------------------------------- /lib/lowdb/Low.d.ts: -------------------------------------------------------------------------------- 1 | export interface Adapter { 2 | read: () => Promise; 3 | write: (data: T) => Promise; 4 | } 5 | export declare class Low { 6 | adapter: Adapter; 7 | data: T | null; 8 | constructor(adapter: Adapter); 9 | read(): Promise; 10 | write(): Promise; 11 | } 12 | -------------------------------------------------------------------------------- /lib/lowdb/Low.js: -------------------------------------------------------------------------------- 1 | const { MissingAdapterError } = require('./MissingAdapterError.js'); 2 | class Low { 3 | constructor(adapter) { 4 | this.data = null; 5 | if (adapter) { 6 | this.adapter = adapter; 7 | } 8 | else { 9 | throw new MissingAdapterError(); 10 | } 11 | } 12 | async read() { 13 | this.data = await this.adapter.read(); 14 | } 15 | async write() { 16 | if (this.data) { 17 | await this.adapter.write(this.data); 18 | } 19 | } 20 | } 21 | module.exports = { Low }; 22 | -------------------------------------------------------------------------------- /lib/lowdb/LowSync.d.ts: -------------------------------------------------------------------------------- 1 | export interface SyncAdapter { 2 | read: () => T | null; 3 | write: (data: T) => void; 4 | } 5 | export declare class LowSync { 6 | adapter: SyncAdapter; 7 | data: T | null; 8 | constructor(adapter: SyncAdapter); 9 | read(): void; 10 | write(): void; 11 | } 12 | -------------------------------------------------------------------------------- /lib/lowdb/LowSync.js: -------------------------------------------------------------------------------- 1 | const { MissingAdapterError } = require('./MissingAdapterError.js'); 2 | class LowSync { 3 | constructor(adapter) { 4 | this.data = null; 5 | if (adapter) { 6 | this.adapter = adapter; 7 | } 8 | else { 9 | throw new MissingAdapterError(); 10 | } 11 | } 12 | read() { 13 | this.data = this.adapter.read(); 14 | } 15 | write() { 16 | if (this.data !== null) { 17 | this.adapter.write(this.data); 18 | } 19 | } 20 | } 21 | module.exports = { LowSync }; 22 | -------------------------------------------------------------------------------- /lib/lowdb/MissingAdapterError.d.ts: -------------------------------------------------------------------------------- 1 | export declare class MissingAdapterError extends Error { 2 | constructor(); 3 | } 4 | -------------------------------------------------------------------------------- /lib/lowdb/MissingAdapterError.js: -------------------------------------------------------------------------------- 1 | class MissingAdapterError extends Error { 2 | constructor() { 3 | super(); 4 | this.message = 'Missing Adapter'; 5 | } 6 | } 7 | module.exports = { MissingAdapterError }; 8 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/Elyas: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/JSONFile.d.ts: -------------------------------------------------------------------------------- 1 | import { Adapter } from '../Low.js'; 2 | export declare class JSONFile implements Adapter { 3 | private adapter; 4 | constructor(filename: string); 5 | read(): Promise; 6 | write(obj: T): Promise; 7 | } 8 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/JSONFile.js: -------------------------------------------------------------------------------- 1 | const { TextFile } = require('./TextFile.js'); 2 | class JSONFile { 3 | constructor(filename) { 4 | this.adapter = new TextFile(filename); 5 | } 6 | async read() { 7 | const data = await this.adapter.read(); 8 | if (data === null) { 9 | return null; 10 | } 11 | else { 12 | return JSON.parse(data); 13 | } 14 | } 15 | write(obj) { 16 | return this.adapter.write(JSON.stringify(obj, null, 2)); 17 | } 18 | } 19 | module.exports = { JSONFile }; 20 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/JSONFileSync.d.ts: -------------------------------------------------------------------------------- 1 | import { SyncAdapter } from '../LowSync.js'; 2 | export declare class JSONFileSync implements SyncAdapter { 3 | private adapter; 4 | constructor(filename: string); 5 | read(): T | null; 6 | write(obj: T): void; 7 | } 8 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/JSONFileSync.js: -------------------------------------------------------------------------------- 1 | const { TextFileSync } = require('./TextFileSync.js'); 2 | class JSONFileSync { 3 | constructor(filename) { 4 | this.adapter = new TextFileSync(filename); 5 | } 6 | read() { 7 | const data = this.adapter.read(); 8 | if (data === null) { 9 | return null; 10 | } 11 | else { 12 | return JSON.parse(data); 13 | } 14 | } 15 | write(obj) { 16 | this.adapter.write(JSON.stringify(obj, null, 2)); 17 | } 18 | } 19 | module.exports = { JSONFileSync }; 20 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/LocalStorage.d.ts: -------------------------------------------------------------------------------- 1 | import { SyncAdapter } from '../LowSync.js'; 2 | export declare class LocalStorage implements SyncAdapter { 3 | private key; 4 | constructor(key: string); 5 | read(): T | null; 6 | write(obj: T): void; 7 | } 8 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/LocalStorage.js: -------------------------------------------------------------------------------- 1 | class LocalStorage { 2 | constructor(key) { 3 | this.key = key; 4 | } 5 | read() { 6 | const value = localStorage.getItem(this.key); 7 | if (value === null) { 8 | return null; 9 | } 10 | return JSON.parse(value); 11 | } 12 | write(obj) { 13 | localStorage.setItem(this.key, JSON.stringify(obj)); 14 | } 15 | } 16 | module.exports = { LocalStorage }; 17 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/Memory.d.ts: -------------------------------------------------------------------------------- 1 | import { Adapter } from '../Low.js'; 2 | export declare class Memory implements Adapter { 3 | private data; 4 | read(): Promise; 5 | write(obj: T): Promise; 6 | } 7 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/Memory.js: -------------------------------------------------------------------------------- 1 | class Memory { 2 | constructor() { 3 | this.data = null; 4 | } 5 | read() { 6 | return Promise.resolve(this.data); 7 | } 8 | write(obj) { 9 | this.data = obj; 10 | return Promise.resolve(); 11 | } 12 | } 13 | module.exports = { Memory }; 14 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/MemorySync.d.ts: -------------------------------------------------------------------------------- 1 | import { SyncAdapter } from '../LowSync.js'; 2 | export declare class MemorySync implements SyncAdapter { 3 | private data; 4 | read(): T | null; 5 | write(obj: T): void; 6 | } 7 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/MemorySync.js: -------------------------------------------------------------------------------- 1 | class MemorySync { 2 | constructor() { 3 | this.data = null; 4 | } 5 | read() { 6 | return this.data || null; 7 | } 8 | write(obj) { 9 | this.data = obj; 10 | } 11 | } 12 | module.exports = { MemorySync }; 13 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/TextFile.d.ts: -------------------------------------------------------------------------------- 1 | import { Adapter } from '../Low.js'; 2 | export declare class TextFile implements Adapter { 3 | private filename; 4 | private writer; 5 | constructor(filename: string); 6 | read(): Promise; 7 | write(str: string): Promise; 8 | } 9 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/TextFile.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const { Writer } = require('steno'); 3 | class TextFile { 4 | constructor(filename) { 5 | this.filename = filename; 6 | this.writer = new Writer(filename); 7 | } 8 | async read() { 9 | let data; 10 | try { 11 | data = await fs.promises.readFile(this.filename, 'utf-8'); 12 | } 13 | catch (e) { 14 | if (e.code === 'ENOENT') { 15 | return null; 16 | } 17 | throw e; 18 | } 19 | return data; 20 | } 21 | write(str) { 22 | return this.writer.write(str); 23 | } 24 | } 25 | module.exports = { TextFile }; -------------------------------------------------------------------------------- /lib/lowdb/adapters/TextFileSync.d.ts: -------------------------------------------------------------------------------- 1 | import { SyncAdapter } from '../LowSync.js'; 2 | export declare class TextFileSync implements SyncAdapter { 3 | private tempFilename; 4 | private filename; 5 | constructor(filename: string); 6 | read(): string | null; 7 | write(str: string): void; 8 | } 9 | -------------------------------------------------------------------------------- /lib/lowdb/adapters/TextFileSync.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | class TextFileSync { 4 | constructor(filename) { 5 | this.filename = filename; 6 | this.tempFilename = path.join(path.dirname(filename), `.${path.basename(filename)}.tmp`); 7 | } 8 | read() { 9 | let data; 10 | try { 11 | data = fs.readFileSync(this.filename, 'utf-8'); 12 | } 13 | catch (e) { 14 | if (e.code === 'ENOENT') { 15 | return null; 16 | } 17 | throw e; 18 | } 19 | return data; 20 | } 21 | write(str) { 22 | fs.writeFileSync(this.tempFilename, str); 23 | fs.renameSync(this.tempFilename, this.filename); 24 | } 25 | } 26 | module.exports = { TextFileSync }; 27 | -------------------------------------------------------------------------------- /lib/lowdb/index.d.ts: -------------------------------------------------------------------------------- 1 | export * from './adapters/JSONFile.js'; 2 | export * from './adapters/JSONFileSync.js'; 3 | export * from './adapters/LocalStorage.js'; 4 | export * from './adapters/Memory.js'; 5 | export * from './adapters/MemorySync.js'; 6 | export * from './adapters/TextFile.js'; 7 | export * from './adapters/TextFileSync.js'; 8 | export * from './Low.js'; 9 | export * from './LowSync.js'; 10 | -------------------------------------------------------------------------------- /lib/lowdb/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | ...require('./adapters/JSONFile.js'), 3 | ...require('./adapters/JSONFileSync.js'), 4 | ...require('./adapters/LocalStorage.js'), 5 | ...require('./adapters/Memory.js'), 6 | ...require('./adapters/MemorySync.js'), 7 | ...require('./adapters/TextFile.js'), 8 | ...require('./adapters/TextFileSync.js'), 9 | ...require('./Low.js'), 10 | ...require('./LowSync.js'), 11 | } -------------------------------------------------------------------------------- /lib/tictactoe.d.ts: -------------------------------------------------------------------------------- 1 | export declare class TicTacToe { 2 | /* X PlayerName */ 3 | playerX: string; 4 | /* Y PlayerName */ 5 | playerY: string; 6 | /* X if true, Y if false */ 7 | _currentTurn: boolean; 8 | _x: number; 9 | _y: number; 10 | _turns: number; 11 | constructor(playerX: string, playerY: string); 12 | get board(): number; 13 | turn(player, index: number): boolean; 14 | turn(player, x: number, y: number): boolean; 15 | } 16 | -------------------------------------------------------------------------------- /lib/uploadImage.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | const FormData = require('form-data') 3 | const { fromBuffer } = require('file-type') 4 | 5 | /** 6 | * Upload image to telegra.ph 7 | * Supported mimetype: 8 | * - `image/jpeg` 9 | * - `image/jpg` 10 | * - `image/png`s 11 | * @param {Buffer} buffer Image Buffer 12 | */ 13 | module.exports = async buffer => { 14 | const { ext } = await fromBuffer(buffer) 15 | let form = new FormData 16 | form.append('file', buffer, 'tmp.' + ext) 17 | let res = await fetch('https://telegra.ph/upload', { 18 | method: 'POST', 19 | body: form 20 | }) 21 | let img = await res.json() 22 | if (img.error) throw img.error 23 | return 'https://telegra.ph' + img[0].src 24 | } 25 | 26 | -------------------------------------------------------------------------------- /lib/wallq.js: -------------------------------------------------------------------------------- 1 | // cewe yang ada di iklan royco bikin ange njing 2 | // pdhl cuma iklan :v 3 | 4 | const fetch = require('node-fetch') 5 | 6 | let handler = async (m, { conn, text }) => { 7 | if (!text) throw 'Nyari apa?' 8 | let res = await fetch(global.API('https://wall.alphacoders.com/api2.0','/get.php', { 9 | auth: '3e7756c85df54b78f934a284c11abe4e', 10 | method: 'search', 11 | term: text 12 | })) 13 | if (!res.ok) throw await res.text() 14 | let json = await res.json() 15 | let img = json.wallpapers[Math.floor(Math.random() * json.wallpapers.length)] 16 | await conn.sendFile(m.chat, img.url_image, 'wallpaper', 'Nih wallpaper!', m) 17 | } 18 | handler.help = ['wallpaperq '] 19 | handler.tags = ['internet'] 20 | handler.command = /^wall(paper)?q?$/i 21 | handler.limit = true 22 | 23 | module.exports = handler 24 | -------------------------------------------------------------------------------- /media/afk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/afk.jpg -------------------------------------------------------------------------------- /media/bank.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/bank.jpg -------------------------------------------------------------------------------- /media/dini.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/dini.jpg -------------------------------------------------------------------------------- /media/donasi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/donasi.jpg -------------------------------------------------------------------------------- /media/elyas.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/elyas.jpg -------------------------------------------------------------------------------- /media/haisayang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/haisayang.jpg -------------------------------------------------------------------------------- /media/kerang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/kerang.jpg -------------------------------------------------------------------------------- /media/malam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/malam.jpg -------------------------------------------------------------------------------- /media/menu.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/menu.mp4 -------------------------------------------------------------------------------- /media/pagi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/pagi.jpg -------------------------------------------------------------------------------- /media/quotes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/quotes.jpg -------------------------------------------------------------------------------- /media/shiraori.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/shiraori.jpg -------------------------------------------------------------------------------- /media/shiro.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/shiro.mp4 -------------------------------------------------------------------------------- /media/siang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/siang.jpg -------------------------------------------------------------------------------- /media/sore.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/sore.jpg -------------------------------------------------------------------------------- /media/tqto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/tqto.jpg -------------------------------------------------------------------------------- /media/waalaikumusalam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/media/waalaikumusalam.jpg -------------------------------------------------------------------------------- /plugins/How.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, command, text }) => { 2 | if (!text) throw `Siapa Yang *${command.replace('how', '').toUpperCase()}*` 3 | conn.reply(m.chat, ` 4 | ${command} *${text}* 5 | *${text}* is *${Math.floor(Math.random() * 101)}*% ${command.replace('how', '').toUpperCase()} 6 | `.trim(), m, m.mentionedJid ? { 7 | contextInfo: { 8 | mentionedJid: m.mentionedJid 9 | } 10 | } : {}) 11 | } 12 | handler.help = ['gay', 'pintar', 'cantik', 'ganteng', 'gabut', 'gila', 'lesbi', 'stress', 'bucin', 'jones', 'sadboy'].map(v => 'how' + v + ' siapa?') 13 | handler.tags = ['kerang'] 14 | handler.command = /^how(gay|pintar|cantik|ganteng|gabut|gila|lesbi|stress?|bucin|jones|sadboy)/i 15 | handler.owner = false 16 | handler.mods = false 17 | handler.premium = false 18 | handler.group = false 19 | handler.private = false 20 | 21 | handler.admin = false 22 | handler.botAdmin = false 23 | 24 | handler.fail = null 25 | 26 | module.exports = handler 27 | -------------------------------------------------------------------------------- /plugins/Hyzer Official: -------------------------------------------------------------------------------- 1 | // jgn lupa subscribe dan izin ke wa jika ingin reupload -------------------------------------------------------------------------------- /plugins/INFOBOT.js: -------------------------------------------------------------------------------- 1 | 2 | let handler = async (m, { conn }) => { 3 | let wm = global.wm 4 | let _uptime = process.uptime() * 1000 5 | let uptime = clockString(_uptime) 6 | 7 | let str = ` 8 | ╭─────[ *Status* ]────✧ 9 | ├◌ Aktif selama ${uptime} 10 | ├◌ Mode : ${global.opts['self'] ? 'Self' : 'publik'} 11 | ├◌ ${Object.keys(global.db.data.users).length} Pengguna 12 | ├◌ ${Object.entries(global.db.data.chats).filter(chat => chat[1].isBanned).length} Chat Terbanned 13 | ├◌ ${Object.entries(global.db.data.users).filter(user => user[1].banned).length} Pengguna Terbanned 14 | ╰────────────··· 15 | `.trim() 16 | conn.send2But(m.chat, str, wm, 'Info', '.info', 'Owner', '.owner',m) 17 | conn.reply(str) 18 | } 19 | handler.help = ['botstatus'] 20 | handler.tags = ['info'] 21 | handler.command = /^botstat(us)?$/i 22 | 23 | module.exports = handler 24 | 25 | function clockString(ms) { 26 | let h = isNaN(ms) ? '--' : Math.floor(ms / 3600000) 27 | let m = isNaN(ms) ? '--' : Math.floor(ms / 60000) % 60 28 | let s = isNaN(ms) ? '--' : Math.floor(ms / 1000) % 60 29 | return [h, m, s].map(v => v.toString().padStart(2, 0)).join(':') 30 | } 31 | -------------------------------------------------------------------------------- /plugins/Ok.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text, usedPrefix, command }) => { 2 | 3 | conn.sendImageAsSticker(m.chat, 'https://telegra.ph/file/f61a7c96f3f86b6c5214f.png', m, { packname: "sticker by", author: "Elyas" }) 4 | } 5 | 6 | handler.customPrefix = /^(ok)$/i 7 | handler.command = new RegExp 8 | 9 | module.exports = handler 10 | -------------------------------------------------------------------------------- /plugins/_afk.js: -------------------------------------------------------------------------------- 1 | let handler = m => m 2 | handler.before = m => { 3 | let user = global.db.data.users[m.sender] 4 | if (user.afk > -1) { 5 | m.reply(` 6 | Kamu berhenti AFK${user.afkReason ? ' setelah ' + user.afkReason : ''} 7 | Selama ${clockString(new Date - user.afk)} 8 | `.trim()) 9 | user.afk = -1 10 | user.afkReason = '' 11 | } 12 | let jids = [...new Set([...(m.mentionedJid || []), ...(m.quoted ? [m.quoted.sender] : [])])] 13 | for (let jid of jids) { 14 | let user = global.db.data.users[jid] 15 | if (!user) continue 16 | let afkTime = user.afk 17 | if (!afkTime || afkTime < 0) continue 18 | let reason = user.afkReason || '' 19 | m.reply(` 20 | Jangan tag dia! 21 | Dia sedang AFK ${reason ? 'dengan alasan ' + reason : 'tanpa alasan'} 22 | Selama ${clockString(new Date - afkTime)} 23 | `.trim()) 24 | } 25 | return true 26 | } 27 | 28 | module.exports = handler 29 | 30 | function clockString(ms) { 31 | let h = isNaN(ms) ? '--' : Math.floor(ms / 3600000) 32 | let m = isNaN(ms) ? '--' : Math.floor(ms / 60000) % 60 33 | let s = isNaN(ms) ? '--' : Math.floor(ms / 1000) % 60 34 | return [h, m, s].map(v => v.toString().padStart(2, 0)).join(':') 35 | } 36 | -------------------------------------------------------------------------------- /plugins/_antilink.js: -------------------------------------------------------------------------------- 1 | let handler = m => m 2 | 3 | let linkRegex = /chat.whatsapp.com\/([0-9A-Za-z]{20,24})/i 4 | 5 | handler.before = function (m, { user, isAdmin, isBotAdmin }) { 6 | 7 | if (m.isBaileys && m.fromMe) throw false 8 | let chat = global.DATABASE.data.chats[m.chat] 9 | let name = this.getName(m.sender) 10 | let link = linkRegex.exec(m.text) 11 | 12 | if (chat.antiLink && link && !isAdmin && !m.isBaileys && m.isGroup && !m.fromMe) { 13 | if (user.isAdmin || user.isSuperAdmin) return m.reply ('Karena Kamu Adalah Admin Group Bot tidak akan Kick Kamu') 14 | m.reply(`*「 ANTILINK DETECTOR 」*\nLink Gorup Terdeteksi Maaf *${name}* Kamu Telah Mengirim Link Group Kamu Akan Saya Kick :(`) 15 | this.groupParticipantsUpdate(m.chat, [m.sender], 'remove') 16 | } 17 | } 18 | handler.group = true 19 | 20 | module.exports = handler 21 | -------------------------------------------------------------------------------- /plugins/_expired.js: -------------------------------------------------------------------------------- 1 | let handler = m => m 2 | handler.before = async function (m) { 3 | 4 | if (m.isGroup && global.db.data.chats[m.chat].expired != 0) { 5 | if (new Date() * 1 >= global.db.data.chats[m.chat].expired) { 6 | this.reply(m.chat, `waktunya *${this.user.name}* untuk meninggalkan grup`, null).then(() => { 7 | this.sendContact(m.chat, global.owner[0], this.getName(global.owner[0] + '@s.whatsapp.net'), m).then(() => { 8 | this.groupLeave(m.chat).then(() => { 9 | global.db.data.chats[m.chat].expired = 0 10 | }) 11 | }) 12 | }) 13 | } 14 | } 15 | } 16 | 17 | module.exports = handler 18 | -------------------------------------------------------------------------------- /plugins/absen-absen.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, usedPrefix }) => { 2 | let id = m.chat 3 | conn.absen = conn.absen ? conn.absen : {} 4 | if (!(id in conn.absen)) { 5 | await conn.sendBut(m.chat, `Tidak ada absen berlangsung!`, wm, 'Mulai', `${usedPrefix}mulaiabsen`, m) 6 | throw false 7 | } 8 | 9 | let absen = conn.absen[id][1] 10 | const wasVote = absen.includes(m.sender) 11 | if (wasVote) throw 'Kamu sudah absen!' 12 | absen.push(m.sender) 13 | let d = new Date 14 | let date = d.toLocaleDateString('id', { 15 | day: 'numeric', 16 | month: 'long', 17 | year: 'numeric' 18 | }) 19 | let list = absen.map((v, i) => `├ ${i + 1}. @${v.split`@`[0]}`).join('\n') 20 | let caption = ` 21 | Tanggal: ${date} 22 | ${conn.absen[id][2]} 23 | ┌〔 daftar absen 〕 24 | ├ Total: ${absen.length} 25 | ${list} 26 | └────`.trim() 27 | await conn.send2But(m.chat, caption, wm, 'Absen', `${usedPrefix}absen`, 'Cek', `${usedPrefix}cekabsen`, m, { contextInfo: { mentionedJid: conn.parseMention(caption) } }) 28 | } 29 | handler.help = ['absen'] 30 | handler.tags = ['absen'] 31 | handler.command = /^(absen|hadir)$/i 32 | 33 | module.exports = handler 34 | -------------------------------------------------------------------------------- /plugins/absen-cekabsen.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, usedPrefix }) => { 2 | let id = m.chat 3 | conn.absen = conn.absen ? conn.absen : {} 4 | if (!(id in conn.absen)) throw `_*Tidak ada absen berlangsung digrup ini!*_\n\n*${usedPrefix}mulaiabsen* - untuk memulai absen` 5 | 6 | let d = new Date 7 | let date = d.toLocaleDateString('id', { 8 | day: 'numeric', 9 | month: 'long', 10 | year: 'numeric' 11 | }) 12 | let absen = conn.absen[id][1] 13 | let list = absen.map((v, i) => `│ ${i + 1}. @${v.split`@`[0]}`).join('\n') 14 | conn.sendBut(m.chat, `*「 ABSEN 」* 15 | 16 | Tanggal: ${date} 17 | ${conn.absen[id][2]} 18 | 19 | ┌ *Yang sudah absen:* 20 | │ 21 | │ Total: ${absen.length} 22 | ${list} 23 | │ 24 | └──── 25 | `, wm, 'Absen', '.absen', m, { contextInfo: { mentionedJid: absen } }) 26 | } 27 | handler.help = ['cekabsen'] 28 | handler.tags = ['absen'] 29 | handler.command = /^cekabsen$/i 30 | handler.group = true 31 | module.exports = handler 32 | -------------------------------------------------------------------------------- /plugins/absen-delete.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { usedPrefix }) => { 2 | let id = m.chat 3 | conn.absen = conn.absen ? conn.absen : {} 4 | if (!(id in conn.absen)) conn.sendBut(m.chat, `_*Tidak ada absen berlangsung digrup ini!*_\n\n*${usedPrefix}mulaiabsen* - untuk memulai absen`, wm, 'Mulai Absen', '.mulaiabsen', m) 5 | delete conn.absen[id] 6 | m.reply(`Done!`) 7 | } 8 | handler.help = ['hapusabsen'] 9 | handler.tags = ['absen'] 10 | handler.command = /^(delete|hapus)absen$/i 11 | handler.group = true 12 | handler.admin = true 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/absen-start.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { usedPrefix, text }) => { 2 | conn.absen = conn.absen ? conn.absen : {} 3 | let id = m.chat 4 | if (id in conn.absen) { 5 | throw `_*Masih ada absen di chat ini!*_\n\n*${usedPrefix}hapusabsen* - untuk menghapus absen` 6 | } 7 | conn.absen[id] = [ 8 | conn.sendBut(m.chat, `Berhasil memulai absen!\n\n*${usedPrefix}absen* - untuk absen\n*${usedPrefix}cekabsen* - untuk mengecek absen\n*${usedPrefix}hapusabsen* - untuk menghapus data absen`, wm, 'Absen', '.absen', m), 9 | [], 10 | text 11 | ] 12 | } 13 | handler.help = ['mulaiabsen [teks]'] 14 | handler.tags = ['absen'] 15 | handler.command = /^(start|mulai)absen$/i 16 | handler.group = true 17 | handler.admin = true 18 | module.exports = handler 19 | -------------------------------------------------------------------------------- /plugins/add.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text, participants }) => { 2 | if(!text && !m.quoted) throw 'masukkan nomor yang ingin di tambahkan' 3 | 4 | let users = m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net' 5 | 6 | await conn.groupParticipantsUpdate(m.chat, [users], 'add').catch(console.log) 7 | } 8 | handler.help = ['add','+'].map(v => v + ' @user') 9 | handler.tags = ['group'] 10 | handler.command = /^(add|+)$/i 11 | 12 | handler.owner = false 13 | handler.group = true 14 | handler.botAdmin = true 15 | 16 | 17 | module.exports = handler 18 | -------------------------------------------------------------------------------- /plugins/addowner.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | let who 3 | if (m.isGroup) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text 4 | else who = m.chat 5 | if (!who) throw `tag orangnya!` 6 | if (global.owner.includes(who.split`@`[0])) throw 'dia udah menjadi owner !' 7 | global.owner.push(`${who.split`@`[0]}`) 8 | conn.reply(m.chat, `@${who.split`@`[0]} sekarang owner !`, m, { 9 | contextInfo: { 10 | mentionedJid: [who] 11 | } 12 | }) 13 | 14 | } 15 | handler.help = ['addowner [@user]'] 16 | handler.tags = ['owner'] 17 | handler.command = /^(add|tambah|\+)owner$/i 18 | 19 | handler.owner = true 20 | 21 | module.exports = handler -------------------------------------------------------------------------------- /plugins/addprem.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | 3 | let who 4 | if (m.isGroup) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text 5 | else who = m.chat 6 | if (!who) throw `tag orangnya!` 7 | if (global.prems.includes(who.split`@`[0])) throw 'dia udah premium!' 8 | global.prems.push(`${who.split`@`[0]}`) 9 | conn.reply(m.chat, `@${who.split`@`[0]} sekarang premium!`, m, { 10 | contextInfo: { 11 | mentionedJid: [who] 12 | } 13 | }) 14 | 15 | } 16 | handler.help = ['addprem [@user]'] 17 | handler.tags = ['owner'] 18 | handler.command = /^(add|tambah|\+)prem$/i 19 | 20 | handler.rowner = true 21 | 22 | module.exports = handler 23 | -------------------------------------------------------------------------------- /plugins/afk.js: -------------------------------------------------------------------------------- 1 | let handler = async(m, { text }) => { 2 | let user = global.db.data.users[m.sender] 3 | user.afk = +new Date 4 | user.afkReason = text 5 | m.reply(` 6 | ${conn.getName(m.sender)} is now AFK${text ? ': ' + text : ''} 7 | `) 8 | } 9 | handler.help = ['afk [alasan]'] 10 | handler.tags = ['main'] 11 | handler.command = /^afk$/i 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/aksara.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | 3 | let handler = async (m, { conn, args, usedPrefix, command }) => { 4 | let er = `Opsi tersedia: 5 | • latinkejawa 6 | • latinkesunda 7 | • jawakelatin 8 | • sundakelatin 9 | 10 | Contoh penggunaan: 11 | ${usedPrefix + command} latinkejawa selamat pagi 12 | `.trim() 13 | if (!args[0]) throw er 14 | 15 | switch (args[0].toLowerCase()) { 16 | case 'latinkejawa': 17 | case 'latinkesunda': 18 | case 'jawakelatin': 19 | case 'sundakelatin': 20 | let text = args.slice(1).join(' ') 21 | let res = await fetch(global.API('xteam', '/aksara/' + args[0].toLowerCase(), { text }, 'APIKEY')) 22 | if (res.status !== 200) throw await res.text() 23 | let json = await res.json() 24 | if (!json.status) throw json 25 | m.reply(json.message) 26 | break 27 | default: 28 | throw er 29 | } 30 | } 31 | handler.help = ['aksara'].map(v => v + ' ') 32 | handler.tags = ['tools'] 33 | handler.command = /^aksara$/i 34 | 35 | handler.limit = true 36 | 37 | module.exports = handler -------------------------------------------------------------------------------- /plugins/alay.js: -------------------------------------------------------------------------------- 1 | function handler(m, { text }) { 2 | let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text 3 | m.reply(teks.replace(/[a-z]/gi, v => Math.random() > .5 ? v[['toLowerCase', 'toUpperCase'][Math.floor(Math.random() * 2)]]() : v).replace(/[abegiors]/gi, v => { 4 | if (Math.random() > .5) return v 5 | switch (v.toLowerCase()) { 6 | case 'a': return '4' 7 | case 'b': return Math.random() > .5 ? '8' : '13' 8 | case 'e': return '3' 9 | case 'g': return Math.random() > .5 ? '6' : '9' 10 | case 'i': return '1' 11 | case 'o': return '0' 12 | case 'r': return '12' 13 | case 's': return '5' 14 | } 15 | })) 16 | } 17 | handler.help = ['alay'] 18 | handler.tags = ['fun'] 19 | handler.command = ['alay'] 20 | 21 | module.exports = handler 22 | -------------------------------------------------------------------------------- /plugins/alquran.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | 3 | let handler = async (m, { conn, args, usedPrefix, command }) => { 4 | if (!(args[0] || args[1])) throw `contoh:\n${usedPrefix + command} 1 2\n\nmaka hasilnya adalah surah Al-Fatihah ayat 2 beserta audionya, dan ayatnya 1 aja` 5 | 6 | let res = await fetch(global.API('https://islamic-api-indonesia.herokuapp.com', '/api/data/quran', { surah: args[0], ayat: args[1] })) 7 | let json = await res.json() 8 | let mes = `${json.result.data.text.arab} 9 | 10 | ${json.result.data.translation.id} 11 | 12 | ( Q.S ${json.result.data.surah.name.transliteration.id} : ${json.result.data.number.inSurah} )`.trim() 13 | m.reply(mes) 14 | conn.sendFile(m.chat, json.result.data.audio.primary, 'all.mp3', '', m, false, { mimetype: 'audio/mp4' }) 15 | } 16 | 17 | handler.help = ['alquran *114 1*'] 18 | handler.tags = ['islam'] 19 | handler.command = /^(al)?quran$/i 20 | module.exports = handler -------------------------------------------------------------------------------- /plugins/animalfact.js: -------------------------------------------------------------------------------- 1 | let fetch = require("node-fetch"); 2 | 3 | let handler = async (m, { conn, text, usedPrefix, command }) => { 4 | if (!text) 5 | throw ` 6 | *${usedPrefix}${command} * 7 | contoh: 8 | *${usedPrefix}${command} *\n 9 | ┌〔 Opsi 〕 10 | ├ dog 11 | ├ cat 12 | ├ panda 13 | ├ fox 14 | ├ red_panda 15 | ├ koala 16 | ├ birb 17 | ├ raccoon 18 | ├ kangaroo 19 | ├ 20 | └──── 21 | `.trim(); 22 | let res = await fetch( 23 | API("https://some-random-api.ml", "/animal/" + text, {}) 24 | ); 25 | if (!res.ok) throw `${res.status} ${res.statusText}`; 26 | let json = await res.json(); 27 | if (json.image) await conn.sendFile(m.chat, json.image, "", `${json.fact}`, m); 28 | else throw json; 29 | }; 30 | handler.help = ["animal"].map((v) => v + " "); 31 | handler.tags = ["internet"]; 32 | handler.command = /^(animal|animalfact)$/i; 33 | 34 | module.exports = handler; 35 | -------------------------------------------------------------------------------- /plugins/animeinfo.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async(m, { conn, text }) => { 3 | if (!text) throw `Masukkan query!` 4 | let res = await fetch(global.API('https://api.jikan.moe', '/v3/search/anime', { q: text })) 5 | if (!res.ok) throw await res.text() 6 | let json = await res.json() 7 | let { title, members, synopsis, episodes, url, rated, score, image_url, type, start_date, end_date } = json.results[0] 8 | let animeingfo = `✨️ *Title:* ${title} 9 | 🎆️ *Episodes:* ${episodes} 10 | ➡️ *Start date:* ${start_date} 11 | 🔚 *End date:* ${end_date} 12 | 💬 *Show Type:* ${type} 13 | 💌️ *Rating:* ${rated} 14 | ❤️ *Score:* ${score} 15 | 👥 *Members:* ${members} 16 | 💚️ *Synopsis:* ${synopsis} 17 | 🌐️ *URL*: ${url}` 18 | conn.sendFile(m.chat, image_url, '', animeingfo, m) 19 | } 20 | handler.help = ['anime '] 21 | handler.tags = ['anime'] 22 | handler.command = /^(anime|animeinfo)$/i 23 | //maapin fatur :< 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/apakah.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | conn.reply(m.chat, `${pickRandom(['Yap','Sepertinya Begitu','Kayaknya','Kayaknya nggak','Nggak','Nggak mungkin'])} 3 | `.trim(), m, m.mentionedJid ? { 4 | contextInfo: { 5 | mentionedJid: m.mentionedJid 6 | } 7 | } : {}) 8 | } 9 | handler.help = ['apakah ?'] 10 | handler.tags = ['kerang'] 11 | handler.customPrefix = /(\?$)/ 12 | handler.command = /^apakah$/i 13 | handler.owner = false 14 | 15 | handler.fail = null 16 | 17 | module.exports = handler 18 | 19 | function pickRandom(list) { 20 | return list[Math.floor(Math.random() * list.length)] 21 | } 22 | -------------------------------------------------------------------------------- /plugins/artikata.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text }) => { 3 | if (!text) throw `Uhm.. Teksnya mana?` 4 | let res = await fetch(`https://x-restapi.herokuapp.com/api/arti-kata?q=${text}&apikey=BETA`) 5 | if (!res.ok) throw await res.text() 6 | let json = await res.json() 7 | if (!json.status) throw json 8 | m.reply(` 9 | *Pencarian: ${text}* 10 | ${json.artikata} 11 | 12 | `.trim()) 13 | } 14 | handler.help = ['artikata '] 15 | handler.tags = ['internet'] 16 | handler.command = /^artikata$/i 17 | module.exports = handler 18 | -------------------------------------------------------------------------------- /plugins/asahotak_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*ao/i.test(m.quoted.contentText)) return !0 7 | this.asahotak = this.asahotak ? this.asahotak : {} 8 | if (!(id in this.asahotak)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.asahotak[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.asahotak[id][1])) 11 | if (['.ao', 'Bantuan', ''].includes(m.text)) return !0 12 | if (m.text.toLowerCase() == json.jawaban.toLowerCase().trim()) { 13 | global.db.data.users[m.sender].exp += this.asahotak[id][2] 14 | await this.sendBut(m.chat, `*Benar!* +${this.asahotak[id][2]} XP`, 'By elyas', 'Asah Otak', '.asahotak', m) 15 | clearTimeout(this.asahotak[id][3]) 16 | delete this.asahotak[id] 17 | } else if (similarity(m.text.toLowerCase(), json.jawaban.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/asahotak_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.asahotak = conn.asahotak ? conn.asahotak : {} 3 | let id = m.chat 4 | if (!(id in conn.asahotak)) throw false 5 | let json = conn.asahotak[id][1] 6 | let clue = json.jawaban.replace(/[AIUEOaiueo]/g, '_') 7 | conn.reply(m.chat, '```' + clue + '```\nBalas soalnya, bukan pesan ini', conn.asahotak[id][0]) 8 | } 9 | handler.command = /^ao$/i 10 | handler.limit = false 11 | module.exports = handler 12 | -------------------------------------------------------------------------------- /plugins/attp.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text 3 | conn.sendFile(m.chat, global.API('xteam', '/attp', { file: '', text: teks }), 'attp.webp', '', m, false, { asSticker: true }) 4 | } 5 | handler.help = ['attp '] 6 | handler.tags = ['sticker'] 7 | 8 | handler.command = /^attp$/i 9 | 10 | module.exports = handler 11 | -------------------------------------------------------------------------------- /plugins/axolt.js: -------------------------------------------------------------------------------- 1 | let fetch = require("node-fetch"); 2 | let handler = async (m, { conn, args }) => { 3 | let res = await fetch("https://axoltlapi.herokuapp.com"); 4 | if (!res.ok) throw await `${res.status} ${res.statusText}`; 5 | let json = await res.json(); 6 | if (json.url) conn.sendFile(m.chat, json.url, "axoltl.jpg", json.facts, m); 7 | else throw eror 8 | }; 9 | handler.help = ["axoltl"]; 10 | handler.tags = ["image"]; 11 | 12 | handler.command = /^(axoltl)$/i; 13 | 14 | module.exports = handler; 15 | -------------------------------------------------------------------------------- /plugins/banchat.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, isOwner, text, isAdmin }) => { 2 | let who 3 | if (m.isGroup) { 4 | if (!(isAdmin || isOwner)) { 5 | global.dfail('admin', m, conn) 6 | throw false 7 | } 8 | if (isOwner) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text ? text.replace(/[^0-9]/g, '') + '@s.whatsapp.net' : m.chat 9 | else who = m.chat 10 | } else { 11 | if (!isOwner) { 12 | global.dfail('owner', m, conn) 13 | throw false 14 | } 15 | who = text ? text.replace(/[^0-9]/g, '') + '@s.whatsapp.net' : m.chat 16 | } 17 | 18 | try { 19 | if (who.endsWith('g.us')) global.db.data.chats[who].isBanned = true 20 | else global.db.data.users[who].banned = true 21 | m.reply(`Berhasil Ban! ${await conn.user.name} tidak aktif dichat ${await conn.getName(who) == undefined ? 'ini' : await conn.getName(who)}.`) 22 | } catch (e) { 23 | throw `nomor tidak ada didatabase!` 24 | } 25 | } 26 | handler.help = ['ban'] 27 | handler.tags = ['owner', 'group'] 28 | handler.command = /^ban(chat)?$/i 29 | 30 | module.exports = handler 31 | -------------------------------------------------------------------------------- /plugins/bannedList.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, isOwner }) => { 2 | let chats = Object.entries(global.db.data.chats).filter(chat => chat[1].isBanned) 3 | let users = Object.entries(global.db.data.users).filter(user => user[1].banned) 4 | let caption = ` 5 | ┌〔 Daftar Chat Terbanned 〕 6 | ├ Total : ${chats.length} Chat${chats ? '\n' + chats.map(([jid], i) => ` 7 | ├ ${i + 1}. ${conn.getName(jid) == undefined ? 'Unknown' : conn.getName(jid)} 8 | ├ ${isOwner ? '@' + jid.split`@`[0] : jid} 9 | `.trim()).join('\n') : ''} 10 | └──── 11 | 12 | ┌〔 Daftar Pengguna Terbanned 〕 13 | ├ Total : ${users.length} Pengguna${users ? '\n' + users.map(([jid], i) => ` 14 | ├ ${i + 1}. ${conn.getName(jid) == undefined ? 'Unknown' : conn.getName(jid)} 15 | ├ ${isOwner ? '@' + jid.split`@`[0] : jid} 16 | `.trim()).join('\n') : ''} 17 | └──── 18 | `.trim() 19 | conn.reply(m.chat, caption, m, { contextInfo: { mentionedJid: conn.parseMention(caption) } }) 20 | } 21 | handler.help = ['bannedlist'] 22 | handler.tags = ['info'] 23 | handler.command = /^listban(ned)?|ban(ned)?list|daftarban(ned)?$/i 24 | handler.owner = false 25 | module.exports = handler 26 | -------------------------------------------------------------------------------- /plugins/base64.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { command, text }) => { 2 | let txt = m.quoted ? m.quoted.text ? m.quoted.text : text ? text : m.text : m.text 3 | m.reply(Buffer.from(txt, 'utf-8').toString('base64')) 4 | } 5 | handler.help = ['base64'] 6 | handler.tags = ['tools'] 7 | handler.command = /^base64$/i 8 | 9 | module.exports = handler 10 | -------------------------------------------------------------------------------- /plugins/bcgc.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, isROwner, text }) => { 2 | const delay = time => new Promise(res => setTimeout(res, time)) 3 | let getGroups = await conn.groupFetchAllParticipating() 4 | let groups = Object.entries(getGroups).slice(0).map(entry => entry[1]) 5 | let anu = groups.map(v => v.id) 6 | var pesan = m.quoted && m.quoted.text ? m.quoted.text : text 7 | if(!pesan) throw 'teksnya?' 8 | m.reply(`Mengirim Broadcast Ke ${anu.length} Chat, Waktu Selesai ${anu.length * 0.5 } detik`) 9 | for (let i of anu) { 10 | await delay(500) 11 | conn.sendBut(i, `${pesan}`, wm, 'OWNER', '.owner', null).catch(_ => _) 12 | } 13 | m.reply(`Sukses Mengirim Broadcast Ke ${anu.length} Group`) 14 | } 15 | handler.help = ['bcgcbot '] 16 | handler.tags = ['owner'] 17 | handler.command = /^((broadcastgc|bcgc)bot)$/i 18 | 19 | handler.owner = true 20 | 21 | module.exports = handler 22 | -------------------------------------------------------------------------------- /plugins/binary.js: -------------------------------------------------------------------------------- 1 | let axios = require("axios"); 2 | 3 | let handler = async(m, { conn, text }) => { 4 | 5 | if (!text) return conn.reply(m.chat, 'Masukan Teksnya', m) 6 | 7 | axios.get(`https://some-random-api.ml/binary?text=${text}`).then ((res) => { 8 | let hasil = `Teks : ${text}\nBinary : ${res.data.binary}` 9 | 10 | conn.reply(m.chat, hasil, m) 11 | }) 12 | } 13 | handler.help = ['binary'].map(v => v + ' ') 14 | handler.tags = ['tools'] 15 | handler.command = /^(binary)$/i 16 | handler.owner = false 17 | handler.mods = false 18 | handler.premium = false 19 | handler.group = false 20 | handler.private = false 21 | 22 | handler.admin = false 23 | handler.botAdmin = false 24 | 25 | handler.fail = null 26 | handler.exp = 0 27 | handler.limit = false 28 | 29 | module.exports = handler 30 | -------------------------------------------------------------------------------- /plugins/bitly.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text }) => { 3 | if (!text) throw 'url/link nya mana?' 4 | let res = await fetch(global.API('xteam', '/shorturl/bitly', { url: text }, 'APIKEY')) 5 | let json = await res.json() 6 | if (json.status) m.reply(json.result.link) 7 | else throw 'Link Invalid!\nPeriksa url anda' 8 | } 9 | handler.help = ['bitly'].map(v => v + ' ') 10 | handler.tags = ['shortlink'] 11 | handler.command = /^bitly$/i 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/brainly.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text, command, usedPrefix }) => { 3 | if (!text) throw `uhm.. teksnya mana?\n\ncontoh:\n${usedPrefix + command} membaca` 4 | let res = await fetch(`https://api.xteam.xyz/brainly?soal=${text}&APIKEY=cristian9407`) 5 | if (!res.ok) throw eror 6 | let json = await res.json() 7 | if (!json.status) throw json 8 | m.reply(json.jawaban) 9 | } 10 | handler.help = ['Brainly '] 11 | handler.tags = ['internet'] 12 | handler.command = /^brainly$/i 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/caklontong_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*calo/i.test(m.quoted.contentText)) return !0 7 | this.caklontong = this.caklontong ? this.caklontong : {} 8 | if (!(id in this.caklontong)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.caklontong[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.caklontong[id][1])) 11 | if (['.calo', 'Bantuan', ''].includes(m.text)) return !0 12 | if (m.text.toLowerCase() == json.jawaban.toLowerCase().trim()) { 13 | global.db.data.users[m.sender].exp += this.caklontong[id][2] 14 | await this.sendBut(m.chat, `*Benar!* +${this.caklontong[id][2]} XP\n${json.deskripsi}`, wm, 'Cak Lontong', '.caklontong', m) 15 | clearTimeout(this.caklontong[id][3]) 16 | delete this.caklontong[id] 17 | } else if (similarity(m.text.toLowerCase(), json.jawaban.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/caklontong_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.caklontong = conn.caklontong ? conn.caklontong : {} 3 | let id = m.chat 4 | if (!(id in conn.caklontong)) throw false 5 | let json = conn.caklontong[id][1] 6 | let ans = json.jawaban 7 | let clue = ans.replace(/[AIUEOaiueo]/g, '_') 8 | m.reply('```' + clue + '```') 9 | } 10 | handler.command = /^calo$/i 11 | handler.limit = true 12 | module.exports = handler -------------------------------------------------------------------------------- /plugins/cerpen.js: -------------------------------------------------------------------------------- 1 | let axios = require("axios"); 2 | let handler = async(m, { conn, text }) => { 3 | 4 | await m.reply('Searching...') 5 | axios.get(`https://leyscoders-api.herokuapp.com/api/cerpen?apikey=MIMINGANZ`).then ((res) => { 6 | let hasil = `*Judul :${res.data.result.title}* 7 | *Pengarang*: ${res.data.result.pengarang} 8 | *Kategori*: ${res.data.result.kategori} 9 | *Story*: 10 | ${res.data.result.story}` 11 | 12 | conn.reply(m.chat, hasil, m) 13 | }) 14 | } 15 | handler.help = ['cerpen'] 16 | handler.tags = ['fun'] 17 | handler.command = /^(cerpen)$/i 18 | 19 | handler.fail = null 20 | handler.exp = 0 21 | handler.limit = true 22 | 23 | module.exports = handler 24 | -------------------------------------------------------------------------------- /plugins/cheatlimit.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text }) => { 3 | m.reply('=> global.DATABASE.data.users[m.quoted.sender].limit = 100') 4 | 5 | } 6 | handler.help = ['cheatlimit'] 7 | handler.tags = ['owner'] 8 | handler.command = /^cheatlimit$/i 9 | 10 | module.exports = handler 11 | -------------------------------------------------------------------------------- /plugins/collect.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | let __timers = (new Date - global.db.data.users[m.sender].lastclaim) 3 | let _timers = (43200000 - __timers) 4 | let timers = clockString(_timers) 5 | let user = global.db.data.users[m.sender] 6 | if (new Date - global.db.data.users[m.sender].lastclaim > 43200000) { 7 | conn.reply(m.chat, `Kamu sudah mengclaim dan mendapatkan *1000* 💵money dan *1* 🥤potion`, m) 8 | user.money += 1000 9 | user.potion += 1 10 | user.lastclaim = new Date * 1 11 | } else conn.reply(m.chat, `silahkan tunggu *${timers}* lagi untuk bisa mengclaim lagi`, m) 12 | } 13 | handler.help = ['collect'] 14 | handler.tags = ['rpg'] 15 | handler.command = /^(collect)$/i 16 | 17 | handler.fail = null 18 | 19 | module.exports = handler 20 | 21 | function clockString(ms) { 22 | let h = Math.floor(ms / 3600000) 23 | let m = Math.floor(ms / 60000) % 60 24 | let s = Math.floor(ms / 1000) % 60 25 | console.log({ms,h,m,s}) 26 | return [h, m, s].map(v => v.toString().padStart(2, 0) ).join(':') 27 | } 28 | -------------------------------------------------------------------------------- /plugins/contact.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | if (!text) return 3 | let who 4 | if (m.isGroup) who = m.mentionedJid[0] 5 | else who = m.chat 6 | if (!who) throw 'Tag salah satu lah' 7 | txt = text.replace('@' + who.split`@`[0], '').trimStart() 8 | return conn.sendContact(m.chat, who, txt || conn.getName(who), m) 9 | } 10 | handler.help = ['save'].map(v => v + ' @mention ') 11 | handler.tags = [''] 12 | 13 | handler.command = /^save$/ 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/covid.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text }) => { 3 | let res = await fetch(global.API('https://covid19.mathdro.id', '/api/countries/'+ (text))) 4 | if (!res.ok) throw await res.text() 5 | let json = await res.json() 6 | if (!json.confirmed) throw 'Negara?' 7 | if (json.confirmed) m.reply(` 8 | Negara : ${text} 9 | Terkonfirmasi : ${json.confirmed.value} 10 | Sembuh : ${json.recovered.value} 11 | Meninggal : ${json.deaths.value} 12 | Update Info : ${json.lastUpdate} 13 | `.trim()) 14 | else throw json 15 | } 16 | handler.help = ['covid'].map(v => v + ' ') 17 | handler.tags = ['internet'] 18 | handler.command = /^(corona|covid|covid19)$/i 19 | //susu, tetek, oppai 20 | module.exports = handler 21 | -------------------------------------------------------------------------------- /plugins/creator.js: -------------------------------------------------------------------------------- 1 | function handler(m) { 2 | const q = { 3 | "key": { 4 | "participants":"0@s.whatsapp.net", 5 | "remoteJid": "status@broadcast", 6 | "fromMe": false, 7 | "id": "" 8 | }, 9 | "message": { 10 | "contactMessage": { 11 | "vcard": "BEGIN:VCARD\nVERSION:3.0\nN:;Elyas Gantwng;;;FN:Elyas Ganteng\nORG:Elyas Ganteng;\nTEL;type=CELL;type=VOICE;waid=6285643354073:+62 856-4335-4073\nEND:VCARD" 12 | } 13 | }, 14 | "participant": "0@s.whatsapp.net" 15 | } 16 | 17 | conn.sendContact(m.chat, '6287892711054', 'Hyzer', m) 18 | m.reply(m.chat,'*Tuh nomor owner ku tersayang*\n*Chat jika PENTING*', q) 19 | } 20 | handler.help = ['owner', 'creator'] 21 | handler.tags = ['info'] 22 | 23 | handler.command = /^(owner|creator)$/i 24 | 25 | module.exports = handler 26 | -------------------------------------------------------------------------------- /plugins/cuaca.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | 3 | let handler = async (m, { text, usedPrefix, command }) => { 4 | if (!text) throw `Pengunaan:\n${usedPrefix + command} \n\nContoh:\n${usedPrefix + command} Jakarta` 5 | let res = await fetch(API('https://api.openweathermap.org', '/data/2.5/weather', { 6 | q: text, 7 | units: 'metric', 8 | appid: '060a6bcfa19809c2cd4d97a212b19273' 9 | })) 10 | if (!res.ok) throw 'lokasi tidak ditemukan' 11 | let json = await res.json() 12 | if (json.cod != 200) throw json 13 | m.reply(` 14 | Lokasi: ${json.name} 15 | Negara: ${json.sys.country} 16 | Cuaca: ${json.weather[0].description} 17 | Suhu saat ini: ${json.main.temp} °C 18 | Suhu tertinggi: ${json.main.temp_max} °C 19 | Suhu terendah: ${json.main.temp_min} °C 20 | Kelembapan: ${json.main.humidity} % 21 | Angin: ${json.wind.speed} km/jam 22 | `.trim()) 23 | } 24 | 25 | handler.help = ['cuaca'] 26 | handler.tags = ['internet'] 27 | handler.command = /^(cuaca|weather)$/i 28 | 29 | module.exports = handler 30 | -------------------------------------------------------------------------------- /plugins/cuttly.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text }) => { 3 | if (!text) throw 'url/link nya mana?' 4 | let res = await fetch(`http://hadi-api.herokuapp.com/api/cuttly?url=${text}`) 5 | let json = await res.json() 6 | if (json.status) m.reply(json.result) 7 | else throw 'Link Invalid!\nPeriksa url anda' 8 | } 9 | handler.help = ['cuttly'].map(v => v + ' ') 10 | handler.tags = ['shortlink'] 11 | handler.command = /^cuttly$/i 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/dadu.js: -------------------------------------------------------------------------------- 1 | const dir = [ 2 | 'https://storage.caliph71.xyz/dadu/v2/5.webp', 3 | 'https://storage.caliph71.xyz/dadu/v2/4.webp', 4 | 'https://storage.caliph71.xyz/dadu/v2/3.webp', 5 | 'https://storage.caliph71.xyz/dadu/v2/2.webp', 6 | 'https://storage.caliph71.xyz/dadu/v2/1.webp', 7 | 'https://storage.caliph71.xyz/dadu/v2/6.webp' 8 | ]; 9 | let handler = async (m, { conn }) => { 10 | conn.sendFile(m.chat, dir[Math.floor(Math.random() * dir.length)], 'dadu.webp', '', m) 11 | } 12 | handler.help = ['dadu'] 13 | handler.tags = ['sticker', 'fun'] 14 | handler.command = /^dadu$/i 15 | 16 | module.exports = handler 17 | -------------------------------------------------------------------------------- /plugins/darkjoke.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('xteam', '/asupan/darkjoke', {}, 'APIKEY'), 'Dark Jokes', wm, 'NEXT', '.darkjokes', m) 3 | } 4 | handler.help = ['darkjokes'] 5 | handler.tags = ['internet'] 6 | handler.command = /^(dragjokes|darkjokes)$/i 7 | 8 | module.exports = handler 9 | -------------------------------------------------------------------------------- /plugins/database.js: -------------------------------------------------------------------------------- 1 | let handler = async (m) => { 2 | let totalreg = Object.keys(global.db.data.users).length 3 | let rtotalreg = Object.values(global.db.data.users).filter(user => user.registered == true).length 4 | m.reply(`*Jumlah database saat ini ${totalreg} user*`) 5 | } 6 | handler.help = ['database', 'user'] 7 | handler.tags = ['info'] 8 | handler.command = /^(database|jumlahdatabase|user)$/i 9 | module.exports = handler 10 | -------------------------------------------------------------------------------- /plugins/debounce.js: -------------------------------------------------------------------------------- 1 | let { spawn } = require('child_process'); 2 | let handler = async (m, { conn }) => { 3 | if (!process.send) throw 'Dont: node main.js\nDo: node index.js' 4 | if (global.conn.user.jid == conn.user.jid) { 5 | await m.reply('Sedang Mereset Bot...\nMohon tunggu sekitar 1 menit') 6 | await global.db.write() 7 | process.send('reset') 8 | } else throw '_eeeeeiiittsssss..._' 9 | } 10 | handler.help = ['debounce' + (process.send ? '' : ' (Not working)')] 11 | handler.tags = ['owner'] 12 | handler.command = /^debounce$/i 13 | handler.rowner = true 14 | handler.mods = false 15 | handler.premium = false 16 | handler.group = false 17 | handler.private = false 18 | 19 | handler.admin = false 20 | handler.botAdmin = false 21 | 22 | handler.fail = null 23 | 24 | module.exports = handler 25 | 26 | -------------------------------------------------------------------------------- /plugins/delete.js: -------------------------------------------------------------------------------- 1 | let handler = function (m) { 2 | if (!m.quoted) throw false 3 | let { chat, fromMe, id, isBaileys } = m.quoted 4 | if (!isBaileys) throw 'Pesan tersebut bukan dikirim oleh bot!' 5 | conn.sendMessage(m.chat, { delete: { remoteJid: m.chat, fromMe: true, id: m.quoted.id, participant: m.quoted.sender } }) 6 | } 7 | handler.help = ['delete'] 8 | handler.tags = ['main'] 9 | 10 | handler.command = /^del|delete|unsend?$/i 11 | handler.register = false 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/delprem.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | 3 | let who 4 | if (m.isGroup) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text 5 | else who = m.chat 6 | if (!who) throw `tag orangnya!` 7 | if (!global.prems.includes(who.split`@`[0])) throw 'dia ngga premium!' 8 | let index = global.prems.findIndex(v => (v.replace(/[^0-9]/g, '') + '@s.whatsapp.net') === (who.replace(/[^0-9]/g, '') + '@s.whatsapp.net')) 9 | global.prems.splice(index, 1) 10 | conn.reply(m.chat, `@${who.split('@')[0]} sekarang bukan premium!`, m, { 11 | contextInfo: { 12 | mentionedJid: [who] 13 | } 14 | }) 15 | 16 | } 17 | handler.help = ['delprem [@user]'] 18 | handler.tags = ['owner'] 19 | handler.command = /^(remove|hapus|-|del)prem$/i 20 | 21 | handler.owner = true 22 | 23 | module.exports = handler 24 | -------------------------------------------------------------------------------- /plugins/doaharian.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn }) => { 3 | await m.reply(global.wait) 4 | let res = await fetch(global.API('xteam','/religi/doaharian', {}, 'APIKEY')) 5 | let json = await res.json() 6 | if (res.status != 200) throw json 7 | if (json.result.error) throw json.result.message 8 | let { 9 | title, 10 | latin, 11 | arabic, 12 | translation 13 | } = json.result 14 | let caption = ` 15 | *「 Doa Harian 」* 16 | ${title} 17 | ${arabic} 18 | ${latin} 19 | Artinya: 20 | _"${translation}"_ 21 | `.trim() 22 | await m.reply(caption) 23 | } 24 | handler.help = ['doaharian'] 25 | handler.tags = ['islam'] 26 | handler.command = /^(doaharian)$/i 27 | 28 | module.exports = handler 29 | -------------------------------------------------------------------------------- /plugins/donasi.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/plugins/donasi.js -------------------------------------------------------------------------------- /plugins/elaina.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/elaina', {}, 'apikey'), 'Nih', wm, 'NEXT', 'elaina', m) 3 | } 4 | handler.help = ['elaina'] 5 | handler.tags = ['anime'] 6 | handler.command = /^(elaina)$/i 7 | 8 | module.exports = handler 9 | -------------------------------------------------------------------------------- /plugins/elf.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/elf', {}, 'apikey'), 'Nih', wm, 'NEXT', '.elf', m) 3 | } 4 | handler.help = ['elf'] 5 | handler.tags = ['anime'] 6 | handler.command = /^(elf)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/emojimix.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let {fetchJson} = require("../lib/myfunc") 3 | let fs = require("fs") 4 | 5 | let handler = async (m, { conn, text, args }) => { 6 | if (!args[0]) throw 'Contoh penggunaan:\n\n*.emojimix 🐷&😣*' 7 | let [emoji1, emoji2] = text.split`&` 8 | let anu = await fetchJson(`https://tenor.googleapis.com/v2/featured?key=AIzaSyAyimkuYQYF_FXVALexPuGQctUWRURdCYQ&contentfilter=high&media_filter=png_transparent&component=proactive&collection=emoji_kitchen_v5&q=${encodeURIComponent(emoji1)}_${encodeURIComponent(emoji2)}`) 9 | for (let res of anu.results) { 10 | let encmedia = await conn.sendImageAsSticker(m.chat, res.url, m, { packname: global.packname, author: global.author, categories: res.tags }) 11 | await fs.unlinkSync(encmedia) 12 | } 13 | } 14 | handler.help = ['emojimix'].map(v => v + ' emot1|emot2>') 15 | handler.tags = ['fun'] 16 | handler.command = /^(emojimix)$/i 17 | 18 | module.exports = handler 19 | -------------------------------------------------------------------------------- /plugins/exec2.js: -------------------------------------------------------------------------------- 1 | let cp = require('child_process') 2 | let { promisify } = require('util') 3 | let exec = promisify(cp.exec).bind(cp) 4 | let handler = async (m, { conn, isOwner, command, text }) => { 5 | if (global.conn.user.jid != conn.user.jid) return 6 | m.reply('Executing...') 7 | let o 8 | try { 9 | o = await exec(command.trimStart() + ' ' + text.trimEnd()) 10 | } catch (e) { 11 | o = e 12 | } finally { 13 | let { stdout, stderr } = o 14 | if (stdout.trim()) m.reply(stdout) 15 | if (stderr.trim()) m.reply(stderr) 16 | } 17 | } 18 | handler.customPrefix = /^[$] / 19 | handler.command = new RegExp 20 | handler.rowner = true 21 | module.exports = handler 22 | -------------------------------------------------------------------------------- /plugins/family100.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let winScore = 500 3 | async function handler(m) { 4 | this.game = this.game ? this.game : {} 5 | let id = 'family100_' + m.chat 6 | if (id in this.game) { 7 | this.reply(m.chat, 'Masih ada kuis yang belum terjawab di chat ini', this.game[id].msg) 8 | throw false 9 | } 10 | let res = await fetch(global.API('xteam', '/game/family100', {}, 'APIKEY')) 11 | if (!res.ok) throw await res.text() 12 | let json = await res.json() 13 | if (!json.status) throw json 14 | let caption = ` 15 | *Soal:* ${json.soal} 16 | 17 | Terdapat *${json.jawaban.length}* jawaban${json.jawaban.find(v => v.includes(' ')) ? ` 18 | (beberapa jawaban terdapat spasi) 19 | `: ''} 20 | 21 | +${winScore} XP tiap jawaban benar 22 | `.trim() 23 | this.game[id] = { 24 | id, 25 | msg: await m.reply(caption), 26 | ...json, 27 | terjawab: Array.from(json.jawaban, () => false), 28 | winScore, 29 | } 30 | } 31 | handler.help = ['family100'] 32 | handler.tags = ['game'] 33 | handler.command = /^family100$/i 34 | 35 | module.exports = handler -------------------------------------------------------------------------------- /plugins/fb.js: -------------------------------------------------------------------------------- 1 | let xfar = require('xfarr-api') 2 | let fetch = require('node-fetch') 3 | let handler = async (m, { conn, command, text }) => { 4 | if (!text) throw 'Masukkan Link\n\nContoh: .fb https://facebook.com/xxxxxx' 5 | let res = await xfar.Facebook(text) 6 | m.reply('*Tunggu Sebentar...*') 7 | conn.sendFile(m.chat,res.medias[1].url, 'fb.mp4', `Tittle: ${res.tittle} 8 | Link Video: ${res.url} 9 | `, m) 10 | 11 | } 12 | handler.help = ['fb ', 'facebook '] 13 | handler.tags = ['downloader'] 14 | handler.command = /^fb|facebook$/i 15 | 16 | 17 | module.exports = handler 18 | -------------------------------------------------------------------------------- /plugins/fetch.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let util = require('util') 3 | let handler = async (m, { text }) => { 4 | if (!/^https?:\/\//.test(text)) throw 'Awali *URL* dengan http:// atau https://' 5 | let _url = new URL(text) 6 | let url = global.API(_url.origin, _url.pathname, Object.fromEntries(_url.searchParams.entries()), 'APIKEY') 7 | let res = await fetch(url) 8 | if (res.headers.get('content-length') > 100 * 1024 * 1024 * 1024) { 9 | delete res 10 | throw `Content-Length: ${res.headers.get('content-length')}` 11 | } 12 | if (!/text|json/.test(res.headers.get('content-type'))) return conn.sendFile(m.chat, url, 'file', text, m) 13 | let txt = await res.buffer() 14 | try { 15 | txt = util.format(JSON.parse(txt+'')) 16 | } catch (e) { 17 | txt = txt + '' 18 | } finally { 19 | m.reply(txt.slice(0, 65536) + '') 20 | } 21 | } 22 | handler.help = ['fetch', 'get'].map(v => v + ' ') 23 | handler.tags = ['internet'] 24 | handler.command = /^(fetch|get)$/i 25 | 26 | module.exports = handler 27 | 28 | -------------------------------------------------------------------------------- /plugins/fflogo.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, args }) => { 3 | response = args.join(' ') 4 | if (!args) throw 'Masukkan Parameter' 5 | m.reply('*Proses...*') 6 | let res = `https://api.zeks.xyz/api/epep?text=${response}&apikey=apivinz` 7 | conn.sendFile(m.chat, res, 'nama.jpg', `Nih Mhank`, m, false) 8 | } 9 | handler.help = ['fflogo'].map(v => v + ' ') 10 | handler.tags = ['sticker'] 11 | handler.command = /^(fflogo)$/i 12 | handler.limit = true 13 | handler.register = true 14 | 15 | module.exports = handler 16 | 17 | //31caf10e4a64e86c1a92bcba 18 | -------------------------------------------------------------------------------- /plugins/film.js: -------------------------------------------------------------------------------- 1 | let xfar = require('xfarr-api') 2 | let axios = require('axios') 3 | let fetch = require('node-fetch') 4 | let handler = async (m, { usedPrefix, command, conn:fur, args }) => { 5 | if (!args[0]) throw `Gunakan format: ${usedPrefix}${command} spiderman` 6 | xfar.Film(args[0]).then(async data => { 7 | let txt = `*--------「 FILM-SEARCH 」--------*\n\n` 8 | for (let i of data) { 9 | txt += `*📫 Judul :* ${i.judul}\n` 10 | txt += `*🎞️ Tipe :* ${i.type}\n` 11 | txt += `*📟 Kualitas :* ${i.quality}\n` 12 | txt += `*📮Upload :* ${i.upload}\n` 13 | txt += `*🔗 Url :* ${await shortlink(i.link)}\n-----------------------------------------------------\n` 14 | } 15 | 16 | conn.sendButtonLoc(m.chat, await (await fetch(data[0].thumb)).buffer(), txt, wm, 'pencet', 'ok', m) 17 | }) 18 | } 19 | handler.help = ['film '] 20 | handler.tags = ['film'] 21 | handler.command = /^(film)$/i 22 | 23 | module.exports = handler 24 | 25 | async function shortlink(url){ 26 | isurl = /https?:\/\//.test(url) 27 | return isurl ? (await require('axios').get('https://tinyurl.com/api-create.php?url='+encodeURIComponent(url))).data : ''} 28 | -------------------------------------------------------------------------------- /plugins/gcbot.js: -------------------------------------------------------------------------------- 1 | //ubah jadi grup mu 2 | 3 | let handler = async m => m.reply(` 4 | ╭═════════════════ 5 | ║ 𝐆𝐑𝐎𝐔𝐏 𝐎𝐅𝐅𝐈𝐂𝐈𝐀𝐋 6 | ║https://chat.whatsapp.com/Jzd9DEVB5nODtNBk1VCNrV 7 | ╰══════════════════ 8 | 9 | `.trim()) 10 | handler.help = ['gcbot'] 11 | handler.tags = ['main'] 12 | handler.command = /^(gcbot)$/i 13 | handler.owner = false 14 | handler.mods = false 15 | handler.premium = false 16 | handler.group = false 17 | handler.private = false 18 | 19 | handler.admin = false 20 | handler.botAdmin = false 21 | 22 | handler.fail = null 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/getplugins.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | let handler = async (m, { usedPrefix, command, text }) => { 4 | if (!text) throw `where is the text?\n\nexempel: ${usedPrefix + command} menu` 5 | const filename = path.join(__dirname, `./${text}${!/\.js$/i.test(text) ? '.js' : ''}`) 6 | const listPlugins = fs.readdirSync(path.join(__dirname)).map(v => v.replace(/\.js/, '')) 7 | if (!fs.existsSync(filename)) return m.reply(` 8 | '${filename}' not found! 9 | ${listPlugins.map(v => v).join('\n').trim()} 10 | `.trim()) 11 | m.reply(fs.readFileSync(filename, 'utf8')) 12 | } 13 | handler.help = ['getplugin'].map(v => v + ' [filename]') 14 | handler.tags = ['owner'] 15 | handler.command = /^(getplugin|get ?plugin)$/i 16 | 17 | handler.rowner = true 18 | 19 | module.exports = handler 20 | -------------------------------------------------------------------------------- /plugins/gimage.js: -------------------------------------------------------------------------------- 1 | let { promisify } = require('util') 2 | let _gis = require('g-i-s') 3 | let gis = promisify(_gis) 4 | 5 | let handler = async (m, { conn, args, text }) => { 6 | if (!text) return m.reply('Cari apa?') 7 | let results = await gis(text) || [] 8 | let { url, width, height } = pickRandom(results) || {} 9 | if (!url) return m.reply('Not Found') 10 | conn.sendButtonImg(m.chat, url, ` 11 | *── 「 GOOGLE IMAGE 」 ──* 12 | 13 | ${text} 14 | ➸ *width*: ${width} 15 | ➸ *height*: ${height} 16 | `.trim(), wm, 'NEXT', `.gimage ${text}`, m) 17 | } 18 | handler.help = ['image ', 'gimage ', 'googleimage '] 19 | handler.tags = ['internet'] 20 | handler.command = /^(gimage|googleimage|image)$/i 21 | 22 | module.exports = handler 23 | 24 | function pickRandom(arr) { 25 | return arr[Math.floor(Math.random() * arr.length)] 26 | } 27 | -------------------------------------------------------------------------------- /plugins/gitclone.js: -------------------------------------------------------------------------------- 1 | let regex = /(?:https|git)(?::\/\/|@)github\.com[\/:]([^\/:]+)\/(.+)/i 2 | let fetch = require('node-fetch') 3 | let handler = async (m, { args, usedPrefix, command }) => { 4 | 5 | if (!args[0]) throw 'link githubnya mana? contoh: https://github.com/Bintang73/botst4rz' 6 | 7 | if (!regex.test(args[0])) throw 'link salah!' 8 | 9 | let [, user, repo] = args[0].match(regex) || [] 10 | repo = repo.replace(/.git$/, '') 11 | let url = `https://api.github.com/repos/${user}/${repo}/zipball` 12 | let filename = (await fetch(url, {method: 'HEAD'})).headers.get('content-disposition').match(/attachment; filename=(.*)/)[1] 13 | // 'attachment; filename=Nurutomo-wabot-aq-v2.5.1-251-g836cccd.zip' 14 | m.reply(`*Mohon tunggu, sedang mengirim repository..*`) 15 | conn.sendFile(m.chat, url, filename, null, m) 16 | 17 | } 18 | handler.help = ['gitclone '] 19 | handler.tags = ['github'] 20 | handler.command = /gitclone/i 21 | 22 | handler.limit = true 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/githubdl.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { args, usedPrefix, command }) => { 2 | 3 | if (!args[0]) throw 'usernamenya mana om' 4 | if (!args[1]) throw 'repo nya mana?' 5 | if (!args[2]) throw 'masukkan nama branch' 6 | let url = `https://github.com/${args[0]}/${args[1]}/archive/refs/heads/${args[2]}.zip` 7 | //F 8 | m.reply(`compressing data to file zip*`) 9 | conn.sendFile( m.chat, url, `${args[1]} ${args[2]}.zip`, null, m) 10 | 11 | } 12 | handler.help = ['githubdl'] 13 | handler.tags = ['github'] 14 | handler.command = /githubdl/i 15 | 16 | handler.limit = true 17 | 18 | module.exports = handler 19 | -------------------------------------------------------------------------------- /plugins/githubstalk.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | 3 | let handler = async(m, { conn, text }) => { 4 | 5 | if (!text) return conn.reply(m.chat, 'Harap Masukan Username', m) 6 | 7 | await m.reply('Searching...') 8 | let res = await fetch(`https://hadi-api.herokuapp.com/api/githubstalk?username=${text}`) 9 | let json = await res.json() 10 | if (res.status !== 200) throw await res.text() 11 | if (!json.status) throw json 12 | let thumb = await (await fetch(json.result.avatar)).buffer() 13 | let hasil = `*── 「 GITHUB STALK 」 ──* 14 | 15 | ➸ *Bio*: ${json.result.bio} 16 | ➸ *Perusahaan*: ${json.result.company} 17 | ➸ *Email:* ${json.result.email} 18 | ➸ *Twitter:* ${json.result.twiter_username} 19 | ➸ *Repo Publik:* ${json.result.public_repo} 20 | ➸ *Gists Publik:* ${json.result.public_gists} 21 | ➸ *Follower:* ${json.result.follower} 22 | ➸ *Following:* ${json.result.following} 23 | ➸ *Lokasi:* ${json.result.location} 24 | ➸ *Type:* ${json.result.Type} 25 | ` 26 | 27 | conn.sendFile(m.chat, thumb, 'githubstalk.jpg', hasil, m) 28 | } 29 | handler.help = ['githubstalk'].map(v => v + ' ') 30 | handler.tags = ['stalk'] 31 | handler.command = /^(githubstalk)$/i 32 | 33 | module.exports = handler 34 | -------------------------------------------------------------------------------- /plugins/google.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let googleIt = require('google-it') 3 | let handler = async (m, { conn, command, args }) => { 4 | let full = /f$/i.test(command) 5 | let text = args.join` ` 6 | if (!text) return conn.reply(m.chat, 'Tidak ada teks untuk di cari', m) 7 | let url = 'https://google.com/search?q=' + encodeURIComponent(text) 8 | let search = await googleIt({ query: text }) 9 | let msg = search.map(({ title, link, snippet}) => { 10 | return `*${title}*\n_${link}_\n_${snippet}_` 11 | }).join`\n\n` 12 | try { 13 | let ss = await (await fetch(global.API('nrtm', '/api/ssweb', { delay: 1000, url, full }))).buffer() 14 | if (ss.includes('html')) throw '' 15 | await conn.sendFile(m.chat, ss, 'screenshot.png', url + '\n\n' + msg, m) 16 | } catch (e) { 17 | m.reply(msg) 18 | } 19 | } 20 | handler.help = ['google', 'googlef'].map(v => v + ' ') 21 | handler.tags = ['internet'] 22 | handler.command = /^googlef?$/i 23 | handler.fail = null 24 | 25 | module.exports = handler 26 | -------------------------------------------------------------------------------- /plugins/heal.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { args, usedPrefix }) => { 2 | let user = global.db.data.users[m.sender] 3 | if (user.health >= 100) return m.reply(` 4 | Your ❤️health is full! 5 | `.trim()) 6 | const heal = 40 + (user.cat * 4) 7 | let count = Math.max(1, Math.min(Number.MAX_SAFE_INTEGER, (isNumber(args[0]) && parseInt(args[0]) || Math.round((100 - user.health) / heal)))) * 1 8 | if (user.potion < count) return m.reply(` 9 | Your 🥤Potion is not enough, you only have *${user.potion}* 🥤Potion 10 | type *${usedPrefix}buy potion ${count - user.potion}* to buy 🥤Potion 11 | `.trim()) 12 | user.potion -= count * 1 13 | user.health += heal * count 14 | m.reply(` 15 | Successful use of *${count}* 🥤Potion(s) 16 | `.trim()) 17 | } 18 | 19 | handler.help = ['heal'] 20 | handler.tags = ['rpg'] 21 | handler.command = /^(heal)$/i 22 | 23 | export default handler 24 | 25 | function isNumber(number) { 26 | if (!number) return number 27 | number = parseInt(number) 28 | return typeof number == 'number' && !isNaN(number) 29 | } 30 | -------------------------------------------------------------------------------- /plugins/hidetag.js: -------------------------------------------------------------------------------- 1 | let handler = async(m, { conn, text, participants }) => { 2 | conn.sendMessage(m.chat, { text: text, mentions: participants.map(a => a.id) }, {quoted:m}) 3 | } 4 | handler.help = ['hidetag '] 5 | handler.tags = ['group'] 6 | handler.command = /^(hidetag)$/i 7 | 8 | handler.group = true 9 | handler.admin = true 10 | 11 | module.exports = handler 12 | -------------------------------------------------------------------------------- /plugins/hlh.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { command, text }) => { 2 | let ter = command[1].toLowerCase() 3 | let txt = m.quoted ? m.quoted.text ? m.quoted.text : text ? text : m.text : text ? text : m.text 4 | await m.reply(txt.replace(/[aiueo]/g, ter).replace(/[AIUEO]/g, ter.toUpperCase())) 5 | } 6 | handler.help = [...'aiueo'].map(v => `h${v}l${v}h `) 7 | handler.tags = ['tools'] 8 | handler.command = /^h([aiueo])l\1h/i 9 | 10 | module.exports = handler 11 | -------------------------------------------------------------------------------- /plugins/idfreefire.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { args }) => { 3 | let res = await fetch(global.API('xteam', '/search/freefire', {id: args[0]}, 'APIKEY')) 4 | let json = await res.json() 5 | if (json.result.name) m.reply(`\nNama : ${json.result.name}\nID : ${args[0]}\n`) 6 | else throw `Error!\n\n${json}` 7 | } 8 | handler.help = ['epep'].map(v => v + ' ') 9 | handler.tags = ['internet'] 10 | handler.command = /^(freefire|epep)$/i 11 | 12 | module.exports = handler 13 | -------------------------------------------------------------------------------- /plugins/ig.js: -------------------------------------------------------------------------------- 1 | const { igdl } = require('../lib/scrape') 2 | 3 | let handler = async (m, { conn, args, usedPrefix, command }) => { 4 | 5 | if (!args[0]) throw `Pengunaan:\n${usedPrefix + command} \n\nContoh:\n${usedPrefix + command} https://www.instagram.com/p/CQU21b0JKwq/` 6 | if (!args[0].match(/https:\/\/www.instagram.com\/.*(p|reel|tv)/gi)) throw `url salah, perintah ini untuk mengunduh post/reel/tv` 7 | 8 | igdl(args[0]).then(async res => { 9 | let igdl = JSON.stringify(res) 10 | let json = JSON.parse(igdl) 11 | await m.reply(global.wait) 12 | for (let { downloadUrl, type } of json) { 13 | conn.sendFile(m.chat, downloadUrl, 'ig' + (type == 'image' ? '.jpg' : '.mp4'), '*nih*', m) 14 | } 15 | }) 16 | } 17 | handler.help = ['ig'].map(v => v + ' ') 18 | handler.tags = ['downloader'] 19 | handler.command = /^(ig|instagram)$/i 20 | 21 | module.exports = handler 22 | -------------------------------------------------------------------------------- /plugins/igstory.js: -------------------------------------------------------------------------------- 1 | const { igstory } = require('../lib/scrape') 2 | 3 | let handler = async (m, { conn, args, usedPrefix, command }) => { 4 | 5 | if (!args[0]) throw `Pengunaan:\n${usedPrefix + command} \n\nContoh:\n\n${usedPrefix + command} stikerinbot` 6 | if (args[0].startsWith('http') || args[0].startsWith('@')) throw `username salah` 7 | 8 | igstory(args[0]).then(async res => { 9 | let igs = JSON.stringify(res) 10 | let json = JSON.parse(igs) 11 | await m.reply(global.wait) 12 | for (let { downloadUrl, type } of json) 13 | conn.sendFile(m.chat, downloadUrl, 'ig' + (type == 'image' ? '.jpg' : '.mp4'), '*Nih*', m) 14 | 15 | }) 16 | 17 | } 18 | handler.help = ['igstory'].map(v => v + ' ') 19 | handler.tags = ['downloader'] 20 | handler.command = /^(igs(tory)?)$/i 21 | 22 | module.exports = handler 23 | -------------------------------------------------------------------------------- /plugins/iqtest.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.reply(m.chat,`${pickRandom(global.iq)}`, m) 3 | } 4 | handler.help = ['iqtest'] 5 | handler.tags = ['game'] 6 | handler.command = /^(iqtest)$/i 7 | handler.owner = false 8 | handler.mods = false 9 | handler.premium = false 10 | handler.group = false 11 | handler.private = false 12 | 13 | handler.admin = false 14 | handler.botAdmin = false 15 | 16 | handler.fail = null 17 | 18 | module.exports = handler 19 | 20 | function pickRandom(list) { 21 | return list[Math.floor(list.length * Math.random())] 22 | } 23 | 24 | global.iq = [ 25 | 'IQ Anda Sebesar : 1', 26 | 'IQ Anda Sebesar : 14', 27 | 'IQ Anda Sebesar : 23', 28 | 'IQ Anda Sebesar : 35', 29 | 'IQ Anda Sebesar : 41', 30 | 'IQ Anda Sebesar : 50', 31 | 'IQ Anda Sebesar : 67', 32 | 'IQ Anda Sebesar : 72', 33 | 'IQ Anda Sebesar : 86', 34 | 'IQ Anda Sebesar : 99', 35 | 'IQ Anda Sebesar : 150', 36 | 'IQ Anda Sebesar : 340', 37 | 'IQ Anda Sebesar : 423', 38 | 'IQ Anda Sebesar : 500', 39 | 'IQ Anda Sebesar : 676', 40 | 'IQ Anda Sebesar : 780', 41 | 'IQ Anda Sebesar : 812', 42 | 'IQ Anda Sebesar : 945', 43 | 'IQ Anda Sebesar : 1000', 44 | 'IQ Anda Sebesar : Tidak Terbatas!', 45 | 'IQ Anda Sebesar : 5000', 46 | 'IQ Anda Sebesar : 7500', 47 | 'IQ Anda Sebesar : 10000', 48 | ] 49 | -------------------------------------------------------------------------------- /plugins/jadian.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, participants, command, usedPrefix }) => { 2 | let member = participants.map(u => u.id) 3 | let orang 4 | if (/ku/i.test(command)) orang = m.sender 5 | else orang = member[Math.floor(Math.random() * member.length)] 6 | let jodoh = member[Math.floor(Math.random() * member.length)] 7 | let jawab = `@${orang.replace(/@.+/, '')} ❤️ @${jodoh.replace(/@.+/, '')}`.trim() 8 | let mentionedJid = [orang, jodoh] 9 | await conn.sendBut(m.chat, jawab, '', `${command}`, usedPrefix + command, m, { contextInfo: { mentionedJid } }) 10 | } 11 | handler.help = ['jodohin', 'jodohku', 'jadian'] 12 | handler.tags = ['fun'] 13 | handler.command = /^jodoh(in|ku)|jadian$/i 14 | handler.group = true 15 | handler.limit = false 16 | 17 | module.exports = handler 18 | -------------------------------------------------------------------------------- /plugins/jadwalbola.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, command }) => { 3 | let res = await fetch('https://x-restapi.herokuapp.com/api/jadwal-bola?apikey=BETA') 4 | if (res.status != 200) throw await res.text() 5 | let json = await res.json() 6 | if (!json.status) throw json 7 | m.reply(` *JADWAL BOLA* 8 | 9 | _*${json.data[0].kickoff}*_ 10 | Waktu: _${json.data[0].waktu}_ 11 | Channel tv: ${json.data[0].channel} 12 | 13 | _*${json.data[1].kickoff}*_ 14 | Waktu: _${json.data[1].waktu}_ 15 | Channel tv: ${json.data[1].channel} 16 | 17 | _*${json.data[2].kickoff}*_ 18 | Waktu: _${json.data[2].waktu}_ 19 | Channel tv: ${json.data[2].channel} 20 | 21 | _*${json.data[3].kickoff}*_ 22 | Waktu: _${json.data[3].waktu}_ 23 | Channel tv: ${json.data[3].channel} 24 | 25 | _*${json.data[4].kickoff}*_ 26 | Waktu: _${json.data[4].waktu}_ 27 | Channel tv: ${json.data[4].channel} 28 | `) 29 | 30 | } 31 | handler.help = ['jadwalbola'] 32 | handler.tags = ['internet'] 33 | handler.command = /^jadwalbola$/i 34 | 35 | 36 | module.exports = handler 37 | -------------------------------------------------------------------------------- /plugins/join.js: -------------------------------------------------------------------------------- 1 | let linkRegex = /chat.whatsapp.com\/([0-9A-Za-z]{20,24})/i 2 | 3 | let handler = async (m, { conn, text }) => { 4 | let [_, code] = text.match(linkRegex) || [] 5 | if (!code) throw 'Link invalid' 6 | let res = await conn.groupAcceptInvite(code) 7 | m.reply(`Berhasil join grup ${res.gid}`) 8 | } 9 | handler.help = ['join '] 10 | handler.tags = ['premium'] 11 | 12 | handler.command = /^join$/i 13 | 14 | handler.premium = true 15 | 16 | module.exports = handler 17 | -------------------------------------------------------------------------------- /plugins/kalkulator.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | let id = m.chat 3 | conn.math = conn.math ? conn.math : {} 4 | if (id in conn.math) { 5 | clearTimeout(conn.math[id][3]) 6 | delete conn.math[id] 7 | m.reply('Hmmm...ngecheat?') 8 | } 9 | let val = text 10 | .replace(/[^0-9\-\/+*×÷πEe()piPI/]/g, '') 11 | .replace(/×/g, '*') 12 | .replace(/÷/g, '/') 13 | .replace(/π|pi/gi, 'Math.PI') 14 | .replace(/e/gi, 'Math.E') 15 | .replace(/\/+/g, '/') 16 | .replace(/\++/g, '+') 17 | .replace(/-+/g, '-') 18 | let format = val 19 | .replace(/Math\.PI/g, 'π') 20 | .replace(/Math\.E/g, 'e') 21 | .replace(/\//g, '÷') 22 | .replace(/\*×/g, '×') 23 | try { 24 | console.log(val) 25 | let result = (new Function('return ' + val))() 26 | if (!result) throw result 27 | m.reply(`*${format}* = _${result}_`) 28 | } catch (e) { 29 | if (e == undefined) throw 'Isinya?' 30 | throw 'Format salah, hanya 0-9 dan Simbol -, +, *, /, ×, ÷, π, e, (, ) yang disupport' 31 | } 32 | } 33 | handler.help = ['kalkulator '] 34 | handler.tags = ['tools'] 35 | handler.command = /^(calc(ulat(e|or))?|kalk(ulator)?)$/i 36 | handler.exp = 5 37 | handler.register = false 38 | module.exports = handler 39 | -------------------------------------------------------------------------------- /plugins/kanji.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let fs = require("fs") 3 | let handler = async (m, { conn, text }) => { 4 | if (!text) return conn.reply(m.chat, 'Harap masukan kanji nya', m) 5 | let res = await fetch(`https://kanjiapi.dev/v1/kanji/${encodeURIComponent(text)}`) 6 | let json = await res.json() 7 | let { kanji, grade, stroke_count, meanings, kun_readings, on_readings, name_readings, jlpt, unicode, heisig_en } = json 8 | let pesan = ` 9 | 「Kanji Information」 10 | Kanji: ${kanji} 11 | Arti: ${meanings} 12 | Kun-Reading: ${kun_readings} 13 | On-Reading: ${on_readings} 14 | Name Reading: ${name_readings} 15 | Grade: ${grade} 16 | Stroke: ${stroke_count} 17 | JLPT: ${jlpt} 18 | Unicode: ${unicode} 19 | Heisig-en: ${heisig_en} 20 | `.trim() 21 | conn.reply(m.chat, pesan, m) 22 | } 23 | handler.help = ['kanji'].map(v => v + ' ') 24 | handler.tags = ['internet'] 25 | handler.command =/^(kanji)$/i 26 | 27 | module.exports = handler 28 | -------------------------------------------------------------------------------- /plugins/kapankah.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | conn.reply(m.chat, `Kayaknya ${Math.floor(Math.random() * 100)} ${pickRandom(['detik', 'menit', 'jam', 'hari', 'minggu', 'bulan', 'tahun', 'abad'])} lagi ... 3 | `.trim(), m, m.mentionedJid ? { 4 | contextInfo: { 5 | mentionedJid: m.mentionedJid 6 | } 7 | } : {}) 8 | } 9 | handler.help = ['', 'kah'].map(v => 'kapan' + v + ' ?') 10 | handler.tags = ['kerang'] 11 | handler.customPrefix = /(\?$)/ 12 | handler.command = /^kapan(kah)?$/i 13 | handler.owner = false 14 | handler.mods = false 15 | handler.premium = false 16 | handler.group = false 17 | handler.private = false 18 | 19 | handler.admin = false 20 | handler.botAdmin = false 21 | 22 | handler.fail = null 23 | 24 | module.exports = handler 25 | 26 | function pickRandom(list) { 27 | return list[Math.floor(Math.random() * list.length)] 28 | } 29 | 30 | -------------------------------------------------------------------------------- /plugins/kodepos.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, text, usedPrefix, command }) => { 3 | if (!text) throw `*Perintah ini untuk mencari kode pos berdasarkan kota/pencarian*\n\ncontoh:\n${usedPrefix + command} Lamongan` 4 | let res = await fetch(global.API('xteam', '/kodepos', { q: text }, 'APIKEY')) 5 | if (res.status != 200) throw await res.text() 6 | let json = await res.json() 7 | if (!json.status) throw json 8 | let mes = json.result.map((v, i) => `${i + 1}. Provinsi: ${v.province}\nKota: ${v.city}\nKecamatan: ${v.subdistrict}\nPerkotaan: ${v.urban}\nKode Pos: ${v.postalcode}`).join('\n\n') 9 | m.reply(mes) 10 | } 11 | handler.help = ['kodepos '] 12 | handler.tags = ['tools'] 13 | handler.command = /^kodepos$/i 14 | 15 | handler.limit = true 16 | 17 | module.exports = handler 18 | -------------------------------------------------------------------------------- /plugins/kopi.js: -------------------------------------------------------------------------------- 1 | let fetch = require("node-fetch"); 2 | let handler = async (m, { conn, args }) => { 3 | let res = await fetch( 4 | global.API("https://coffee.alexflipnote.dev/", "/random.json") 5 | ); 6 | if (!res.ok) throw await `${res.status} ${res.statusText}`; 7 | let json = await res.json(); 8 | if (json.file) conn.sendButtonImg(m.chat, json.file, "kopi", wm, 'Lagi', '.kopi', m); 9 | else throw json; 10 | }; 11 | handler.help = ["coffee", "kopi"]; 12 | handler.tags = ["internet"]; 13 | 14 | handler.command = /^(kopi|coffee)$/i; 15 | 16 | module.exports = handler; 17 | -------------------------------------------------------------------------------- /plugins/kuncigitar.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text }) => { 3 | if (!text) throw 'judul lagunya apa?' 4 | let res = await fetch(`http://hadi-api.herokuapp.com/api/chord?q=${text}`) 5 | let json = await res.json() 6 | if (json.status) m.reply(json.result) 7 | else throw 'lagu tidak ditemukan' 8 | } 9 | handler.help = ['kuncigitar'].map(v => v + ' ') 10 | handler.tags = ['internet'] 11 | handler.command = /^kuncigitar$/i 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/levelup.js: -------------------------------------------------------------------------------- 1 | let levelling = require('../lib/levelling') 2 | 3 | let handler = m => { 4 | let user = global.db.data.users[m.sender] 5 | if (!levelling.canLevelUp(user.level, user.exp, global.multiplier)) { 6 | let { min, xp, max } = levelling.xpRange(user.level, global.multiplier) 7 | throw ` 8 | Level *${user.level} (${user.exp - min}/${xp})* 9 | Kurang *${max - user.exp}* lagi! 10 | `.trim() 11 | } 12 | let before = user.level * 1 13 | while (levelling.canLevelUp(user.level, user.exp, global.multiplier)) user.level++ 14 | if (before !== user.level) { 15 | m.reply(` 16 | Selamat, anda telah naik level! 17 | *${before}* -> *${user.level}* 18 | gunakan *.my* untuk mengecek 19 | `.trim()) 20 | } 21 | } 22 | 23 | handler.help = ['levelup'] 24 | handler.tags = ['xp'] 25 | 26 | handler.command = /^level(|up)$/i 27 | 28 | module.exports = handler 29 | -------------------------------------------------------------------------------- /plugins/limit.js: -------------------------------------------------------------------------------- 1 | let handler = async (m) => { 2 | let who 3 | if (m.isGroup) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.sender 4 | else who = m.sender 5 | fdoc = { 6 | key : { 7 | remoteJid: 'status@broadcast', 8 | participant : '0@s.whatsapp.net' 9 | }, 10 | message: { 11 | documentMessage: { 12 | title: wm, 13 | } 14 | } 15 | } 16 | conn.sendBut(m.chat, `${global.db.data.users[who].limit} Limit Tersisaಥ_ಥ`, wm, 'BELI', '.buy', fdoc) 17 | } 18 | handler.help = ['limit [@user]'] 19 | handler.tags = ['xp'] 20 | handler.command = /^(limit)$/i 21 | module.exports = handler 22 | -------------------------------------------------------------------------------- /plugins/linkgroup.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, args }) => { 2 | let group = args[0] ? args[0] : m.chat 3 | if (/^[0-9]{5,16}-[0-9]+@g\.us$/.test(args[0])) group = args[0] 4 | if (!/^[0-9]{5,16}-[0-9]+@g\.us$/.test(group)) throw 'Hanya bisa dibuka di grup' 5 | let groupMetadata = await conn.groupMetadata(group) 6 | let groupName = m.isGroup ? groupMetadata.subject : '' 7 | if (!groupMetadata) throw 'groupMetadata is undefined' 8 | if (!'participants' in groupMetadata) throw 'participants is not defined' 9 | let me = groupMetadata.participants.find(user => user.jid === conn.user.jid) 10 | m.reply('*Link Group ini*\n\nhttps://chat.whatsapp.com/' + await conn.groupInviteCode(group)) 11 | } 12 | handler.help = ['linkgroup'] 13 | handler.tags = ['group'] 14 | handler.command = /^link(gro?up)?$/i 15 | handler.owner = false 16 | handler.mods = false 17 | handler.premium = false 18 | handler.group = false 19 | handler.private = false 20 | 21 | handler.admin = false 22 | handler.botAdmin = true 23 | 24 | handler.fail = null 25 | 26 | module.exports = handler 27 | -------------------------------------------------------------------------------- /plugins/listprem.js: -------------------------------------------------------------------------------- 1 | /* 2 | Silahkan Di Pakek 3 | Tapi Bantu Rapihin :v 4 | Buatan: Miaweers 5 | */ 6 | 7 | let handler = async (m, { conn }) => { 8 | let prem = global.prems.map(v => v.replace(/[^0-9]/g, '') + '@s.whatsapp.net').filter(v => v != conn.user.jid) 9 | conn.reply(m.chat, `「 List Premium 」` + `\n` + prem.map(v => '- @' + v.replace(/@.+/, '')).join`\n`, m, { contextInfo: { mentionedJid: prem } }) 10 | } 11 | handler.help = ['premlist'] 12 | handler.tags = ['owner'] 13 | handler.command = /^(listprem|premlist)$/i 14 | handler.owner = true 15 | 16 | module.exports = handler 17 | -------------------------------------------------------------------------------- /plugins/logokaneki.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, args }) => { 3 | response = args.join(' ') 4 | if (!args[0]) throw 'Masukkan text\nContoh: .logokaneki elyas' 5 | m.reply('*Wait ngab*\nProses...') 6 | let res = `https://caliphapi.com/api/kaneki?text=${response}&apikey=ELYASXD` 7 | conn.sendFile(m.chat, res, 'kaneki.jpg', `Sudah jadi`, m, false) 8 | } 9 | handler.help = ['logokaneki'].map(v => v + ' ') 10 | handler.tags = ['maker'] 11 | handler.command = /^(logokaneki)$/i 12 | handler.limit = true 13 | handler.register = false 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/logololi.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, args }) => { 3 | response = args.join(' ').split('|') 4 | if (!args[0]) throw 'Masukkan Parameter' 5 | m.reply('*Wait Ngab*\nProses...') 6 | let res = `https://caliphapi.com/api/lolimaker?text=${response[0]}&text2=elyas&apikey=wVLiUzSa` 7 | conn.sendFile(m.chat, res, 'lolilogo.jpg', `Sudah Jadi`, m, false) 8 | } 9 | handler.help = ['logololi'].map(v => v + ' ') 10 | handler.tags = ['maker'] 11 | handler.command = /^(logololi)$/i 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/logoneko.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, args }) => { 3 | response = args.join(' ').split('|') 4 | if (!args[0]) throw 'Masukkan text1|text2\n\ncontoh: .logoneko elyas|ganzz' 5 | m.reply('*Wait ngab*\nProses...') 6 | let res = `https://caliphapi.com/api/girlneko?text=${response[0]}&text2=${response[1]}&apikey=ELYASXD` 7 | conn.sendFile(m.chat, res, 'nekologo.jpg', `Sudah jadi`, m, false) 8 | } 9 | handler.help = ['logoneko'].map(v => v + ' ') 10 | handler.tags = ['maker'] 11 | handler.command = /^(logoneko)$/i 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/logorem.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, args }) => { 3 | response = args.join(' ') 4 | if (!args[0]) throw 'Masukkan Text' 5 | m.reply('*Wait ngab*\nProses...') 6 | let res = `https://caliphapi.com/api/rem?text=${response}&text2=Elyas&apikey=ELYASXD` 7 | conn.sendFile(m.chat, res, 'kaneki.jpg', `Sudah jadi`, m, false) 8 | } 9 | handler.help = ['logorem'].map(v => v + ' ') 10 | handler.tags = ['maker'] 11 | handler.command = /^(logorem)$/i 12 | handler.limit = true 13 | handler.register = false 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/loli.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/loli', {}, 'apikey'), 'Nih', wm, 'NEXT', 'loli', m) 3 | } 4 | handler.help = ['loli'] 5 | handler.tags = ['anime'] 6 | handler.command = /^(loli)$/i 7 | 8 | module.exports = handler 9 | -------------------------------------------------------------------------------- /plugins/masak.js: -------------------------------------------------------------------------------- 1 | let fetch = require("node-fetch") 2 | 3 | let handler = async (m, { conn, text }) => { 4 | let more = String.fromCharCode(8206) 5 | let readMore = more.repeat(4001) 6 | let res = await fetch(global.API('zeks', '/api/resep-masak', { q : text }, 'apikey')) 7 | if (!res.ok) throw await res.text() 8 | let json = await res.json() 9 | if (!json.title) throw json 10 | await conn.sendFile(m.chat, json.thumb, '', ` 11 | ${json.title} 12 | ${json.url}\n 13 | *Tingkat:* ${json.tingkat} 14 | *Durasi:* ${json.duration} 15 | *Porsi:* ${json.banyak} 16 | ${readMore}\n\n 17 | *Bahan:* ${json.bahan} 18 | *Cara:* ${json.cara} 19 | `.trim(), m) 20 | } 21 | handler.help = ['resep ', 'masak '] 22 | handler.tags = ['internet'] 23 | handler.command = /^(resep|masak)$/i 24 | 25 | module.exports = handler 26 | -------------------------------------------------------------------------------- /plugins/math_ans.js: -------------------------------------------------------------------------------- 1 | let handler = m => m 2 | handler.before = async function (m) { 3 | if (!/^-?[0-9]+(\.[0-9]+)?$/.test(m.text)) return !0 4 | let id = m.chat 5 | if (!m.quoted || m.quoted.sender != this.user.jid || !/^Berapa hasil dari/i.test(m.quoted.text)) return !0 6 | this.math = this.math ? this.math : {} 7 | if (!(id in this.math)) return m.reply('Soal itu telah berakhir') 8 | if (m.quoted.id == this.math[id][0].id) { 9 | let math = JSON.parse(JSON.stringify(this.math[id][1])) 10 | if (m.text == math.result) { 11 | global.db.data.users[m.sender].exp += math.bonus 12 | clearTimeout(this.math[id][3]) 13 | delete this.math[id] 14 | m.reply(`*Jawaban Benar!*\n+${math.bonus} XP`) 15 | } else { 16 | if (--this.math[id][2] == 0) { 17 | clearTimeout(this.math[id][3]) 18 | delete this.math[id] 19 | m.reply(`*Kesempatan habis!*\nJawaban: *${math.result}*`) 20 | } else m.reply(`*Jawaban Salah!*\nMasih ada ${this.math[id][2]} kesempatan`) 21 | } 22 | } 23 | return !0 24 | } 25 | 26 | module.exports = handler 27 | -------------------------------------------------------------------------------- /plugins/mediafire.js: -------------------------------------------------------------------------------- 1 | const { mediafireDl } = require('../lib/mediafire.js') 2 | let handler = async (m, { conn, text, args, isPrems, isOwner, usedPrefix, command }) => { 3 | if (!text) return m.reply(`Kirim perintah ${usedPrefix + command} *link mediafire*`) 4 | if (!args[0].includes('mediafire.com')) return m.reply(error.linkmf) 5 | let mdjon = args.join(' ') 6 | res = await mediafireDl(mdjon) 7 | result = `「 *MEDIAFIRE DOWNLOAD* 」 8 | *Data Berhasil Didapatkan!* 9 | 🆔 Nama : ${res[0].nama} 10 | 📊 Ukuran : ${res[0].size} 11 | 💬 Link : ${res[0].link} 12 | _Tunggu Proses Upload Media_` 13 | m.reply(result) 14 | //await sleep(100) 15 | conn.sendFile(m.chat, res[0].link, res[0].nama, null, m, false, {asDocument:true, mimetype:res[0].mime}) 16 | } 17 | handler.command = ['mediafire'] 18 | 19 | module.exports = handler 20 | -------------------------------------------------------------------------------- /plugins/megumin.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn }) => { 3 | let res = await fetch('https://api.waifu.pics/sfw/megumin') 4 | if (!res.ok) throw 'Error Website sedang down' 5 | let json = await res.json() 6 | if (!json.url) throw 'Error!' 7 | conn.sendFile(m.chat, json.url, '', 'istri gweh', m, 0, { thumbnail: Buffer.alloc(0) }) 8 | } 9 | handler.help = ['megumin'] 10 | handler.tags = ['anime'] 11 | handler.command = /^(megumin)$/i 12 | 13 | handler.limit = true 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/meme.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn }) => { 3 | let url = global.API('xteam', '/randomimage/meme', {}, 'APIKEY') 4 | await conn.sendButtonImg(m.chat, url, '*MEME*', wm, 'NEXT', '.meme',m, 0, { thumbnail: await (await fetch(url)).buffer() }) 5 | } 6 | handler.help = ['meme'] 7 | handler.tags = ['fun'] 8 | handler.command = /^(meme)$/i 9 | handler.limit = false 10 | 11 | module.exports = handler 12 | -------------------------------------------------------------------------------- /plugins/nabung.js: -------------------------------------------------------------------------------- 1 | const xppermoney = 1 2 | let handler = async (m, { conn, command, args }) => { 3 | let count = command.replace(/^nabung/i, '') 4 | count = count ? /all/i.test(count) ? Math.floor(global.db.data.users[m.sender].money / xppermoney) : parseInt(count) : args[0] ? parseInt(args[0]) : 1 5 | count = Math.max(1, count) 6 | if (global.db.data.users[m.sender].money >= xppermoney * count) { 7 | global.db.data.users[m.sender].money -= xppermoney * count 8 | global.db.data.users[m.sender].atm += count 9 | conn.reply(m.chat, `-Rp.${xppermoney * count} 💹\n+ ${count} 💳\n\n[ ! ] Succes menabung !`, m) 10 | } else conn.reply(m.chat, `[❗] Uang anda tidak mencukupi untuk menabung ${count} !`, m) 11 | } 12 | handler.help = ['nabung '] 13 | handler.tags = ['rpg'] 14 | handler.command = /^nabung ([0-9]+)|nabung$/i 15 | handler.owner = false 16 | handler.mods = false 17 | handler.premium = false 18 | handler.group = false 19 | handler.private = false 20 | 21 | handler.admin = false 22 | handler.botAdmin = false 23 | 24 | handler.fail = null 25 | handler.exp = 0 26 | 27 | module.exports = handler 28 | -------------------------------------------------------------------------------- /plugins/narik.js: -------------------------------------------------------------------------------- 1 | const xpperatm = 1 2 | let handler = async (m, { conn, command, args }) => { 3 | let count = command.replace(/^narik|tarik/i, '') 4 | count = count ? /all/i.test(count) ? Math.floor(global.db.data.users[m.sender].atm / xpperatm) : parseInt(count) : args[0] ? parseInt(args[0]) : 1 5 | count = Math.max(1, count) 6 | if (global.db.data.users[m.sender].atm >= xpperatm * count) { 7 | global.db.data.users[m.sender].atm -= xpperatm * count 8 | global.db.data.users[m.sender].money += count 9 | conn.reply(m.chat, `-Rp.${xpperatm * count} 💳\n+Rp.${count} 💹\n\n[ ! ] Succes menarik uang !`, m) 10 | } else conn.reply(m.chat, `[❗] Uang anda tidak mencukupi untuk menarik ${count} !`, m) 11 | } 12 | handler.help = ['narik '] 13 | handler.tags = ['rpg'] 14 | handler.command = /^narik ([0-9]+)|narik|tarik$/i 15 | handler.owner = false 16 | handler.mods = false 17 | handler.premium = false 18 | handler.group = false 19 | handler.private = false 20 | 21 | handler.admin = false 22 | handler.botAdmin = false 23 | 24 | handler.fail = null 25 | handler.exp = 0 26 | 27 | module.exports = handler 28 | -------------------------------------------------------------------------------- /plugins/news.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, command }) => { 3 | let res = await fetch(global.API('xteam', '/news/' + command, {}, 'APIKEY')) 4 | if (res.status != 200) throw await res.text() 5 | let json = await res.json() 6 | if (!json.status) throw json 7 | conn.sendFile(m.chat, json.thumb, 'news.jpeg', ` 8 | _*${json.judul}*_ 9 | _${json.tanggal}_\n 10 | ${json.artikel}\n\n 11 | ${json.url} 12 | `.trim(),m) 13 | } 14 | handler.help = ['kompas', 'liputan6', 'tribun', 'jalantikus'] 15 | handler.tags = ['internet'] 16 | handler.command = /^kompas|liputan6|tribun|jalantikus$/i 17 | 18 | 19 | module.exports = handler 20 | -------------------------------------------------------------------------------- /plugins/nguli.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | if (new Date - global.db.data.users[m.sender].lastnguli > 86400000) { 3 | global.db.data.users[m.sender].limit += 10 4 | m.reply('_Selamat kamu mendapatkan +10 limit_') 5 | global.db.data.users[m.sender].lastnguli = new Date * 1 6 | } else m.reply('Anda sudah mengklaim upah nguli hari ini') 7 | } 8 | handler.help = ['nguli'] 9 | handler.tags = ['rpg'] 10 | handler.command = /^(nguli)$/i 11 | handler.owner = false 12 | handler.mods = false 13 | handler.premium = false 14 | handler.group = false 15 | handler.private = false 16 | 17 | handler.admin = false 18 | handler.botAdmin = false 19 | 20 | handler.fail = null 21 | handler.limit = 0 22 | 23 | module.exports = handler 24 | -------------------------------------------------------------------------------- /plugins/nhsearch.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async(m, { conn, text }) => { 3 | let res = await fetch(global.API('lolhum', '/api/nhentaisearch', { query: text }, 'apikey')) 4 | if (!res.ok) throw await res.text() 5 | let json = await res.json() 6 | let keqing = json.result.map((v, i) => `#${i + 1}. \n*Kode:* ${v.id}\n*Title english:* ${v.title_english}\n*Title Japanese:* ${v.title_japanese}\n*Title:* ${v.title_native}\n*Date:* ${v.date_upload}\n*Page:* ${v.page}\n*Favourite:* ${v.favourite}\n==============\n`).join('\n') 7 | if (json.status) m.reply(keqing) 8 | else throw json 9 | } 10 | handler.help = ['nhsearch '] 11 | handler.tags = ['nsfw'] 12 | handler.nsfw = true 13 | handler.command = /^(nhs|nhsearch)$/i 14 | 15 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nomorhoki.js: -------------------------------------------------------------------------------- 1 | let axios = require("axios"); 2 | let handler = async(m, { conn, text }) => { 3 | 4 | if (!text) return conn.reply(m.chat, 'Silahkan masukan nomor hpmu yang akan diartikan', m) 5 | 6 | axios.get(`https://kocakz.herokuapp.com/api/primbon/nomorhoki?nomor=${text}`).then ((res) => { 7 | let hasil = `Nomor HP : ${res.data.result.hoki}\nPositif : ${res.data.result.positif}\nNegatif : ${res.data.result.positif}` 8 | 9 | conn.reply(m.chat, hasil, m) 10 | }) 11 | } 12 | handler.help = ['nomorhoki'].map(v => v + ' ') 13 | handler.tags = ['fun'] 14 | handler.command = /^(nomorhoki)$/i 15 | handler.owner = false 16 | handler.mods = false 17 | handler.premium = false 18 | handler.group = false 19 | handler.private = false 20 | 21 | handler.admin = false 22 | handler.botAdmin = false 23 | 24 | handler.fail = null 25 | handler.exp = 0 26 | handler.limit = true 27 | 28 | module.exports = handler 29 | -------------------------------------------------------------------------------- /plugins/nsfwahegao.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/ahegao', {}, 'apikey'), 'Nih', wm, 'NEXT', '.ahegao', m) 3 | } 4 | handler.help = ['ahegao'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(ahegao)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwarm.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/animearmpits', {}, 'apikey'), 'Nih', wm, 'NEXT', '.arm', m) 3 | } 4 | handler.help = ['arm'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(arm)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwavatar.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random2/nsfw_avatar', {}, 'apikey'), 'Nih', wm, 'NEXT', '.avatar', m) 3 | } 4 | handler.help = ['avatar'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(avatar)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwblow.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random2/bj', {}, 'apikey'), 'Nih', wm, 'NEXT', '.blow', m) 3 | } 4 | handler.help = ['blow'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(blow)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwblowjob.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/blowjob', {}, 'apikey'), 'Nih', wm, 'NEXT', '.blowjob', m) 3 | } 4 | handler.help = ['blowjob'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(blowjob)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwbooty.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/animebooty', {}, 'apikey'), 'Nih', wm, 'NEXT', '.booty', m) 3 | } 4 | handler.help = ['booty'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(booty)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwcum.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random2/cum_jpg', {}, 'apikey'), 'Nih', wm, 'NEXT', '.cum', m) 3 | } 4 | handler.help = ['cum'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(cum)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwecchi.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/ecchi', {}, 'apikey'), 'Nih', wm, 'NEXT', '.ecchi', m) 3 | } 4 | handler.help = ['ecchi'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(ecchi)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwero.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random2/ero', {}, 'apikey'), 'Nih', wm, 'NEXT', '.ero', m) 3 | } 4 | handler.help = ['ero'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(ero)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwfeets.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/animefeets', {}, 'apikey'), 'Nih', wm, 'NEXT', '.feets', m) 3 | } 4 | handler.help = ['feets'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(feets)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwfemdom.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/hentaifemdom', {}, 'apikey'), 'Nih', wm, 'NEXT', '.femdom', m) 3 | } 4 | handler.help = ['femdom'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(femdom)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwfutanari.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random2/futanari', {}, 'apikey'), 'Nih', wm, 'NEXT', '.futanari', m) 3 | } 4 | handler.help = ['futanari'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(futanari)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwhentai.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random2/hentai', {}, 'apikey'), 'Nih', wm, 'NEXT', '.hentai', m) 3 | } 4 | handler.help = ['hentai'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(hentai)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwhololewd.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/hololewd', {}, 'apikey'), 'Nih', wm, 'NEXT', '.hololewd', m) 3 | } 4 | handler.help = ['hololewd'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(hololewd)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwjahy.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | await m.reply(global.wait) 3 | conn.sendFile(m.chat, 'https://api.xteam.xyz/randomimage/jahy?apikey=d81ce7556c32afe3', 'Wangy.js', 'Wangy wangy wangy', m) 4 | } 5 | handler.help = ['jahy'] 6 | handler.tags = ['nsfw'] 7 | handler.command = /^(jahy)$/i 8 | handler.premium = true 9 | 10 | module.exports = handler 11 | -------------------------------------------------------------------------------- /plugins/nsfwloli.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/chiisaihentai', {}, 'apikey'), 'Nih', wm, 'NEXT', '.nsfwloli', m) 3 | } 4 | handler.help = ['nsfwloli'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(nsfwloli)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwmilf.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/milf', {}, 'apikey'), 'Nih', wm, 'NEXT', '.milf', m) 3 | } 4 | handler.help = ['milf'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(milf)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwneko.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/neko', {}, 'apikey'), 'Nih', wm, 'NEXT', '.nsfwneko', m) 3 | } 4 | handler.help = ['nsfwneko'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(nsfwneko)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwpussy.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random2/pussy_jpg', {}, 'apikey'), 'Nih', wm, 'NEXT', '.pussy', m) 3 | } 4 | handler.help = ['pussy'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(pussy)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwsideoppai.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/sideoppai', {}, 'apikey'), 'Nih', wm, 'NEXT', '.sideoppai', m) 3 | } 4 | handler.help = ['sideoppai'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(sideoppai)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwsolo.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random2/solo', {}, 'apikey'), 'Nih', wm, 'NEXT', '.solo', m) 3 | } 4 | handler.help = ['solo'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(solo)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwthighss.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/animethighss', {}, 'apikey'), 'Nih', wm, 'NEXT', '.thighss', m) 3 | } 4 | handler.help = ['thighss'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(thighss)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/nsfwtiddies.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendButtonImg(m.chat, global.API('lolhuman', '/api/random/nsfw/biganimetiddies', {}, 'apikey'), 'Nih', wm, 'NEXT', '.tiddies', m) 3 | } 4 | handler.help = ['tiddies'] 5 | handler.tags = ['nsfw'] 6 | handler.command = /^(tiddies)$/i 7 | 8 | module.exports = handler -------------------------------------------------------------------------------- /plugins/oadmin.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, isAdmin }) => { 2 | if (m.fromMe) throw 'Nggk' 3 | if (isAdmin) throw 'Padahal udah jadi admin' 4 | await conn.groupParticipantsUpdate(m.chat, [m.sender], "promote") 5 | } 6 | handler.command = /^admin.$/i 7 | handler.rowner = true 8 | handler.botAdmin = true 9 | module.exports = handler 10 | -------------------------------------------------------------------------------- /plugins/pick.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { text, args, participants, command }) => { 2 | if (args[0] < 0, args.length < 2) throw 'Example: #pick 15 gay' 3 | let users = participants.map(u => u.jid) 4 | m.reply(`*🎉 Kamu Ter${command} sebagai ${text.replace(args, '').trimStart()}* 5 | 6 | ${new Array(Math.min(users.length, args[0])).fill().map(() => { 7 | let index = Math.floor(Math.random() * users.length) 8 | return `@${users.splice(index, 1)}` 9 | }).join`\n`.replace(/@s.whatsapp.net/g,'')}`) 10 | } 11 | handler.help = ['pick '] 12 | handler.tags = ['fun'] 13 | handler.command = /^pick/i 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/pinterest.js: -------------------------------------------------------------------------------- 1 | let xfar = require('xfarr-api') 2 | let handler = async (m, { usedPrefix, command, conn, args }) => { 3 | if (!args[0]) throw `Gunakan format: ${usedPrefix}${command} naruto` 4 | xfar.Pinterest(args[0]).then(async data => { 5 | let pincpt = `🔗Link media : ${data.url}` 6 | conn.sendFile(m.chat,data.url, 'pin.jpg', pincpt,m)}) 7 | } 8 | handler.help = ['pinterest '] 9 | handler.tags = ['internet'] 10 | handler.command = /^(pinterest)$/i 11 | 12 | module.exports = handler 13 | -------------------------------------------------------------------------------- /plugins/ppcp.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, command }) => { 3 | let res = await fetch('https://caliphapi.com/api/ppcouple?apikey=ELYASXD') 4 | if (res.status != 200) throw await res.text() 5 | let json = await res.json() 6 | if (!json.status) throw json 7 | conn.sendButtonImg(m.chat, json.result.female, 'Cewe', wm, 'Next', '.ppcp', m) 8 | conn.sendFile(m.chat, json.result.male,'pria.jpg', 'Cowo', m) 9 | 10 | } 11 | handler.help = ['ppcp'] 12 | handler.tags = ['internet'] 13 | handler.command = /^ppcp$/i 14 | 15 | 16 | module.exports = handler 17 | -------------------------------------------------------------------------------- /plugins/qr.js: -------------------------------------------------------------------------------- 1 | let qrcode = require("qrcode") 2 | 3 | let handler = async (m, { conn, text }) => { 4 | if (!text) throw 'teksnya mana?' 5 | conn.sendFile(m.chat, await qrcode.toDataURL(text.slice(0, 2048), { scale: 8 }), 'qrcode.png', '', m) 6 | } 7 | handler.help = ['', 'code'].map(v => 'qr' + v + ' ') 8 | handler.tags = ['tools'] 9 | handler.command = /^qr(code)?$/i 10 | handler.admin = false 11 | handler.botAdmin = false 12 | 13 | handler.fail = null 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/quotemaker.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | let [teks, wm] = text.split`|` 3 | await conn.sendFile(m.chat, global.API('xteam', '/quotemaker', { text: teks, wm: wm ? wm : conn.getName(m.sender) }, 'APIKEY'), 'file.jpg', 'Nih', m) 4 | } 5 | handler.help = ['quote'].map(v => v + 'maker |') 6 | handler.tags = ['maker'] 7 | handler.command = /^quotemaker$/i 8 | 9 | handler.limit = true 10 | 11 | module.exports = handler 12 | -------------------------------------------------------------------------------- /plugins/quotesanim.js: -------------------------------------------------------------------------------- 1 | let axios = require("axios"); 2 | let handler = async(m, { conn, text }) => { 3 | 4 | axios.get(`https://videfikri.com/api/anime/randomquoteanime`).then ((res) => { 5 | let hasil = `${res.data.result.quotes}` 6 | 7 | conn.reply(m.chat, hasil, m) 8 | }) 9 | } 10 | handler.help = ['quoteanime'] 11 | handler.tags = ['anime'] 12 | handler.command = /^(quoteanime)$/i 13 | handler.owner = false 14 | handler.mods = false 15 | handler.premium = false 16 | handler.group = false 17 | handler.private = false 18 | 19 | handler.admin = false 20 | handler.botAdmin = false 21 | 22 | handler.fail = null 23 | handler.exp = 0 24 | handler.limit = false 25 | 26 | module.exports = handler -------------------------------------------------------------------------------- /plugins/quran.js: -------------------------------------------------------------------------------- 1 | let axios = require("axios"); 2 | let handler = async(m, { conn, text }) => { 3 | axios.get(`https://api.banghasan.com/quran/format/json/acak`).then ((res) => { 4 | let sr = /{(.*?)}/gi; 5 | let hs = res.data.acak.id.ayat; 6 | let ket = `${hs}`.replace(sr, ''); 7 | let hasil = `[${ket}] ${res.data.acak.ar.teks}\n\n${res.data.acak.id.teks}\n\n(QS.${res.data.surat.nama}, Ayat ${ket})` 8 | 9 | > const buttons = [ 10 | {buttonId: 'MENU', buttonText: {displayText: '.menu'}, type: 1}, 11 | ] 12 | 13 | const buttonMessage = { 14 | text: hasil, 15 | footer: wm, 16 | buttons: buttons, 17 | headerType: 1 18 | } 19 | 20 | const sendMsg = await conn.sendMessage(m.chat, buttonMessage) 21 | }) 22 | } 23 | handler.help = ['ayatquran'] 24 | handler.tags = ['quotes'] 25 | handler.command = /^(ayatquran)$/i 26 | handler.owner = false 27 | handler.mods = false 28 | handler.premium = false 29 | handler.group = false 30 | handler.private = false 31 | 32 | handler.admin = false 33 | handler.botAdmin = false 34 | 35 | handler.fail = null 36 | handler.exp = 0 37 | handler.limit = false 38 | 39 | module.exports = handler -------------------------------------------------------------------------------- /plugins/random_pikachu.js: -------------------------------------------------------------------------------- 1 | //created by Scooppt 2 | let fetch = require('node-fetch') 3 | 4 | let handler = async (m, { conn, text }) => { 5 | try { 6 | let res = await fetch('https://some-random-api.ml/img/pikachu') 7 | let json = await res.json() 8 | if (json.status) throw json 9 | let caption = ` 10 | Pikacu 11 | `.trim() 12 | conn.sendFile(m.chat, json.link, '', caption, m) 13 | } catch (e) { 14 | console.log(e) 15 | throw '_*Error!*_' 16 | } 17 | } 18 | 19 | handler.help = ['pikachu'] 20 | handler.tags = ['image'] 21 | handler.command = /^pikachu$/i 22 | 23 | handler.fail = null 24 | 25 | module.exports = handler 26 | -------------------------------------------------------------------------------- /plugins/react.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, usedPrefix: _p, __dirname, args, text, usedPrefix}) => { 2 | let notreply = 'Balas Chatnya !' 3 | if (!m.quoted) throw notreply 4 | let notemo = `📍 Contoh Penggunaan :\n${usedPrefix}react 🗿` 5 | if (!text) throw notemo 6 | conn.relayMessage(m.chat, { reactionMessage: { 7 | key: { 8 | id: m.quoted.id, 9 | remoteJid: m.chat, 10 | fromMe: true 11 | }, 12 | text: `${text}`}}, { messageId: m.id }) 13 | } 14 | handler.help = ['react '] 15 | handler.tags = ['tools'] 16 | handler.command = /^(react)$/i 17 | 18 | module.exports = handler 19 | -------------------------------------------------------------------------------- /plugins/readmore.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | let [ l, r ] = text.split`|` 3 | if (!l) l = '' 4 | if (!r) r = '' 5 | conn.reply(m.chat, l + readMore + r, m) 6 | } 7 | handler.help = ['readmore'].map(v => v + ' |') 8 | handler.tags = ['tools'] 9 | handler.command = /^(spoiler|hidetext|readmore|selengkapnya)$/i 10 | handler.owner = false 11 | handler.mods = false 12 | handler.premium = false 13 | handler.group = false 14 | handler.private = false 15 | 16 | handler.admin = false 17 | handler.botAdmin = false 18 | 19 | handler.fail = null 20 | 21 | module.exports = handler 22 | 23 | const more = String.fromCharCode(8206) 24 | const readMore = more.repeat(4001) 25 | -------------------------------------------------------------------------------- /plugins/regist.js: -------------------------------------------------------------------------------- 1 | const { createHash } = require('crypto') 2 | let Reg = /\|?(.*)([.|] *?)([0-9]*)$/i 3 | let handler = async function (m, { text, usedPrefix }) { 4 | let user = global.db.data.users[m.sender] 5 | if (user.registered === true) throw `Anda sudah terdaftar\nMau daftar ulang? ${usedPrefix}unreg ` 6 | if (!Reg.test(text)) throw `Format salah\n*${usedPrefix}daftar nama.umur*` 7 | let [_, name, splitter, age] = text.match(Reg) 8 | if (!name) throw 'Nama tidak boleh kosong (Alphanumeric)' 9 | if (!age) throw 'Umur tidak boleh kosong (Angka)' 10 | age = parseInt(age) 11 | if (age > 120) throw 'Umur terlalu tua 😂' 12 | if (age < 5) throw 'Bayi bisa ngetik sesuai format bjir ._.' 13 | user.name = name.trim() 14 | user.age = age 15 | user.regTime = + new Date 16 | user.registered = true 17 | let sn = createHash('md5').update(m.sender).digest('hex') 18 | m.reply(` 19 | Daftar berhasil! 20 | 21 | ╭─「 Info 」 22 | │ Nama: ${name} 23 | │ Umur: ${age} tahun 24 | ╰──── 25 | Serial Number: 26 | ${sn} 27 | `.trim()) 28 | } 29 | handler.help = ['daftar', 'reg', 'register'].map(v => v + ' .') 30 | handler.tags = ['xp'] 31 | 32 | handler.command = /^(daftar|reg(ister)?)$/i 33 | 34 | module.exports = handler 35 | -------------------------------------------------------------------------------- /plugins/report.js: -------------------------------------------------------------------------------- 1 | let handler = async(m, { conn, text }) => { 2 | if (!text) throw 'Silahkan masukkan laporan' 3 | if (text.length > 300) throw 'Maaf Teks Terlalu Panjang, Maksimal 300 Teks!' 4 | const laporan = `*「 REPORT 」*\nNomor : wa.me/${m.sender.split`@`[0]}\nPesan : ${text}` 5 | for (let jid of global.owner.map(v => v.replace(/[^0-9]/g, '') + '@s.whatsapp.net').filter(v => v != conn.user.jid && v != '6281515860089@s.whatsapp.net')) 6 | m.reply(laporan, jid) 7 | m.reply(laporan, m.sender) // Mwehehehehe 8 | m.reply('✔️Masalah telah di laporkan ke Owner Bot, laporan palsu/main2 tidak akan ditanggapi!') 9 | } 10 | handler.help = ['bug', 'report'].map(v => v + ' ') 11 | handler.tags = ['info'] 12 | handler.command = /^(bug|report)$/i 13 | 14 | module.exports = handler 15 | -------------------------------------------------------------------------------- /plugins/resetprefixbot.js: -------------------------------------------------------------------------------- 1 | let handler = async(m, { conn }) => { 2 | 3 | global.prefix = new RegExp('^[' + (opts['prefix'] || '‎xzXZ/i!#$%+£¢€¥^°=¶∆×÷π√✓©®:;?&.\\-').replace(/[|\\{}()[\]^$+*?.\-\^]/g, '\\$&') + ']') 4 | await m.reply(`Prefix berhasil direset`) 5 | // conn.fakeReply(m.chat, 'Prefix berhasil direset', '0@s.whatsapp.net', 'Reset Prefix') 6 | } 7 | handler.help = ['resetprefix'] 8 | handler.tags = ['owner'] 9 | handler.command = /^(resetprefix)$/i 10 | handler.rowner = true 11 | 12 | module.exports = handler 13 | -------------------------------------------------------------------------------- /plugins/runtime.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | let _uptime = process.uptime() * 1000 3 | let uptime = clockString(_uptime) 4 | 5 | m.reply(` 6 | ┌─〔 R U N T I M E 〕 7 | ├ Bot Aktif Selama ${uptime} 8 | └──── 9 | `) 10 | } 11 | handler.help = ['runtime'] 12 | handler.tags = ['info'] 13 | handler.command = /^(uptime|runtime)$/i 14 | 15 | module.exports = handler 16 | 17 | function clockString(ms) { 18 | let h = isNaN(ms) ? '--' : Math.floor(ms / 3600000) 19 | let m = isNaN(ms) ? '--' : Math.floor(ms / 60000) % 60 20 | let s = isNaN(ms) ? '--' : Math.floor(ms / 1000) % 60 21 | return [h, m, s].map(v => v.toString().padStart(2, 0)).join(':') 22 | } 23 | -------------------------------------------------------------------------------- /plugins/sadboylogo.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, args }) => { 3 | response = args.join(' ').split('|') 4 | if (!args[0]) return m.reply('masukkan text1 dan text2\n\nContok: .sadboylogo elyas|ganzz') 5 | m.reply('*Wait Ngab*\nProses...') 6 | let res = `https://melcanz.com/sadboy?nama=${response[0]}&nama2=${response[1]}&apikey=dUtJxxvp` 7 | conn.sendFile(m.chat, res, 'sadboy.jpg', `Sudah Jadi`, m, false) 8 | } 9 | handler.help = ['sadboylogo'].map(v => v + ' ') 10 | handler.tags = ['maker'] 11 | handler.command = /^(sadboylogo)$/i 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/sagiri.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.sendFile(m.chat, 'https://api.lolhuman.xyz/api/random/sagiri?apikey=ed78c137a46873c5b8e5fe3b', '', '', m) 3 | } 4 | handler.help = ['sagiri'] 5 | handler.tags = ['anime'] 6 | handler.command = /^(sagiri)$/i 7 | 8 | module.exports = handler 9 | -------------------------------------------------------------------------------- /plugins/say.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text, usedPrefix, command }) => { 2 | if (!text) throw `Harap masukkan text!\n\ncontoh:\n${usedPrefix + command} Haruno` 3 | conn.reply(m.chat, text, null) 4 | } 5 | handler.help = ['say '] 6 | handler.tags = ['tools'] 7 | handler.command = /^(say)$/i 8 | 9 | module.exports = handler -------------------------------------------------------------------------------- /plugins/self.js: -------------------------------------------------------------------------------- 1 | let handler = async(m, { conn, command }) => { 2 | let isPublic = command === "public"; 3 | let self = global.opts["self"] 4 | 5 | if(self === !isPublic) return m.reply(`Dah ${!isPublic ? "Self" : "Public"} dari tadi ${m.sender.split("@")[0] === global.owner[1] ? "Mbak" : "Bang"} :v`) 6 | 7 | global.opts["self"] = !isPublic 8 | 9 | m.reply(`Berhasil ${!isPublic ? "Self" : "Public"} bot!`) 10 | } 11 | 12 | handler.help = ["self", "public"] 13 | handler.tags = ["owner"] 14 | 15 | handler.owner = true 16 | 17 | handler.command = /^(self|public)/i 18 | 19 | module.exports = handler 20 | -------------------------------------------------------------------------------- /plugins/setProfileGroup.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, usedPrefix, command }) => { 2 | let q = m.quoted ? m.quoted : m 3 | let mime = (q.msg || q).mimetype || '' 4 | if (/image/.test(mime)) { 5 | let img = await q.download() 6 | if (!img) throw 'Gambar tidak ditemukan' 7 | await conn.updateProfilePicture(m.chat, img) 8 | } else throw `kirim/balas gambar dengan caption *${usedPrefix + command}*` 9 | } 10 | handler.help = ['setpp'] 11 | handler.tags = ['group'] 12 | 13 | handler.command = /^setpp$/i 14 | 15 | handler.group = true 16 | handler.admin = true 17 | handler.botAdmin = true 18 | 19 | module.exports = handler -------------------------------------------------------------------------------- /plugins/setbotbio.js: -------------------------------------------------------------------------------- 1 | // NurNurz 2 | let handler = async (m, { conn, text }) => { 3 | if (!text) throw `Masukan Text Untuk Bio Baru Bot` 4 | try { 5 | await conn.setStatus(text) 6 | conn.reply(m.chat, 'Sukses Mengganti Bio Bot', m) 7 | } catch (e) { 8 | console.log(e) 9 | throw `Error` 10 | } 11 | } 12 | handler.help = ['setbotbio'] 13 | handler.tags = ['owner'] 14 | handler.command = /^(setbotbio)$/i 15 | handler.owner = true 16 | 17 | module.exports = handler 18 | -------------------------------------------------------------------------------- /plugins/setbotpp.js: -------------------------------------------------------------------------------- 1 | /* 2 | Silahkan Di Pakek 3 | Tapi Bantu Rapihin :v 4 | Buatan: Miaweers 5 | */ 6 | 7 | let handler = async (m, { conn, args }) => { 8 | let bot = conn.user.jid // Bot 9 | let q = m.quoted ? m.quoted : m 10 | let mime = (q.msg || q).mimetype || '' 11 | if (/image/.test(mime)) { 12 | let img = await q.download() 13 | if (!img) throw `Foto tidak ditemukan` 14 | conn.updateProfilePicture (bot, img) 15 | conn.reply(m.chat, 'Sukses Mengganti Foto Profile Bot!', m) 16 | } 17 | } 18 | handler.help = ['setbotpp'] 19 | handler.command = /^(setbotpp)$/i 20 | handler.owner = true 21 | 22 | module.exports = handler 23 | -------------------------------------------------------------------------------- /plugins/setprefixbot.js: -------------------------------------------------------------------------------- 1 | let handler = async(m, { conn, text }) => { 2 | if (!text) throw `No Prefix detected...` 3 | global.prefix = new RegExp('^[' + (text || global.opts['prefix'] || '‎xzXZ/i!#$%+£¢€¥^°=¶∆×÷π√✓©®:;?&.\\-').replace(/[|\\{}()[\]^$+*?.\-\^]/g, '\\$&') + ']') 4 | await m.reply(`Prefix telah ditukar ke *${text}*`) 5 | // conn.fakeReply(m.chat, 'Prefix telah ditukar ke *${text}*', '0@s.whatsapp.net', 'Set Prefix Bot') 6 | } 7 | handler.help = ['setprefix'].map(v => v + ' [prefix]') 8 | handler.tags = ['owner'] 9 | handler.command = /^(setprefix)$/i 10 | 11 | handler.rowner = true 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/settinggrup.js: -------------------------------------------------------------------------------- 1 | let { groupSettingUpdate } = require('@adiwajshing/baileys-md') 2 | let handler = async (m, { conn, args, usedPrefix, command }) => { 3 | let isClose = { 4 | 'open': 'not_announcement', 5 | 'buka': 'not_announcement', 6 | 'on': 'not_announcement', 7 | '1': 'not_announcement', 8 | 'close': 'announcement', 9 | 'tutup': 'announcement', 10 | 'off': 'announcement', 11 | '0': 'announcement', 12 | }[(args[0] || '')] 13 | if (isClose === undefined) { 14 | await conn.send2But(m.chat, ` 15 | contoh penggunaan: 16 | *${usedPrefix + command} tutup* 17 | *${usedPrefix + command} buka* 18 | `.trim(), 'setting grup', 'Buka', '.grup 1', 'Tutup', '.grup 0') 19 | throw false 20 | } 21 | await conn.groupSettingUpdate(m.chat, isClose) 22 | } 23 | handler.help = ['grup '] 24 | handler.tags = ['group'] 25 | handler.command = /^(gro?up)$/i 26 | handler.owner = false 27 | handler.mods = false 28 | handler.premium = false 29 | handler.group = true 30 | handler.private = false 31 | handler.admin = true 32 | handler.botAdmin = true 33 | handler.fail = null 34 | handler.exp = 0 35 | module.exports = handler 36 | -------------------------------------------------------------------------------- /plugins/setwelcome.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text, isROwner, isOwner }) => { 2 | if (text) { 3 | if (isROwner) global.conn.welcome = text 4 | else if (isOwner) conn.welcome = text 5 | global.db.data.chats[m.chat].sWelcome = text 6 | m.reply('Welcome berhasil diatur\n@user (Mention)\n@subject (Judul Grup)\n@desc (Deskripsi Grup)') 7 | } else throw 'Teksnya mana?' 8 | } 9 | handler.help = ['setwelcome '] 10 | handler.tags = ['owner', 'group'] 11 | 12 | handler.command = /^setwelcome$/i 13 | module.exports = handler 14 | 15 | -------------------------------------------------------------------------------- /plugins/sf.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { text, usedPrefix, command }) => { 2 | if (!text) throw `uhm.. teksnya mana?\n\npenggunaan:\n${usedPrefix + command} \n\ncontoh:\n${usedPrefix + command} plugins/melcanz.js` 3 | if (!m.quoted.text) throw `balas pesan nya!` 4 | let path = `${text}` 5 | await require('fs').writeFileSync(path, m.quoted.text) 6 | m.reply(`tersimpan di ${path}`) 7 | } 8 | handler.help = ['sf'].map(v => v + ' ') 9 | handler.tags = ['owner'] 10 | handler.command = /^sf$/i 11 | 12 | handler.rowner = true 13 | 14 | module.exports = handler 15 | -------------------------------------------------------------------------------- /plugins/shaun_the_sheep_photo.js: -------------------------------------------------------------------------------- 1 | const uploadImage = require('../lib/uploadImage') 2 | let handler = async (m) => { 3 | let q = m.quoted ? m.quoted : m 4 | let mime = (q.msg || q).mimetype || '' 5 | if (!mime) throw 'No media found' 6 | let media = await q.download() 7 | let url = await uploadImage(media) 8 | await conn.sendFile(m.chat, global.API('xteam', '/videomaker/shaunthesheep', { url }, 'APIKEY'), 'shaunthesheep.mp4', 'jangan sedih yaa...', m) 9 | } 10 | handler.help = ['shaunthesheep'] 11 | handler.tags = ['videomaker'] 12 | 13 | handler.command = /^shaunthesheep$/i 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/shorturl.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text }) => { 3 | if (!text) throw 'url/link nya mana?' 4 | let res = await fetch(`http://hadi-api.herokuapp.com/api/shorturl?url=${text}`) 5 | let json = await res.json() 6 | if (json.status) m.reply(json.result) 7 | else throw 'Link Invalid!\nPeriksa url anda' 8 | } 9 | handler.help = ['shorturl'].map(v => v + ' ') 10 | handler.tags = ['shortlink'] 11 | handler.command = /^shorturl$/i 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/siapakahaku_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*who/i.test(m.quoted.contentText)) return !0 7 | this.siapakahaku = this.siapakahaku ? this.siapakahaku : {} 8 | if (!(id in this.siapakahaku)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.siapakahaku[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.siapakahaku[id][1])) 11 | if (['.who', 'Bantuan', ''].includes(m.text)) return !0 12 | if (m.text.toLowerCase() == json.jawaban.toLowerCase().trim()) { 13 | global.db.data.users[m.sender].exp += this.siapakahaku[id][2] 14 | await this.sendBut(m.chat, `*Benar!* +${this.siapakahaku[id][2]} XP`, wm, 'Siapakah Aku', '.siapaaku') 15 | clearTimeout(this.siapakahaku[id][3]) 16 | delete this.siapakahaku[id] 17 | } else if (similarity(m.text.toLowerCase(), json.jawaban.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/siapakahaku_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.siapakahaku = conn.siapakahaku ? conn.siapakahaku : {} 3 | let id = m.chat 4 | if (!(id in conn.siapakahaku)) throw false 5 | let json = conn.siapakahaku[id][1] 6 | let clue = json.jawaban.replace(/[AIUEOaiueo]/g, '_') 7 | conn.reply(m.chat, '```' + clue + '```\nBalas soalnya, bukan pesan ini', conn.siapakahaku[id][0]) 8 | } 9 | handler.command = /^who$/i 10 | handler.limit = true 11 | module.exports = handler -------------------------------------------------------------------------------- /plugins/simsimi.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text }) => { 3 | let res = await fetch(global.API('https://api.simsimi.net', '/v2/', { text: encodeURIComponent(text), lc: "id" }, '')) 4 | let json = await res.json() 5 | if (json.success) m.reply(json.success) 6 | else throw json 7 | } 8 | handler.help = ['simi', 'simsimi', 'simih'].map(v => v + ' ') 9 | handler.tags = ['fun'] 10 | handler.command = /^((sim)?simi|simih)$/i 11 | 12 | module.exports = handler 13 | 14 | -------------------------------------------------------------------------------- /plugins/solat.js: -------------------------------------------------------------------------------- 1 | let xfar = require('xfarr-api') 2 | let fetch = require('node-fetch') 3 | let handler = async (m, { conn, command, text }) => { 4 | if (!text) throw 'Masukkan nama daerah\n\nContoh: .jadwalsholat jakarta' 5 | let res = await xfar.JadwalSholat(text) 6 | conn.sendBut(m.chat, ` *JADWAL SHOLAT* 7 | ${text} 8 | 9 | _*${res.tanggal}*_ 10 | Imsyak: ${res.imsyak} 11 | Subuh: _${res.subuh}_ 12 | Dzuhur: _${res.dzuhur}_ 13 | Ashar: ${res.ashar} 14 | Maghrib: ${res.maghrib} 15 | Isya: ${res.isya} 16 | `, wm, 'ok', 'huuu',m) 17 | 18 | } 19 | handler.help = ['jadwalsholat '] 20 | handler.tags = ['internet'] 21 | handler.command = /^jadwalsholat$/i 22 | 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/spamcall.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, text, usedPrefix }) => { 3 | if (!text) throw `Contoh Penggunaan\n${usedPrefix}spamcall 628xxxxxxxx` 4 | let nomor = text.replace(/[^0-9]/gi, '').slice(2) 5 | if (!nomor.startsWith('8')) throw `Contoh Penggunaan\n${usedPrefix}spamcall 628xxxxxxxx` 6 | m.reply('_*Tunggu permintaan anda sedang diproses.....*_') 7 | let anu = await fetch(`https://id.jagreward.com/member/verify-mobile/${nomor}`).then(a => a.json()) 8 | let spcall = `*Nomor bot* : _${anu.phone_prefix}_\n\n_Bot berhasil menlpon anda!_` 9 | conn.reply(m.chat, `${spcall}`.trim(), m) 10 | } 11 | handler.help = ['spamcall '] 12 | handler.tags = ['tools'] 13 | handler.command = /^(spamcall)$/i 14 | handler.limit = true 15 | handler.premium = true 16 | module.exports = handler 17 | -------------------------------------------------------------------------------- /plugins/spamgmail.js: -------------------------------------------------------------------------------- 1 | let axios = require("axios"); 2 | let handler = async(m, { conn, text }) => { 3 | let [email, pesan] = text.split `|` 4 | 5 | if (!email) return conn.reply(m.chat, 'Silahkan masukan nama email yang akan dispam', m) 6 | if (!pesan) return conn.reply(m.chat, 'Silahkan masukan pesan yang akan dispam', m) 7 | 8 | axios.get(`https://videfikri.com/api/spamemail/?email=${email}&subjek=SPAM%20GMAIL%20BOT&pesan=${pesan}`).then ((res) => { 9 | let hasil = `${res.data.result.log_lengkap}` 10 | 11 | conn.reply(m.chat, hasil, m) 12 | }) 13 | } 14 | handler.help = ['spamgmail'].map(v => v + ' <@email|pesan>') 15 | handler.tags = ['tools'] 16 | handler.command = /^(spamgmail)$/i 17 | handler.owner = false 18 | handler.mods = false 19 | handler.premium = false 20 | handler.group = false 21 | handler.private = false 22 | 23 | handler.admin = false 24 | handler.botAdmin = false 25 | 26 | handler.fail = null 27 | handler.limit = true 28 | 29 | module.exports = handler 30 | -------------------------------------------------------------------------------- /plugins/spotify.js: -------------------------------------------------------------------------------- 1 | 2 | let fetch = require('node-fetch') 3 | let handler = async(m, { conn, text }) => { 4 | if (!text) throw `Masukkan judul musik!` 5 | let res = await fetch(global.API('zeks', '/api/spotify', { q: text }, 'apikey')) 6 | if (!res.ok) throw await res.text() 7 | let json = await res.json() 8 | if(!json.data[0]) throw json 9 | let { title, artists, album, thumb, url, preview_mp3 } = json.data[0] 10 | let spotifyinfo = `✨️ *Title:* ${title} 11 | 🗣️ *Artists:* ${artists} 12 | 🎆️ *Album:* ${album} 13 | 🌐️ *URL*: ${url} 14 | 💚️ *Direct URL:* ${preview_mp3}\` 15 | 16 | await conn.sendFile(m.chat, thumb, '', spotifyinfo, m) 17 | await conn.sendFile(m.chat, preview_mp3, 'spotify.mp3', spotifyinfo, m) 18 | } 19 | handler.help = ['spotify '] 20 | handler.tags = ['internet'] 21 | handler.command = /^(spotify|music)$/i 22 | // Made By github.com/TOXIC-DEVIL 23 | module.exports = handler 24 | -------------------------------------------------------------------------------- /plugins/sshp.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, command, args }) => { 3 | if (args[0] === 'Nekopoi.care') { 4 | conn.reply(m.chat, '*Tobat woy*', m) 5 | reject 6 | } 7 | if (args[0] === 'Nhentai.net') { 8 | conn.reply(m.chat, '*Tobat woy*', m) 9 | reject 10 | } 11 | let full = /f$/i.test(command) 12 | if (!args[0]) return conn.reply(m.chat, 'Tidak ada url', m) 13 | let url = /https?:\/\//.test(args[0]) ? args[0] : 'https://' + args[0] 14 | let ss = await (await fetch('https://hadi-api.herokuapp.com/api/ssweb?url=' + encodeURIComponent(url) + '&device=phone&full=on')).buffer() 15 | conn.sendFile(m.chat, ss, 'screenshot.png', url, m) 16 | } 17 | handler.help = ['sshandphone', 'sshp'].map(v => v + ' ') 18 | handler.tags = ['internet'] 19 | handler.command = /^ss(handphone)?hp?$/i 20 | handler.owner = false 21 | handler.mods = false 22 | handler.premium = false 23 | handler.group = false 24 | handler.private = false 25 | 26 | handler.admin = false 27 | handler.botAdmin = false 28 | 29 | handler.fail = null 30 | 31 | module.exports = handler -------------------------------------------------------------------------------- /plugins/sspc.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, command, args }) => { 3 | if (args[0] === 'Nekopoi.care') { 4 | conn.reply(m.chat, '*Tobat woy*', m) 5 | reject 6 | } 7 | if (args[0] === 'Nhentai.net') { 8 | conn.reply(m.chat, '*Tobat woy*', m) 9 | reject 10 | } 11 | let full = /f$/i.test(command) 12 | if (!args[0]) return conn.reply(m.chat, 'Tidak ada url', m) 13 | let url = /https?:\/\//.test(args[0]) ? args[0] : 'https://' + args[0] 14 | let ss = await (await fetch('https://hadi-api.herokuapp.com/api/ssweb?url=' + encodeURIComponent(url) + '&device=desktop&full=on')).buffer() 15 | conn.sendFile(m.chat, ss, 'screenshot.png', url, m) 16 | } 17 | handler.help = ['sslaptop', 'sspc'].map(v => v + ' ') 18 | handler.tags = ['internet'] 19 | handler.command = /^ss(laptop)?pc?$/i 20 | handler.owner = false 21 | handler.mods = false 22 | handler.premium = false 23 | handler.group = false 24 | handler.private = false 25 | 26 | handler.admin = false 27 | handler.botAdmin = false 28 | 29 | handler.fail = null 30 | 31 | module.exports = handler -------------------------------------------------------------------------------- /plugins/stickerly.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | const { sticker5 } = require('../lib/sticker') 3 | 4 | let handler = async (m, { conn, text, usedPrefix, command }) => { 5 | if (!text) throw `Penggunaan:\n${usedPrefix + command} \n\nContoh:\n${usedPrefix + command} spongebob` 6 | let res = await fetch(API('zeks', '/api/searchsticker', { q: text }, 'apikey')) 7 | if (!res.ok) throw eror 8 | let json = await res.json() 9 | if (!json.status) throw json 10 | let hasil = json.sticker.map((v, i) => `${i + 1}. ${v}`).join('\n') 11 | m.reply(`*${json.title}* 12 | *Estimasi selesai:* ${json.sticker.length * 1.5} detik 13 | `.trim()) 14 | 15 | for (let i of json.sticker) { 16 | stiker = await sticker5(false, i, packname, author) 17 | await conn.sendFile(m.chat, stiker, '', '', m, 0, { asSticker: true }) 18 | } 19 | m.reply('_*Selesai*_') 20 | 21 | } 22 | handler.help = ['stikerly '] 23 | handler.tags = ['sticker'] 24 | handler.command = /^(stic?kerly)$/i 25 | 26 | handler.limit = 3 27 | 28 | module.exports = handler 29 | -------------------------------------------------------------------------------- /plugins/susunkata_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*suka/i.test(m.quoted.contentText)) return !0 7 | this.susunkata = this.susunkata ? this.susunkata : {} 8 | if (!(id in this.susunkata)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.susunkata[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.susunkata[id][1])) 11 | if (['.suka', 'Bantuan', ''].includes(m.text)) return !0 12 | if (m.text.toLowerCase() == json.jawaban.toLowerCase().trim()) { 13 | global.db.data.users[m.sender].exp += this.susunkata[id][2] 14 | await this.sendBut(m.chat, `*Benar!* +${this.susunkata[id][2]} XP`, wm, 'Susun Kata', '.susunkata') 15 | clearTimeout(this.susunkata[id][3]) 16 | delete this.susunkata[id] 17 | } else if (similarity(m.text.toLowerCase(), json.jawaban.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/susunkata_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.susunkata = conn.susunkata ? conn.susunkata : {} 3 | let id = m.chat 4 | if (!(id in conn.susunkata)) throw false 5 | let json = conn.susunkata[id][1] 6 | let ans = json.jawaban.trim() 7 | let clue = ans.replace(/[AIUEOaiueo]/g, '_') 8 | conn.reply(m.chat, '```' + clue + '```\nBalas soalnya, bukan pesan ini', conn.susunkata[id][0]) 9 | } 10 | handler.command = /^suka$/i 11 | handler.limit = true 12 | module.exports = handler 13 | -------------------------------------------------------------------------------- /plugins/tagall.js: -------------------------------------------------------------------------------- 1 | let handler = async(m, { conn, text, participants }) => { 2 | let teks = `⋙ *Pesan dari Admin Group* ⋘ 3 | \n *${text ? text : 'Nothing'}*\n\n` 4 | for (let mem of participants) { 5 | teks += ` @${mem.id.split('@')[0]}\n` 6 | } 7 | teks += `\nbukan elyas` 8 | conn.sendMessage(m.chat, { text: teks, mentions: participants.map(a => a.id) }, ) 9 | } 10 | handler.help = ['tagall '] 11 | handler.tags = ['group'] 12 | handler.command = /^(tagall)$/i 13 | 14 | handler.group = true 15 | handler.admin = true 16 | 17 | module.exports = handler 18 | -------------------------------------------------------------------------------- /plugins/tagme.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | 3 | let orang = (await conn.groupMetadata(m.chat)).participants.map(u => u.jid) 4 | let tag = `@${m.sender.replace(/@.+/, '')}` 5 | let mentionedJid = [m.sender] 6 | 7 | conn.reply(m.chat, tag, m, { contextInfo: { mentionedJid }}) 8 | } 9 | handler.help = ['tagme'] 10 | handler.tags = ['group'] 11 | handler.command = /^tagme$/i 12 | 13 | handler.group = true 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/tebakbendera_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*tebe/i.test(m.quoted.contentText)) return !0 7 | this.tebakbendera = this.tebakbendera ? this.tebakbendera : {} 8 | if (!(id in this.tebakbendera)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.tebakbendera[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.tebakbendera[id][1])) 11 | if (['.tebe', 'Bantuan', ''].includes(m.text)) return !0 12 | if (m.text.toLowerCase() == json.name.toLowerCase()) { 13 | global.db.data.users[m.sender].exp += this.tebakbendera[id][2] 14 | await this.sendBut(m.chat, `*Benar!* +${this.tebakbendera[id][2]} XP`, '', 'Tebak Bendera', '.tebakbendera', m) 15 | clearTimeout(this.tebakbendera[id][3]) 16 | delete this.tebakbendera[id] 17 | } else if (similarity(m.text.toLowerCase(), json.name.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/tebakbendera_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.tebakbendera = conn.tebakbendera ? conn.tebakbendera : {} 3 | let id = m.chat 4 | if (!(id in conn.tebakbendera)) throw false 5 | let json = conn.tebakbendera[id][1] 6 | m.reply('```' + json.name.replace(/[bcdfghjklmnpqrstvwxyz]/g, '_') + '```\nBalas soalnya Bukan Pesan ini_-') 7 | } 8 | handler.command = /^tebe$/i 9 | handler.limit = true 10 | module.exports = handler 11 | -------------------------------------------------------------------------------- /plugins/tebakgambar_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*hint/i.test(m.quoted.contentText)) return !0 7 | this.tebakgambar = this.tebakgambar ? this.tebakgambar : {} 8 | if (!(id in this.tebakgambar)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.tebakgambar[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.tebakgambar[id][1])) 11 | if (['.hint', 'Bantuan', ''].includes(m.text)) return !0 12 | if (m.text.toLowerCase() == json.jawaban.toLowerCase()) { 13 | global.db.data.users[m.sender].exp += this.tebakgambar[id][2] 14 | await this.sendBut(m.chat, `*Benar!✅* +${this.tebakgambar[id][2]} XP`, '', 'Tebak Gambar', '.tebakgambar', m) 15 | clearTimeout(this.tebakgambar[id][3]) 16 | delete this.tebakgambar[id] 17 | } else if (similarity(m.text.toLowerCase(), json.jawaban.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!❌*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/tebakgambar_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.tebakgambar = conn.tebakgambar ? conn.tebakgambar : {} 3 | let id = m.chat 4 | if (!(id in conn.tebakgambar)) throw false 5 | let json = conn.tebakgambar[id][1] 6 | m.reply('```' + json.jawaban.replace(/[bcdfghjklmnpqrstvwxyz]/gi, '_') + '```\nBALAS SOALNYA, BUKAN PESAN INI!') 7 | } 8 | handler.command = /^hint$/i 9 | 10 | handler.limit = true 11 | 12 | module.exports = handler 13 | -------------------------------------------------------------------------------- /plugins/tebakkabupaten_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*tebu/i.test(m.quoted.contentText)) return !0 7 | this.tebakkabupaten = this.tebakkabupaten ? this.tebakkabupaten : {} 8 | if (!(id in this.tebakkabupaten)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.tebakkabupaten[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.tebakkabupaten[id][1])) 11 | if (['.tebu', 'Bantuan', ''].includes(m.text)) return !0 12 | if (m.text.toLowerCase() == json.title.toLowerCase()) { 13 | global.db.data.users[m.sender].exp += this.tebakkabupaten[id][2] 14 | await this.sendBut(m.chat, `*Benar!* +${this.tebakkabupaten[id][2]} XP`, '', 'Tebak Kabupaten', '.tebakkabupaten', m) 15 | clearTimeout(this.tebakkabupaten[id][3]) 16 | delete this.tebakkabupaten[id] 17 | } else if (similarity(m.text.toLowerCase(), json.title.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/tebakkabupaten_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.tebakkabupaten = conn.tebakkabupaten ? conn.tebakkabupaten : {} 3 | let id = m.chat 4 | if (!(id in conn.tebakkabupaten)) throw false 5 | let json = conn.tebakkabupaten[id][1] 6 | conn.reply(m.chat, '```' + json.title.replace(/[AIUEOaiueo]/g, '_') + '```\nBalas gambarnya, bukan pesan ini', conn.tebakkabupaten[id][0]) 7 | } 8 | handler.command = /^tebu$/i 9 | 10 | module.exports = handler 11 | -------------------------------------------------------------------------------- /plugins/tebakkata_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*teka/i.test(m.quoted.contentText)) return !0 7 | this.tebakkata = this.tebakkata ? this.tebakkata : {} 8 | if (!(id in this.tebakkata)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.tebakkata[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.tebakkata[id][1])) 11 | if (['.teka', 'Bantuan', ''].includes(m.text)) return !0 12 | if (m.text.toLowerCase() == json.jawaban.toLowerCase().trim()) { 13 | global.db.data.users[m.sender].exp += this.tebakkata[id][2] 14 | await this.sendBut(m.chat, `*Benar!* +${this.tebakkata[id][2]} XP`, wm, 'Tebak Kata', '.tebakkata', m) 15 | clearTimeout(this.tebakkata[id][3]) 16 | delete this.tebakkata[id] 17 | } else if (similarity(m.text.toLowerCase(), json.jawaban.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/tebakkata_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.tebakkata = conn.tebakkata ? conn.tebakkata : {} 3 | let id = m.chat 4 | if (!(id in conn.tebakkata)) throw false 5 | let json = conn.tebakkata[id][1] 6 | let ans = json.jawaban.trim() 7 | let clue = ans.replace(/[AIUEOaiueo]/g, '_') 8 | conn.reply(m.chat, '```' + clue + '```\nBalas soalnya, bukan pesan ini', conn.tebakkata[id][0]) 9 | } 10 | handler.command = /^teka$/i 11 | handler.limit = true 12 | module.exports = handler -------------------------------------------------------------------------------- /plugins/tebakkimia_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | 4 | let handler = m => m 5 | 6 | handler.before = async function (m) { 7 | let id = m.chat 8 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*teki/i.test(m.quoted.contentText)) return !0 9 | this.tebakkimia = this.tebakkimia ? this.tebakkimia : {} 10 | if (!(id in this.tebakkimia)) return m.reply('Tebak Kimia telah berakhir') 11 | if (m.quoted.id == this.tebakkimia[id][0].id) { 12 | let json = JSON.parse(JSON.stringify(this.tebakkimia[id][1])) 13 | if (['.teka', 'Bantuan', ''].includes(m.text)) return !0 14 | if (m.text.toLowerCase() == json.unsur.toLowerCase().trim()) { 15 | db.data.users[m.sender].exp += this.tebakkimia[id][2] 16 | await this.sendBut(m.chat, benar + ` +${this.tebakkimia[id][2]} XP`, wm, 'Tebak Kimia', '.tebakkimia', m) 17 | clearTimeout(this.tebakkimia[id][3]) 18 | delete this.tebakkimia[id] 19 | } else if (similarity(m.text.toLowerCase(), json.unsur.toLowerCase().trim()) >= threshold) m.reply(dikit) 20 | else m.reply(salah) 21 | } 22 | return !0 23 | } 24 | 25 | module.exports = handler 26 | -------------------------------------------------------------------------------- /plugins/tebakkimia_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.tebakkimia = conn.tebakkimia ? conn.tebakkimia : {} 3 | let id = m.chat 4 | if (!(id in conn.tebakkimia)) throw false 5 | let json = conn.tebakkimia[id][1] 6 | conn.reply(m.chat, '```' + json.bantuan + '```\nBalas soalnya, bukan pesan ini!', conn.tebakkimia[id][0]) 7 | } 8 | handler.command = /^teki$/i 9 | 10 | handler.limit = 1 11 | 12 | module.exports = handler -------------------------------------------------------------------------------- /plugins/tebaklagu_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/TEBAK JUDUL LAGU/i.test(m.quoted.text)) return !0 7 | this.tebaklagu = this.tebaklagu ? this.tebaklagu : {} 8 | if (!(id in this.tebaklagu)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.tebaklagu[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.tebaklagu[id][1])) 11 | // m.reply(JSON.stringify(json, null, '\t')) 12 | if (m.text.toLowerCase() == json.judul.toLowerCase().trim()) { 13 | global.db.data.users[m.sender].exp += this.tebaklagu[id][2] 14 | conn.sendBut(m.chat, `*Benar!*\n+${this.tebaklagu[id][2]} XP`, wm, 'Tebak Lagu', '.tebaklagu', m) 15 | clearTimeout(this.tebaklagu[id][3]) 16 | delete this.tebaklagu[id] 17 | } else if (similarity(m.text.toLowerCase(), json.judul.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/tebaklagu_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.tebaklagu = conn.tebaklagu ? conn.tebaklagu : {} 3 | let id = m.chat 4 | if (!(id in conn.tebaklagu)) throw false 5 | let json = conn.tebaklagu[id][1] 6 | let nya = json.judul 7 | let nyanya = nya.replace(/[bcdfghjklmnpqrstvwxyz]/g, '_') 8 | m.reply('```' + nyanya + '```') 9 | } 10 | handler.command = /^cek$/i 11 | handler.limit = true 12 | module.exports = handler -------------------------------------------------------------------------------- /plugins/tebaklirik_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | let handler = m => m 4 | handler.before = async function (m) { 5 | let id = m.chat 6 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*teli/i.test(m.quoted.text)) return !0 7 | this.tebaklirik = this.tebaklirik ? this.tebaklirik : {} 8 | if (!(id in this.tebaklirik)) return m.reply('Soal itu telah berakhir') 9 | if (m.quoted.id == this.tebaklirik[id][0].id) { 10 | let json = JSON.parse(JSON.stringify(this.tebaklirik[id][1])) 11 | // m.reply(JSON.stringify(json, null, '\t')) 12 | if (m.text.toLowerCase() == json.jawaban.toLowerCase().trim()) { 13 | global.db.data.users[m.sender].exp += this.tebaklirik[id][2] 14 | conn.sendBut(m.chat, `*Benar!*\n+${this.tebaklirik[id][2]} XP`, wm, 'Tebak Lirik', '.tebaklirik', m) 15 | clearTimeout(this.tebaklirik[id][3]) 16 | delete this.tebaklirik[id] 17 | } else if (similarity(m.text.toLowerCase(), json.jawaban.toLowerCase().trim()) >= threshold) m.reply(`*Dikit Lagi!*`) 18 | else m.reply(`*Salah!*`) 19 | } 20 | return !0 21 | } 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/tebaklirik_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.tebakirik = conn.tebakirik ? conn.tebakirik : {} 3 | let id = m.chat 4 | if (!(id in conn.tebakirik)) throw false 5 | let json = conn.tebakirik[id][1] 6 | m.reply('```' + json.jawaban.replace(/[AUIEOaiueo]/g, '_') + '```') 7 | } 8 | handler.command = /^teli$/i 9 | handler.limit = true 10 | module.exports = handler -------------------------------------------------------------------------------- /plugins/tebakumur.js: -------------------------------------------------------------------------------- 1 | /** 2 | * cuma mau bilang terimakasih ama https://github.com/uhdahlah 3 | **/ 4 | 5 | 6 | let axios = require("axios"); 7 | let handler = async(m, { conn, text }) => { 8 | 9 | if (!text) return conn.reply(m.chat, 'Masukan Teksnya', m) 10 | 11 | await m.reply('Searching...') 12 | axios.get(`http://lolhuman.herokuapp.com/api/tebakumur?apikey=31caf10e4a64e86c1a92bcba&name=${text}`).then ((res) => { 13 | let hasil = `Namamu : ${text}\nUmurmu : ${res.data.result.age}` 14 | 15 | conn.reply(m.chat, hasil, m) 16 | }) 17 | } 18 | handler.help = ['tebakumur'].map(v => v + ' ') 19 | handler.tags = ['internet', 'fun'] 20 | handler.command = /^(tebakumur)$/i 21 | handler.owner = false 22 | handler.mods = false 23 | handler.premium = false 24 | handler.group = false 25 | handler.private = false 26 | 27 | handler.admin = false 28 | handler.botAdmin = false 29 | 30 | handler.fail = null 31 | handler.exp = 0 32 | handler.limit = true 33 | // https://github.com/uhdahlah 34 | module.exports = handler 35 | -------------------------------------------------------------------------------- /plugins/tekateki.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let timeout = 120000 3 | let poin = 500 4 | 5 | let handler = async (m, { conn, usedPrefix }) => { 6 | conn.tekateki = conn.tekateki ? conn.tekateki : {} 7 | let id = m.chat 8 | if (id in conn.tekateki) return conn.reply(m.chat, 'Belum dijawab!', conn.tekateki[id][0]) 9 | let res = await fetch(API('amel', '/tekateki', {}, 'apikey')) 10 | if (!res.ok) throw eror 11 | let json = await res.json() 12 | if (!json.status) throw json 13 | let caption = ` 14 | ${json.soal} 15 | 16 | Timeout *${(timeout / 1000).toFixed(2)} detik* 17 | Ketik ${usedPrefix}tete untuk bantuan 18 | Bonus: ${poin} XP 19 | `.trim() 20 | conn.tekateki[id] = [ 21 | await conn.sendBut(m.chat, caption, wm, 'Bantuan', `.tete`, m), 22 | json, poin, 23 | setTimeout(() => { 24 | if (conn.tekateki[id]) conn.sendBut(m.chat, `Waktu habis!\nJawabannya adalah *${json.jawaban}*`, wm, 'Teka Teki', `.tekateki`, conn.tekateki[id][0]) 25 | delete conn.tekateki[id] 26 | }, timeout) 27 | ] 28 | } 29 | handler.help = ['tekateki'] 30 | handler.tags = ['game'] 31 | handler.command = /^tekateki/i 32 | 33 | handler.game = true 34 | 35 | module.exports = handler -------------------------------------------------------------------------------- /plugins/tekateki_ans.js: -------------------------------------------------------------------------------- 1 | const similarity = require('similarity') 2 | const threshold = 0.72 3 | 4 | let handler = m => m 5 | 6 | handler.before = async function (m) { 7 | let id = m.chat 8 | if (!m.quoted || !m.quoted.fromMe || !m.quoted.isBaileys || !/Ketik.*tete/i.test(m.quoted.contentText)) return !0 9 | this.tekateki = this.tekateki ? this.tekateki : {} 10 | if (!(id in this.tekateki)) return m.reply('Teka Teki telah berakhir') 11 | if (m.quoted.id == this.tekateki[id][0].id) { 12 | let json = JSON.parse(JSON.stringify(this.tekateki[id][1])) 13 | if (['.tete', 'Bantuan', ''].includes(m.text)) return !0 14 | if (m.text.toLowerCase() == json.jawaban.toLowerCase().trim()) { 15 | db.data.users[m.sender].exp += this.tekateki[id][2] 16 | await this.sendBut(m.chat, benar + ` +${this.tekateki[id][2]} XP`, wm, 'Teka Teki', '.tekateki', m) 17 | clearTimeout(this.tekateki[id][3]) 18 | delete this.tekateki[id] 19 | } else if (similarity(m.text.toLowerCase(), json.jawaban.toLowerCase().trim()) >= threshold) m.reply(dikit) 20 | else m.reply(salah) 21 | } 22 | return !0 23 | } 24 | 25 | module.exports = handler -------------------------------------------------------------------------------- /plugins/tekateki_hint.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn }) => { 2 | conn.tekateki = conn.tekateki ? conn.tekateki : {} 3 | let id = m.chat 4 | if (!(id in conn.tekateki)) throw 0 5 | let json = conn.tekateki[id][1] 6 | conn.reply(m.chat, '```' + json.bantuan + '```\nBalas soalnya, bukan pesan ini!', conn.tekateki[id][0]) 7 | } 8 | handler.command = /^tete$/i 9 | 10 | handler.limit = 1 11 | 12 | module.exports = handler -------------------------------------------------------------------------------- /plugins/tiktokstalk.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | 3 | let handler = async(m, { conn, text }) => { 4 | 5 | if (!text) return conn.reply(m.chat, 'Harap Masukan Username', m) 6 | 7 | await m.reply('Searching...') 8 | let res = await fetch(`https://x-restapi.herokuapp.com/api/tiktok-stalk?username=${text}&apikey=BETA`) 9 | let json = await res.json() 10 | if (res.status !== 200) throw await res.text() 11 | if (!json.status) throw json 12 | let thumb = await (await fetch(json.avatarLarger)).buffer() 13 | let hasil = `*── 「 TIK-TOK STALK 」 ──* 14 | 15 | ▢ *Nama*: ${json.username} 16 | ▢ *Follower*: ${json.followerCount} 17 | ▢ *Following*: ${json.followingCount} 18 | ▢ *Private*: ${json.isprivate} 19 | ▢ *Id*: ${json.id} 20 | ` 21 | 22 | conn.sendFile(m.chat, thumb, 'tiktokstalk.jpg', hasil, m) 23 | } 24 | handler.help = ['tiktokstalk'].map(v => v + ' ') 25 | handler.tags = ['stalk'] 26 | handler.command = /^(tiktokstalk)$/i 27 | 28 | module.exports = handler 29 | -------------------------------------------------------------------------------- /plugins/tinyurl.js: -------------------------------------------------------------------------------- 1 | let axios = require('axios') 2 | 3 | let fetch = require('node-fetch') 4 | 5 | let handler = async (m, { text, conn:fur, args }) => { 6 | if (!text) throw 'url/link nya mana?\n\n*CONTOH:*\n.tinyurl https://instagram.com' 7 | 8 | fur.reply(m.chat, await shortlink(text), m) 9 | 10 | } 11 | 12 | handler.help = ['tinyurl'].map(v => v + ' ') 13 | handler.tags = ['shortlink'] 14 | handler.command = /^tinyurl$/i 15 | 16 | module.exports = handler 17 | 18 | async function shortlink(url){ 19 | isurl = /https?:\/\//.test(url) 20 | return isurl ? (await require('axios').get('https://tinyurl.com/api-create.php?url='+encodeURIComponent(url))).data : ''} 21 | -------------------------------------------------------------------------------- /plugins/titlein.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, args, text}) => { 2 | let who = m.mentionedJid[0] || conn.parseMention(text[0]) || (text[0].replace(/[@.+-]/g, '').replace(' ', '') + '@s.whatsapp.net') || '' 3 | if (m.isGroup) who = m.mentionedJid[0] 4 | let [orang, nama] = text.split`| ` 5 | if (!who) throw 'Tag salah satu lah' 6 | if (!orang) throw 'Tag salah satu lah' 7 | if (!nama) throw 'namanya apa?\n kalo mau kasi nama pake\n#titlein @mention|nama' 8 | if (!(who in global.db.data.users)) throw 'User tidak terdaftar dalam DATABASE!!' 9 | let user = global.db.data.users[who] 10 | user.title = nama 11 | m.reply(` 12 | ${conn.getName(who)} sekarang mendapatkan title\n${nama} 13 | `) 14 | } 15 | handler.help = ['titlein [nama]'] 16 | handler.tags = ['owner'] 17 | handler.mods = true 18 | handler.command = /^titlein$/i 19 | 20 | module.exports = handler 21 | -------------------------------------------------------------------------------- /plugins/toimg2.js: -------------------------------------------------------------------------------- 1 | 2 | let { webp2png } = require('../lib/webp2mp4') 3 | let handler = async (m, { conn, usedPrefix, command }) => { 4 | if (!m.quoted) throw `balas stiker dengan caption *${usedPrefix + command}*` 5 | let mime = m.quoted.mimetype || '' 6 | if (!/webp/.test(mime)) throw `balas stiker dengan caption *${usedPrefix + command}*` 7 | let media = await m.quoted.download() 8 | let out = Buffer.alloc(0) 9 | if (/webp/.test(mime)) { 10 | out = await webp2png(media) 11 | } 12 | await conn.sendFile(m.chat, out, 'out.png', '*DONE*', m, false, { 13 | thumbnail: Buffer.alloc(0) 14 | }) 15 | } 16 | handler.help = ['toimg (reply)'] 17 | handler.tags = ['sticker'] 18 | handler.command = ['toimg'] 19 | module.exports = handler 20 | -------------------------------------------------------------------------------- /plugins/tomp3.js: -------------------------------------------------------------------------------- 1 | const { toPTT } = require('../lib/converter') 2 | const { MessageType } = require('@adiwajshing/baileys-md') 3 | 4 | let handler = async (m, { conn, usedPrefix, command }) => { 5 | let q = m.quoted ? m.quoted : m 6 | let mime = (m.quoted ? m.quoted : m.msg).mimetype || '' 7 | if (!/video|audio/.test(mime)) throw `Balas video atau voice note yang ingin diubah ke mp3 dengan caption *${usedPrefix + command}*` 8 | let media = await q.download() 9 | let audio = await toPTT(media, 'mp4') 10 | 11 | //conn.sendFile(m.chat, audio, 0,0,m,true, {ptt:true }) 12 | conn.sendMessage(m.chat, {audio:audio}, { 13 | quoted: m, 14 | ptt: true 15 | }) 16 | } 17 | handler.help = ['tomp3 (reply)'] 18 | handler.tags = ['tools'] 19 | 20 | handler.command = /^to(mp3|a(udio)?)$/i 21 | 22 | module.exports = handler 23 | -------------------------------------------------------------------------------- /plugins/topdf.js: -------------------------------------------------------------------------------- 1 | const uploadFile = require('../lib/uploadFile') 2 | const uploadImage = require('../lib/uploadImage') 3 | 4 | let handler = async (m) => { 5 | let q = m.quoted ? m.quoted : m 6 | let mime = (q.msg || q).mimetype || '' 7 | if (!mime) throw 'Tidak ada media yang ditemukan' 8 | let media = await q.download() 9 | let isTele = /image\/(png|jpe?g|gif)|video\/mp4/.test(mime) 10 | let link = await (isTele ? uploadImage : uploadFile)(media) 11 | conn.sendFile(m.chat, `https://api.xteam.xyz/imagetopdf?url=${link}&APIKEY=cristian9407`, 'NihKak', null, m) 12 | } 13 | handler.help = ['topdf '] 14 | handler.tags = ['tools'] 15 | handler.command = /^(topdf)$/i 16 | 17 | handler.limit = true 18 | 19 | module.exports = handler 20 | -------------------------------------------------------------------------------- /plugins/totalfitur.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, args, command }) => { 2 | let totalf = Object.values(global.plugins).filter( 3 | (v) => v.help && v.tags 4 | ).length; 5 | conn.reply(m.chat, `Total Fitur saat ini: ${totalf}`,m) 6 | } 7 | 8 | handler.help = ['totalfitur'] 9 | handler.tags = ['info'] 10 | handler.command = ['totalfitur'] 11 | module.exports = handler 12 | -------------------------------------------------------------------------------- /plugins/tourl.js: -------------------------------------------------------------------------------- 1 | const uploadFile = require('../lib/uploadFile') 2 | const uploadImage = require('../lib/uploadImage') 3 | 4 | let handler = async (m) => { 5 | let q = m.quoted ? m.quoted : m 6 | let mime = (q.msg || q).mimetype || '' 7 | if (!mime) throw 'Tidak ada media yang ditemukan' 8 | let media = await q.download() 9 | let isTele = /image\/(png|jpe?g|gif)|video\/mp4/.test(mime) 10 | let link = await (isTele ? uploadImage : uploadFile)(media) 11 | m.reply(`${link} 12 | ${media.length} Byte(s) 13 | ${isTele ? '(Tidak Ada Tanggal Kedaluwarsa)' : '(Tidak diketahui)'}`) 14 | } 15 | handler.help = ['tourl '] 16 | handler.tags = ['sticker'] 17 | handler.command = /^(upload|tourl)$/i 18 | 19 | module.exports = handler 20 | -------------------------------------------------------------------------------- /plugins/tovideo.js: -------------------------------------------------------------------------------- 1 | let { webp2mp4 } = require('../lib/webp2mp4') 2 | let { ffmpeg } = require('../lib/converter') 3 | let handler = async (m, { conn }) => { 4 | if (!m.quoted) throw 'Reply sticker or audio!' 5 | let mime = m.quoted.mimetype || '' 6 | if (!/webp|audio/.test(mime)) throw 'Reply sticker or audio!' 7 | let media = await m.quoted.download() 8 | let out = Buffer.alloc(0) 9 | if (/webp/.test(mime)) { 10 | out = await webp2mp4(media) 11 | } else if (/audio/.test(mime)) { 12 | out = await ffmpeg(media, [ 13 | '-filter_complex', 'color', 14 | '-pix_fmt', 'yuv420p', 15 | '-crf', '51', 16 | '-c:a', 'copy', 17 | '-shortest' 18 | ], 'mp3', 'mp4') 19 | } 20 | await conn.sendFile(m.chat, out, 'out.mp4', null, m) 21 | } 22 | handler.help = ['tovideo (reply)'] 23 | handler.tags = ['sticker'] 24 | 25 | handler.command = ['tovideo'] 26 | 27 | module.exports = handler 28 | -------------------------------------------------------------------------------- /plugins/translate.js: -------------------------------------------------------------------------------- 1 | const translate = require('translate-google-api') 2 | const defaultLang = 'en' 3 | const tld = 'cn' 4 | 5 | let handler = async (m, { args, usedPrefix, command }) => { 6 | let err = ` 7 | Contoh: 8 | ${usedPrefix + command} [text] 9 | ${usedPrefix + command} id your messages 10 | Daftar bahasa yang didukung: https://cloud.google.com/translate/docs/languages 11 | `.trim() 12 | 13 | let lang = args[0] 14 | let text = args.slice(1).join(' ') 15 | if ((args[0] || '').length !== 2) { 16 | lang = defaultLang 17 | text = args.join(' ') 18 | } 19 | if (!text && m.quoted && m.quoted.text) text = m.quoted.text 20 | 21 | let result 22 | try { 23 | result = await translate(`${text}`, { 24 | tld, 25 | to: lang, 26 | }) 27 | } catch (e) { 28 | result = await translate(`${text}`, { 29 | tld, 30 | to: defaultLang, 31 | }) 32 | throw err 33 | } finally { 34 | m.reply(result[0]) 35 | } 36 | 37 | } 38 | handler.help = ['translate'].map(v => v + ' ') 39 | handler.tags = ['tools'] 40 | handler.command = /^(tr(anslate)?)$/i 41 | handler.limit = false 42 | handler.fail = null 43 | handler.exp = 0 44 | module.exports = handler 45 | -------------------------------------------------------------------------------- /plugins/trigger.js: -------------------------------------------------------------------------------- 1 | //kok cewe gw jadi cuek yahh? daritadi pagi gw chat ga dibales cuman di read doang 2 | 3 | const { sticker } = require('../lib/sticker') 4 | const { MessageType } = require('@adiwajshing/baileys-md') 5 | let handler = async (m, { conn }) => { 6 | let who = m.mentionedJid && m.mentionedJid[0] ? m.mentionedJid[0] : m.fromMe ? conn.user.jid : m.sender 7 | let marah = global.API('https://some-random-api.ml', '/canvas/triggered', { 8 | avatar: await conn.getProfilePicture(who).catch(_ => 'https://telegra.ph/file/24fa902ead26340f3df2c.png'), 9 | }) 10 | let stiker = await sticker(null, marah, global.packname, global.author) 11 | if (stiker) return conn.sendFile(m.chat, stiker, m, false, { asSticker: true }); 12 | else throw stiker.toString() 13 | } 14 | 15 | 16 | handler.help = ['trigger'] 17 | handler.tags = ['maker'] 18 | 19 | handler.command = /^(trigger)$/i 20 | 21 | module.exports = handler 22 | -------------------------------------------------------------------------------- /plugins/unbanchat.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { isOwner, text, isAdmin }) => { 2 | let who 3 | if (m.isGroup) { 4 | if (!(isAdmin || isOwner)) { 5 | global.dfail('admin', m, conn) 6 | throw false 7 | } 8 | if (isOwner) who = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text ? text.replace(/[^0-9]/g, '') + '@s.whatsapp.net' : m.chat 9 | who = m.mentionedJid[0] ? m.mentionedJid[0] : text ? text.replace(/[^0-9]/g, '') + '@s.whatsapp.net' : m.chat 10 | } else { 11 | if (!isOwner) { 12 | global.dfail('owner', m, conn) 13 | throw false 14 | } 15 | who = text ? text.replace(/[^0-9]/g, '') + '@s.whatsapp.net' : m.chat 16 | } 17 | try { 18 | if (who.endsWith('g.us')) global.db.data.chats[who].isBanned = false 19 | else global.db.data.users[who].banned = false 20 | m.reply(`Done Unban! Bot aktif dichat ${await conn.getName(who) == undefined ? 'ini' : await conn.getName(who)}.`) 21 | } catch (e) { 22 | throw `nomor tidak ada didatabase!` 23 | } 24 | } 25 | handler.help = ['unban'] 26 | handler.tags = ['owner', 'group'] 27 | handler.command = /^unban(chat)?$/i 28 | 29 | module.exports = handler 30 | -------------------------------------------------------------------------------- /plugins/underwater.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, args }) => { 3 | response = args.join(' ').split('|') 4 | if (!args[0]) throw 'Masukkan Teks' 5 | m.reply('*Wait ngab*\nProses...') 6 | let res = `http://hadi-api.herokuapp.com/api/textpro/3d-underwater-text?teks=${response[0]}&teks2=Elyas` 7 | conn.sendFile(m.chat, res, 'underwatee.jpg', `Sudah jadi`, m, false) 8 | } 9 | handler.help = ['underwater'].map(v => v + ' ') 10 | handler.tags = ['maker'] 11 | handler.command = /^(underwater)$/i 12 | 13 | module.exports = handler 14 | -------------------------------------------------------------------------------- /plugins/update.js: -------------------------------------------------------------------------------- 1 | let { execSync } = require('child_process') 2 | let handler = async (m, { conn, text, isROwner }) => { 3 | if (global.conn.user.jid == conn.user.jid) { 4 | let stdout = execSync('git remote set-url origin https://github.com/Paquito1923/elyasmd.git && git pull' + (isROwner && text ? ' ' + text : '')) 5 | if (isROwner) require('fs').readdirSync('plugins').map(v => global.reload('', v)) 6 | m.reply(stdout.toString()) 7 | } 8 | } 9 | handler.help = ['update'] 10 | handler.tags = ['owner'] 11 | handler.command = /^update$/i 12 | handler.owner = true 13 | handler.mods = false 14 | handler.premium = false 15 | handler.group = false 16 | handler.private = false 17 | 18 | handler.admin = false 19 | handler.botAdmin = false 20 | 21 | handler.fail = null 22 | handler.exp = 0 23 | 24 | module.exports = handler 25 | -------------------------------------------------------------------------------- /plugins/vote-cekvote.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, usedPrefix }) => { 2 | let id = m.chat 3 | conn.vote = conn.vote ? conn.vote : {} 4 | if (!(id in conn.vote)) return conn.sendBut(m.chat, `Tidak ada voting digrup ini!`, '© stikerin', 'Mulai', `${usedPrefix}+vote`, m) 5 | let [reason, upvote, devote] = conn.vote[id] 6 | let caption = ` 7 | 「 *Vote* 」 8 | *Alasan:* ${reason} 9 | *Upvote* 10 | _Total: ${upvote.length}_ 11 | ${upvote.map(u => '@' + u.split`@`[0]).join('\n')} 12 | *Devote* 13 | _Total: ${devote.length}_ 14 | ${devote.map(u => '@' + u.split`@`[0]).join('\n')} 15 | wm 16 | `.trim() 17 | await conn.send3But(m.chat, caption, wm, 'Upvote', `${usedPrefix}upvote`, 'Devote', `${usedPrefix}devote`, 'Hapus', `${usedPrefix}-vote`, m) 18 | } 19 | handler.help = ['cekvote'] 20 | handler.tags = ['vote'] 21 | handler.command = /^cekvote$/i 22 | 23 | module.exports = handler 24 | -------------------------------------------------------------------------------- /plugins/vote-hapus.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, usedPrefix, isAdmin, isOwner }) => { 2 | if (m.isGroup) { 3 | if (!(isAdmin || isOwner)) return dfail('admin', m, conn) 4 | } 5 | let id = m.chat 6 | conn.vote = conn.vote ? conn.vote : {} 7 | if (!(id in conn.vote)) return conn.sendBut(m.chat, `Tidak ada voting digrup ini!`, wm, 'Mulai', `${usedPrefix}+vote`, m) 8 | delete conn.vote[id] 9 | m.reply(`Berhasil!`) 10 | } 11 | handler.help = ['hapusvote'] 12 | handler.tags = ['vote'] 13 | handler.command = /^(delete|hapus|-)vote$/i 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/vote-mulai.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text, usedPrefix, isAdmin, isOwner }) => { 2 | if (m.isGroup) { 3 | if (!(isAdmin || isOwner)) return dfail('admin', m, conn) 4 | } 5 | conn.vote = conn.vote ? conn.vote : {} 6 | let id = m.chat 7 | if (id in conn.vote) return conn.sendBut(m.chat, 'Masih ada vote di chat ini!', wm, 'Hapus', `${usedPrefix}-vote`, m) 8 | conn.send2But(m.chat, `Vote dimulai! 9 | *${usedPrefix}upvote* - untuk setuju 10 | *${usedPrefix}devote* - untuk tidak setuju 11 | *${usedPrefix}cekvote* - untuk mengecek vote 12 | *${usedPrefix}hapusvote* - untuk menghapus vote`, wm, 'Upvote', `${usedPrefix}upvote`, 'Devote', `${usedPrefix}devote`, m) 13 | conn.vote[id] = [ 14 | text, 15 | [], 16 | [] 17 | ] 18 | } 19 | handler.help = ['mulaivote [alasan]'] 20 | handler.tags = ['vote'] 21 | handler.command = /^(start|mulai|\+)vote$/i 22 | 23 | module.exports = handler 24 | -------------------------------------------------------------------------------- /plugins/vote-vote.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, usedPrefix, command }) => { 2 | let id = m.chat 3 | conn.vote = conn.vote ? conn.vote : {} 4 | if (!(id in conn.vote)) return conn.sendBut(m.chat, `Tidak ada voting digrup ini!`, wm, 'Mulai', `${usedPrefix}+vote`, m) 5 | let isVote = conn.vote[id][1].concat(conn.vote[id][2]) 6 | const wasVote = isVote.includes(m.sender) 7 | if (wasVote) throw 'Kamu sudah vote!' 8 | if (/up/i.test(command)) { 9 | conn.vote[id][1].push(m.sender) 10 | } else if (/de/i.test(command)) { 11 | conn.vote[id][2].push(m.sender) 12 | } 13 | let [reason, upvote, devote] = conn.vote[id] 14 | let caption = ` 15 | 「 *Vote* 」 16 | *Alasan:* ${reason} 17 | *Upvote* 18 | _Total: ${upvote.length}_ 19 | ${upvote.map(u => '@' + u.split`@`[0]).join('\n')} 20 | *Devote* 21 | _Total: ${devote.length}_ 22 | ${devote.map(u => '@' + u.split`@`[0]).join('\n')} 23 | `.trim() 24 | conn.send2But(m.chat, caption, wm, 'Upvote', `${usedPrefix}upvote`, 'Devote', `${usedPrefix}devote`, m) 25 | } 26 | handler.help = ['upvote', 'devote'] 27 | handler.tags = ['vote'] 28 | handler.command = /^(up|de)vote$/i 29 | 30 | module.exports = handler 31 | -------------------------------------------------------------------------------- /plugins/waifu.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn }) => { 3 | let res = await fetch('https://api.waifu.pics/sfw/waifu') 4 | if (!res.ok) throw 'Error Website sedang down' 5 | let json = await res.json() 6 | if (!json.url) throw 'Error!' 7 | conn.sendFile(m.chat, json.url, '', 'istri gweh', m, 0, { thumbnail: Buffer.alloc(0) }) 8 | } 9 | handler.help = ['waifu'] 10 | handler.tags = ['anime'] 11 | handler.command = /^(waifu)$/i 12 | 13 | handler.limit = true 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/waktu.js: -------------------------------------------------------------------------------- 1 | let axios = require("axios"); 2 | let handler = async(m, { conn, text }) => { 3 | 4 | if (!text) return conn.reply(m.chat, 'Masukan Nama Daerahnya', m) 5 | 6 | axios.get(`https://tobz-api.herokuapp.com/api/jamdunia?lokasi=${text}&apikey=BotWeA`).then ((res) => { 7 | let hasil = `Waktu Daerah *${text}*\n\nJam : ${res.data.time}\nTanggal : ${res.data.date}\nInfo : ${res.data.title}` 8 | 9 | conn.reply(m.chat, hasil, m) 10 | }) 11 | } 12 | handler.help = ['waktu'].map(v => v + ' ') 13 | handler.tags = ['tools'] 14 | handler.command = /^(waktu)$/i 15 | handler.owner = false 16 | handler.mods = false 17 | handler.premium = false 18 | handler.group = false 19 | handler.private = false 20 | 21 | handler.admin = false 22 | handler.botAdmin = false 23 | 24 | handler.fail = null 25 | handler.exp = 0 26 | handler.limit = false 27 | 28 | module.exports = handler -------------------------------------------------------------------------------- /plugins/wallpaperAnime.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | 3 | let handler = async (m, { conn }) => { 4 | try { 5 | let res = await fetch(global.API('xteam', '/randomimage/wpmobile', {}, 'APIKEY')) 6 | if (res.status != 200) throw await res.text() 7 | let img = await res.buffer() 8 | conn.sendFile(m.chat, img, '', '*Wibu Stress*', m, false, { thumbnail: Buffer.alloc(0) }) 9 | } catch (e) { 10 | throw `Limit apikey habis atau error!` 11 | } 12 | } 13 | handler.help = ['wallpaperanime'] 14 | handler.tags = ['internet'] 15 | handler.command = /^(wallpaper|wp)anime$/i 16 | handler.limit = true 17 | 18 | module.exports = handler 19 | -------------------------------------------------------------------------------- /plugins/wallpaperq.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | 3 | let handler = async (m, { conn, text }) => { 4 | if (!text) throw 'Nyari apa?' 5 | let res = await fetch(global.API('https://wall.alphacoders.com/api2.0','/get.php', { 6 | auth: '3e7756c85df54b78f934a284c11abe4e', 7 | method: 'search', 8 | term: text 9 | })) 10 | if (!res.ok) throw await res.text() 11 | let json = await res.json() 12 | let img = json.wallpapers[Math.floor(Math.random() * json.wallpapers.length)] 13 | await conn.sendFile(m.chat, img.url_image, 'wallpaper', 'Nih wallpaper!', m) 14 | } 15 | handler.help = ['wallpaperq '] 16 | handler.tags = ['internet'] 17 | handler.command = /^wall(paper)?q?$/i 18 | handler.limit = true 19 | 20 | module.exports = handler 21 | -------------------------------------------------------------------------------- /plugins/wallq.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | 3 | let handler = async (m, { conn, text }) => { 4 | if (!text) throw 'Nyari apa?' 5 | let res = await fetch(global.API('https://wall.alphacoders.com/api2.0', '/get.php', { 6 | auth: '3e7756c85df54b78f934a284c11abe4e', 7 | method: 'search', 8 | term: text 9 | })) 10 | if (!res.ok) throw await res.text() 11 | let json = await res.json() 12 | let img = json.wallpapers[Math.floor(Math.random() * json.wallpapers.length)] 13 | await conn.sendFile(m.chat, img.url_image, 'wallpaper', '', m, 0, { thumbnail: Buffer.alloc(0) }) 14 | } 15 | handler.help = ['wallpaperq '] 16 | handler.tags = ['internet'] 17 | handler.command = /^wall(paper)?q?$/i 18 | handler.limit = true 19 | 20 | module.exports = handler 21 | -------------------------------------------------------------------------------- /plugins/wikipedia.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { text }) => { 3 | if (!text) throw 'cari apa?' 4 | let res = await fetch(`https://hadi-api.herokuapp.com/api/wiki?query=${text}`) 5 | let json = await res.json() 6 | if (json.status) m.reply(`*WIKIPEDIA* 7 | 8 | ${json.result}`) 9 | else throw 'not found' 10 | } 11 | handler.help = ['wiki ', 'wikipedia { 3 | response = args.join(' ').split('|') 4 | if (!args[0]) throw 'Masukkan Parameter' 5 | m.reply('*[ ❗ ] Wait,Proses...*') 6 | let res = `https://api.zeks.xyz/api/wolflogo?apikey=apivinz&text1=${response[0]}&text2=${response[1]}` 7 | conn.sendFile(m.chat, res, 'wolflogo.jpg', `Nih kak`, m, false) 8 | } 9 | handler.help = ['wolflogo'].map(v => v + ' ') 10 | handler.tags = ['maker'] 11 | handler.command = /^(wolflogo)$/i 12 | 13 | module.exports = handler 14 | 15 | -------------------------------------------------------------------------------- /plugins/wpmobile.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | let handler = async (m, { conn, args }) => { 3 | response = args.join(' ') 4 | if (!args) throw 'Masukkan Parameter' 5 | m.reply('Sedang Diproses...') 6 | let res = `https://api.xteam.xyz/randomimage/wpmobile?apikey=beliapikey` 7 | conn.sendFile(m.chat, res, 'wpmobile.jpg', `wangy wangy wangy`, m, false) 8 | } 9 | handler.help = ['wpmobile'].map(v => v + ' ') 10 | handler.tags = ['image'] 11 | 12 | handler.command = /^(wpmobile)$/i 13 | handler.owner = false 14 | handler.mods = false 15 | handler.premium = false 16 | handler.group = false 17 | handler.private = true 18 | 19 | handler.admin = false 20 | handler.botAdmin = false 21 | 22 | handler.fail = null 23 | handler.limit = true 24 | 25 | module.exports = handler 26 | 27 | -------------------------------------------------------------------------------- /plugins/ytcomment.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, text }) => { 2 | if (!text) throw 'Uhm... teksnya mana?' 3 | conn.sendFile(m.chat, global.API('https://some-random-api.ml', '/canvas/youtube-comment', { 4 | avatar: await conn.profilePictureUrl(m.sender).catch(_ => ''), 5 | comment: text, 6 | username: m.pushName 7 | }), 'yt-comment.png', 'Here is your comment', m) 8 | } 9 | 10 | handler.help = ['ytcomment '] 11 | handler.tags = ['internet'] 12 | 13 | handler.command = /^(ytcomment)$/i 14 | 15 | module.exports = handler 16 | -------------------------------------------------------------------------------- /plugins/yts.js: -------------------------------------------------------------------------------- 1 | let yts = require('yt-search') 2 | let handler = async (m, { text }) => { 3 | if (!text) throw 'Cari apa?' 4 | let results = await yts(text) 5 | let teks = results.all.map(v => { 6 | switch (v.type) { 7 | case 'video': return ` 8 | *${v.title}* (${v.url}) 9 | Duration: ${v.timestamp} 10 | Uploaded ${v.ago} 11 | ${v.views} views 12 | `.trim() 13 | case 'channel': return ` 14 | *${v.name}* (${v.url}) 15 | _${v.subCountLabel} (${v.subCount}) Subscriber_ 16 | ${v.videoCount} video 17 | `.trim() 18 | } 19 | }).filter(v => v).join('\n========================\n') 20 | m.reply(teks) 21 | } 22 | handler.help = ['', 'earch'].map(v => 'yts' + v + ' ') 23 | handler.tags = ['tools'] 24 | handler.command = /^yts(earch)?$/i 25 | 26 | module.exports = handler 27 | -------------------------------------------------------------------------------- /plugins/ytstalk.js: -------------------------------------------------------------------------------- 1 | let fetch = require('node-fetch') 2 | 3 | let handler = async(m, { conn, text }) => { 4 | 5 | if (!text) return conn.reply(m.chat, 'Harap Masukan Nama channel', m) 6 | 7 | await m.reply('Searching...') 8 | let res = await fetch(`https://x-restapi.herokuapp.com/api/yt-stalk?username=${text}&apikey=BETA`) 9 | let json = await res.json() 10 | if (res.status !== 200) throw await res.text() 11 | if (!json.status) throw json 12 | let thumb = await (await fetch(json.thumb)).buffer() 13 | let hasil = `*── 「 YOU-TUBE STALK 」 ──* 14 | 15 | ▢ *Nama*: ${json.channel} 16 | ▢ *Subscriber*: ${json.subscriberCount} 17 | ▢ *Verivikasi*: ${json.isVerified} 18 | ▢ *Link*: ${json.link} 19 | ▢ *Deskripsi*: ${json.description} 20 | ` 21 | 22 | conn.sendFile(m.chat, thumb, 'ytstalk.jpg', hasil, m) 23 | } 24 | handler.help = ['ytstalk','youtubestalk'].map(v => v + ' ') 25 | handler.tags = ['stalk'] 26 | handler.command = /^(ytstalk|youtubestalk)$/i 27 | 28 | module.exports = handler 29 | -------------------------------------------------------------------------------- /plugins/ytv720.js: -------------------------------------------------------------------------------- 1 | let xfar = require('xfarr-api') 2 | let fetch = require('node-fetch') 3 | let handler = async (m, { conn, command, text }) => { 4 | if (!text) throw 'Masukkan Link\n\nContoh: .ytv720 https://youtube.com/xxxxxx' 5 | let res = await xfar.Youtube(text) 6 | m.reply('*Tunggu Sebentar...*') 7 | conn.sendFile(m.chat,res.medias[2].url, '', `Youtube Downloader 8 | 720p 9 | jika masih blur, berarti videonya emang ngeblur dari youtubenya 10 | Atau bisa jadi faktor *MUKA*`, m) 11 | 12 | } 13 | handler.help = ['ytv720 '] 14 | handler.tags = ['internet'] 15 | handler.command = /^ytv720$/i 16 | 17 | 18 | module.exports = handler 19 | -------------------------------------------------------------------------------- /plugins/zippyshare.js: -------------------------------------------------------------------------------- 1 | let handler = async (m, { conn, command, text, isPrems, isOwner }) => { 2 | if (!text) throw 'Uhm...urlnya mana?' 3 | try { 4 | apii = global.API('lolhuman', '/api/zippyshare', { url: text }, 'apikey') 5 | apis = await require('axios').get(apii) 6 | m.reply('Sabar Uhm, Lagi Download...') 7 | m.reply('Nama File : '+ apis.data.result.name_file) 8 | buffer = await getBuffer(apis.data.result.download_url) 9 | let { ext, mime } = await require('file-type').fromBuffer(buffer) 10 | m.reply('Sabar Uhm, Lagi Upload...') 11 | conn.sendMessage(m.chat, buffer, 'documentMessage', { mimetype: mime, filename: apis.data.result.name_file, quoted:m }) 12 | } catch { 13 | throw 'Error!' 14 | } 15 | } 16 | handler.help = ['zippyshare', 'zippy'].map(v => v + ' ') 17 | handler.tags = ['downloader'] 18 | handler.command = /^(zippy|zippyshare)$/i 19 | 20 | handler.exp = 0 21 | 22 | module.exports = handler 23 | 24 | async function getBuffer(url) { 25 | ff = await require('node-fetch')(url) 26 | fff = await ff.buffer() 27 | return fff 28 | } -------------------------------------------------------------------------------- /src/Aesthetic/Aesthetic_000.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/Aesthetic/Aesthetic_000.jpeg -------------------------------------------------------------------------------- /src/Aesthetic/Aesthetic_001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/Aesthetic/Aesthetic_001.jpg -------------------------------------------------------------------------------- /src/Aesthetic/Aesthetic_002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/Aesthetic/Aesthetic_002.jpg -------------------------------------------------------------------------------- /src/avatar_contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/avatar_contact.png -------------------------------------------------------------------------------- /src/font/212BabyGirl.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/212BabyGirl.otf -------------------------------------------------------------------------------- /src/font/212LeahleeSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/212LeahleeSans.ttf -------------------------------------------------------------------------------- /src/font/99HandWritting.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/99HandWritting.ttf -------------------------------------------------------------------------------- /src/font/ACallingFontDby7NTypes.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/ACallingFontDby7NTypes.otf -------------------------------------------------------------------------------- /src/font/ACasualHandwrittenPenNoncommercial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/ACasualHandwrittenPenNoncommercial.ttf -------------------------------------------------------------------------------- /src/font/ADayinSeptember.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/ADayinSeptember.otf -------------------------------------------------------------------------------- /src/font/ASMelanieHandwritting.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/ASMelanieHandwritting.ttf -------------------------------------------------------------------------------- /src/font/Alittlesunshine.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Alittlesunshine.ttf -------------------------------------------------------------------------------- /src/font/And-This-Happened.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/And-This-Happened.ttf -------------------------------------------------------------------------------- /src/font/AvenirCondensedHand.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/AvenirCondensedHand.ttf -------------------------------------------------------------------------------- /src/font/Avocados.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Avocados.ttf -------------------------------------------------------------------------------- /src/font/BabyDoll.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/BabyDoll.ttf -------------------------------------------------------------------------------- /src/font/BattleOfKingsRegular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/BattleOfKingsRegular.ttf -------------------------------------------------------------------------------- /src/font/BrayNotes.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/BrayNotes.ttf -------------------------------------------------------------------------------- /src/font/Convered-By-Your-Grace.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Convered-By-Your-Grace.ttf -------------------------------------------------------------------------------- /src/font/Edoms-Handwritting-Normal.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Edoms-Handwritting-Normal.ttf -------------------------------------------------------------------------------- /src/font/Futura Bold Italic font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Bold Italic font.ttf -------------------------------------------------------------------------------- /src/font/Futura Bold font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Bold font.ttf -------------------------------------------------------------------------------- /src/font/Futura Book Italic font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Book Italic font.ttf -------------------------------------------------------------------------------- /src/font/Futura Book font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Book font.ttf -------------------------------------------------------------------------------- /src/font/Futura Extra Black font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Extra Black font.ttf -------------------------------------------------------------------------------- /src/font/Futura Heavy Italic font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Heavy Italic font.ttf -------------------------------------------------------------------------------- /src/font/Futura Heavy font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Heavy font.ttf -------------------------------------------------------------------------------- /src/font/Futura Light Italic font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Light Italic font.ttf -------------------------------------------------------------------------------- /src/font/Futura Light font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Light font.ttf -------------------------------------------------------------------------------- /src/font/Futura Medium Italic font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura Medium Italic font.ttf -------------------------------------------------------------------------------- /src/font/Futura XBlk BT.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura XBlk BT.ttf -------------------------------------------------------------------------------- /src/font/Futura-CondensedLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Futura-CondensedLight.otf -------------------------------------------------------------------------------- /src/font/GloriaHallelujah-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/GloriaHallelujah-Regular.ttf -------------------------------------------------------------------------------- /src/font/HandwritingCR-2.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/HandwritingCR-2.ttf -------------------------------------------------------------------------------- /src/font/Kempton-Demo-Handwritting.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Kempton-Demo-Handwritting.ttf -------------------------------------------------------------------------------- /src/font/MyHandsareHoldingYou.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/MyHandsareHoldingYou.ttf -------------------------------------------------------------------------------- /src/font/My_handwriting.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/My_handwriting.ttf -------------------------------------------------------------------------------- /src/font/Nadeznas-Handwritting.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Nadeznas-Handwritting.ttf -------------------------------------------------------------------------------- /src/font/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-Black.ttf -------------------------------------------------------------------------------- /src/font/Roboto-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-BlackItalic.ttf -------------------------------------------------------------------------------- /src/font/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-Bold.ttf -------------------------------------------------------------------------------- /src/font/Roboto-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-BoldItalic.ttf -------------------------------------------------------------------------------- /src/font/Roboto-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-Italic.ttf -------------------------------------------------------------------------------- /src/font/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-Light.ttf -------------------------------------------------------------------------------- /src/font/Roboto-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-LightItalic.ttf -------------------------------------------------------------------------------- /src/font/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-Medium.ttf -------------------------------------------------------------------------------- /src/font/Roboto-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-MediumItalic.ttf -------------------------------------------------------------------------------- /src/font/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-Regular.ttf -------------------------------------------------------------------------------- /src/font/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-Thin.ttf -------------------------------------------------------------------------------- /src/font/Roboto-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Roboto-ThinItalic.ttf -------------------------------------------------------------------------------- /src/font/ShadowsIntoLight-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/ShadowsIntoLight-Regular.ttf -------------------------------------------------------------------------------- /src/font/Zahraaa.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/Zahraaa.ttf -------------------------------------------------------------------------------- /src/font/angelina.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/angelina.ttf -------------------------------------------------------------------------------- /src/font/futur.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/futur.ttf -------------------------------------------------------------------------------- /src/font/futura light bt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/futura light bt.ttf -------------------------------------------------------------------------------- /src/font/futura medium bt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/futura medium bt.ttf -------------------------------------------------------------------------------- /src/font/futura medium condensed bt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/futura medium condensed bt.ttf -------------------------------------------------------------------------------- /src/font/michellehandwritting.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/font/michellehandwritting.ttf -------------------------------------------------------------------------------- /src/kertas/Elyas.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/kertas/magernulis1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/kertas/magernulis1.jpg -------------------------------------------------------------------------------- /src/premium.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /src/squidGame_GLRL.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/squidGame_GLRL.mp3 -------------------------------------------------------------------------------- /src/squidGame_GLRL_Scan.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/squidGame_GLRL_Scan.mp3 -------------------------------------------------------------------------------- /src/squidGame_GLRL_Shoot.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/squidGame_GLRL_Shoot.mp3 -------------------------------------------------------------------------------- /src/welcome.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siuspsrb/Itsuki-Bot-2.0/1a7aa42761c2994e1a463927c15bb35ffae2079a/src/welcome.jpg -------------------------------------------------------------------------------- /tmp/Elyas: -------------------------------------------------------------------------------- 1 | 2 | --------------------------------------------------------------------------------