├── README.md ├── commands ├── util │ ├── prefix.json │ ├── module.json │ ├── screenshot.js │ ├── batik.js │ ├── prefix.js │ ├── docs.js │ ├── translate.js │ └── github.js ├── owner │ ├── module.json │ ├── checkblacklist.js │ ├── unblacklist.js │ └── blacklist.js ├── fun │ ├── module.json │ ├── wikihow.js │ ├── say.js │ ├── meme.js │ ├── ascii.js │ ├── loop.js │ ├── emoji.js │ └── birthday.js ├── dev │ ├── module.json │ ├── dm.js │ ├── exec.js │ ├── embedsay.js │ └── eval.js ├── general │ ├── module.json │ ├── afk.js │ ├── invitelink.js │ ├── ping.js │ ├── hastebin.js │ ├── avatar.js │ ├── snipe.js │ └── help.js ├── info │ ├── module.json │ ├── uptime.js │ ├── userid.js │ └── covid.js ├── music │ ├── module.json │ ├── stop.js │ ├── np.js │ ├── loop.js │ ├── resume.js │ ├── queue.js │ ├── lyrics.js │ ├── pause.js │ ├── drop.js │ ├── jump.js │ ├── volume.js │ ├── skip.js │ └── play.js ├── economy │ ├── module.json │ ├── work.js │ ├── deposit.js │ ├── daily.js │ ├── balance.js │ ├── transfer.js │ ├── withdraw.js │ ├── gamble.js │ └── rob.js ├── admin │ ├── module.json │ ├── setwelcome.js │ ├── welcome.js │ ├── removemoney.js │ ├── setnickname.js │ ├── stealemoji.js │ ├── kick.js │ ├── slowmode.js │ ├── addmoney.js │ ├── clear.js │ ├── addrole.js │ └── ban.js └── anime │ ├── module.json │ ├── kiss.js │ └── hug.js ├── wallpaper.jpg ├── fonts └── MilkyNice.ttf ├── events ├── ready.js ├── messageDelete.js ├── helpshort.js └── message.js ├── models └── Guild.js ├── handler ├── Event.js ├── ClientBuilder.js └── module.js └── system └── music.js /README.md: -------------------------------------------------------------------------------- 1 | # Hay Gayn -------------------------------------------------------------------------------- /commands/util/prefix.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } -------------------------------------------------------------------------------- /commands/owner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "\\🧑 Owner" 3 | } -------------------------------------------------------------------------------- /wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syrup/Mioun-bot/master/wallpaper.jpg -------------------------------------------------------------------------------- /commands/fun/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "<:anime_cute:735370219022712843> Fun" 3 | } -------------------------------------------------------------------------------- /commands/dev/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": ":tools: Developer", 3 | "hide": true 4 | } 5 | -------------------------------------------------------------------------------- /commands/general/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": ":gear: General", 3 | "hide": false 4 | } 5 | -------------------------------------------------------------------------------- /fonts/MilkyNice.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syrup/Mioun-bot/master/fonts/MilkyNice.ttf -------------------------------------------------------------------------------- /commands/info/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": ":information_source: Info", 3 | "hide": false 4 | } -------------------------------------------------------------------------------- /commands/music/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": ":musical_keyboard: Music", 3 | "hide": false 4 | } -------------------------------------------------------------------------------- /commands/economy/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": ":moneybag: Economy", 3 | "hide": false 4 | } 5 | -------------------------------------------------------------------------------- /commands/admin/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": ":bust_in_silhouette: Administrator", 3 | "hide": false 4 | } 5 | -------------------------------------------------------------------------------- /commands/anime/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "<:nene_smile:736020181599649915> Anime", 3 | "hide": false 4 | } -------------------------------------------------------------------------------- /commands/util/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": " Util", 3 | "hide": false 4 | } 5 | -------------------------------------------------------------------------------- /events/ready.js: -------------------------------------------------------------------------------- 1 | module.exports = client => { 2 | console.log(`bot ${client.user.username} is ready!`); 3 | client.user.setActivity(`${client.config.prefix}help`, { type: "STREAMING" }); 4 | } 5 | -------------------------------------------------------------------------------- /models/Guild.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require('mongoose'); 2 | 3 | const Discord = require('discord.js'); 4 | const client = new Discord.Client(); 5 | 6 | const Guild = Schema({ 7 | id: String, 8 | prefix: { 9 | default: "mi.", 10 | type: String 11 | } 12 | }) -------------------------------------------------------------------------------- /events/messageDelete.js: -------------------------------------------------------------------------------- 1 | // This system requires a database. 2 | const db = require("quick.db"); // v7.1.1 3 | 4 | module.exports = async (client, message) => { 5 | client.on('messageDelete', function(message, channel){ 6 | 7 | client.snipes.set(message.channel.id, { 8 | content: message.content, 9 | author: message.author.tag, 10 | image: message.attachments.first() ? message.attachments.first().proxyURL : null 11 | }) 12 | 13 | }) 14 | } 15 | -------------------------------------------------------------------------------- /commands/owner/checkblacklist.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | exports.run = async (client, message) => { 5 | let user = db.get(`prefix.${message.guild.id}.user.name`); 6 | 7 | 8 | const embed = new Discord.MessageEmbed() 9 | .setDescription(``) 10 | } 11 | 12 | exports.help = { 13 | name: "checkblacklist", 14 | description: "check blacklist", 15 | } 16 | 17 | exports.conf = { 18 | aliases: ["checkbl"], 19 | cooldown: 1 20 | } -------------------------------------------------------------------------------- /commands/general/afk.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | exports.run = async (message, client, args) => { 5 | const lang = client.lang.find(n => n === "indo.yml"); 6 | 7 | let afk = args.slice(0).join(" "); 8 | 9 | db.set(`afk.${message.author.id}`, afk); 10 | 11 | message.channel.send() 12 | } 13 | 14 | exports.help = { 15 | name: "afk", 16 | description: "" 17 | } 18 | 19 | exports.conf = { 20 | aliases: [], 21 | cooldown: 15 22 | } -------------------------------------------------------------------------------- /handler/Event.js: -------------------------------------------------------------------------------- 1 | // In here, we're can add some events in /events folder, so we don't need to fill it up the server.js with all these events. 2 | 3 | const { readdirSync } = require("fs"); // You don't need to install this again. 4 | 5 | module.exports = client => { 6 | const events = readdirSync("./events/"); 7 | for (let event of events) { 8 | let file = require(`../events/${event}`); 9 | client.on(event.split(".")[0], (...args) => file(client, ...args)); 10 | // This will remove the .js and only with the name of the event. 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /commands/fun/wikihow.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | const KagApi = require("@kagchi/kag-api") 3 | const api = new KagApi() 4 | 5 | 6 | exports.run = async (client, msg, args) => { 7 | const wikihow = await api.wikihow() 8 | const embed = new MessageEmbed() 9 | .setTitle(wikihow.title) 10 | .setImage(wikihow.url) 11 | msg.channel.send(embed) 12 | 13 | 14 | // Wikihow Api (buat yang gabisa make k-soft di glitch) 15 | // "”by: @KagChi 16 | } 17 | 18 | exports.help = { 19 | name: "wikihow", 20 | description: "Show Image from Wikihow" 21 | } 22 | 23 | exports.conf = { 24 | aliases: ["wk"], 25 | cooldown: 5 26 | } -------------------------------------------------------------------------------- /commands/general/invitelink.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const { MessageEmbed } = require('discord.js') 3 | 4 | exports.run = async (client, message) => { 5 | let embed = new MessageEmbed() 6 | .setAuthor(`${client.config.owner}`) 7 | .addField(`This your request invite link`, `[INVITE ME](https://discord.com/oauth2/authorize?client_id=${client.user.id}&scope=bot&permissions=8)`, true) 8 | .setTimestamp(new Date()) 9 | .setFooter(`Syrik X Syrup`, `${client.user.displayAvatarURL()}`) 10 | 11 | message.channel.send(embed) 12 | } 13 | 14 | exports.help = { 15 | name: "invitelink", 16 | description: "INVITEE MEEEE PLIZZZ" 17 | } 18 | 19 | exports.conf = { 20 | aliases: ["ik"], 21 | cooldown: 3 22 | } -------------------------------------------------------------------------------- /commands/fun/say.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | // const Discord = require("discord.js"); 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | if(message.content === "@everyone" || message.content === "@here") return message.channel.send('I don\'t wanna do this') 7 | 8 | if(message.guild === null)return; 9 | 10 | 11 | if (message.author.bot) return; 12 | 13 | const sayMessage = args.join(" "); 14 | message.delete().catch(O_o => {}); 15 | message.channel.send(sayMessage); 16 | 17 | 18 | }; 19 | exports.help = { 20 | name: "say", 21 | description: "only dev k", 22 | usage: "say ", 23 | example: "mi.say hi" 24 | } 25 | 26 | exports.conf = { 27 | aliases: ["sy"], 28 | cooldown: 3 29 | } 30 | -------------------------------------------------------------------------------- /commands/fun/meme.js: -------------------------------------------------------------------------------- 1 | 2 | const { MessageEmbed } = require("discord.js"); 3 | const api = require("imageapi.js"); 4 | exports.help = { 5 | name: "meme", 6 | description: "Get a meme!" 7 | } 8 | exports.run = async (bot, message, args) => { 9 | let subreddits = ["comedyheaven", "dank", "meme", "memes", "indonesia"]; 10 | let subreddit = 11 | subreddits[Math.floor(Math.random() * subreddits.length)]; 12 | let img = await api(subreddit, true); 13 | const Embed = new MessageEmbed() 14 | .setTitle(`A meme from r/${subreddit}`) 15 | .setURL(`https://reddit.com/r/${subreddit}`) 16 | .setColor("RANDOM") 17 | .setImage(img); 18 | message.channel.send(Embed); 19 | } 20 | 21 | exports.conf = { 22 | aliases: ["ms"], 23 | cooldown: 3 24 | } -------------------------------------------------------------------------------- /commands/admin/setwelcome.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | const welcome = args.join(" "); 6 | 7 | if(!welcome) return message.say('sorry, you have to enter the channel id') 8 | 9 | let checkID = message.guild.channels.cache.get(welcome); 10 | if(!checkID) return message.say('channel not found 404') 11 | db.set(`welcome.${message.guild.id}`, welcome); 12 | 13 | message.say(`Succesfully set Welcome Channel <#${welcome}>`) 14 | } 15 | 16 | exports.help = { 17 | name: "setwelcome", 18 | description: "Set a welcome Channel", 19 | usage: "setwelcome ", 20 | example: "setwelcome 729234184249540699" 21 | } 22 | 23 | exports.conf = { 24 | aliases: ["setwc"], 25 | cooldown: 5 26 | 27 | } 28 | -------------------------------------------------------------------------------- /commands/economy/work.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db') 2 | const Discord = require('discord.js') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | // simple work command 7 | let amount = Math.floor(Math.random() * 500) + 1; // 1-500 random number. 8 | let embed = new Discord.MessageEmbed() 9 | .setAuthor(`${message.author.tag}, it payed off!`, `${message.author.displayAvatarURL()}`) 10 | .setDescription(`${message.author}, you've worked and earned ${amount}$ !`) 11 | .setColor("RANDOM") 12 | 13 | message.channel.send(embed) 14 | db.add(`account.${message.author.id}.balance`, amount) 15 | 16 | 17 | } 18 | 19 | exports.help = { 20 | name: "work", 21 | description: "Work to earn Money" 22 | } 23 | 24 | exports.conf = { 25 | aliases: ["w"], 26 | cooldown: 1 27 | } -------------------------------------------------------------------------------- /commands/util/screenshot.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageAttachment } = require('discord.js'); 3 | const auth = process.env.URL_KEY 4 | 5 | exports.run = async (client, message, args) => { 6 | let url = args[0]; 7 | 8 | if(!url) return message.channel.send("give me a url!"); 9 | 10 | 11 | // if(!url.includes('https://')) url = 'https://' + url.join(' ') 12 | 13 | message.channel.send({ 14 | files: [{ 15 | attachment: `https://allvzx.glitch.me/api/webshot?url=${url}`, 16 | name: `screenshot_${message.author.username}.png` 17 | }] 18 | }); 19 | } 20 | 21 | exports.help = { 22 | name: "screenshot", 23 | description: "screenshot a web from url", 24 | usage: "screenshot ", 25 | example: "screenshot https://google.com" 26 | } 27 | 28 | exports.conf = { 29 | aliases: ["ss"], 30 | cooldown: 3 31 | } -------------------------------------------------------------------------------- /commands/fun/ascii.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const figlet = require('figlet') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let text = args.join(" "); 7 | if(!text) { 8 | return message.channel.send(`Please provide text for the ascii conversion!`) 9 | } 10 | let maxlen = 20 11 | if(text.length > 20) { 12 | return message.channel.send(`Please put text that has 20 characters or less because the conversion won't be good!`) 13 | } 14 | // AGAIN, MAKE SURE TO INSTALL FIGLET PACKAGE! 15 | figlet(text, function(err, data) { 16 | message.channel.send(data, { 17 | code: 'AsciiArt' 18 | }); 19 | }) 20 | } 21 | exports.help = { 22 | name: "ascii", 23 | description: "Generate ascii art with text", 24 | usage: "ascii ", 25 | example: "mi.ascii hello world" 26 | } 27 | 28 | exports.conf = { 29 | aliases: ["ac"], 30 | cooldown: 3 31 | } -------------------------------------------------------------------------------- /commands/admin/welcome.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | exports.run = async (message, client, args) => { 4 | // let user = args[0]; 5 | 6 | // if(user) { 7 | // let name = message.guild.members.cache.find(n => n.user.username === user).catch(e => message.say(`Cannot found user with name \`${user}\``)); 8 | // return client.emit('guildMemberAdd', name, message); 9 | // } 10 | 11 | // let member = message.mentions.users.first(); 12 | // if(member) { 13 | // return client.emit('guildMemberAdd', member, message); 14 | // } 15 | 16 | 17 | 18 | // client.emit('guildMemberAdd', message.member, message); 19 | } 20 | 21 | exports.help = { 22 | name: 'welcome', 23 | description: "Run a Fake Welcome Message", 24 | usage: 'welcome Syrup' 25 | } 26 | 27 | exports.conf = { 28 | aliases: ["wc"], 29 | cooldown: 5 30 | } -------------------------------------------------------------------------------- /commands/anime/kiss.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const superagent = require('superagent'); 3 | const customisation = require('../../config.json'); 4 | 5 | exports.run = async (client, message, args, tools) => { 6 | if (!message.mentions.users.first()) return message.channel.send("You need to mention someone to kiss them"); 7 | const { body } = await superagent 8 | .get("https://nekos.life/api/kiss"); 9 | 10 | const embed = new Discord.MessageEmbed() 11 | .setColor("#ff9900") 12 | .setTitle(`OwO, ${message.author.username} kissed ${message.mentions.users.first().username}`) 13 | .setImage(body.url) 14 | .setFooter(`Syve X Syrup`); 15 | message.channel.send({embed}) 16 | }; 17 | 18 | exports.help = { 19 | name: 'kiss', 20 | description: 'Kisses someone OwO', 21 | usage: 'kiss ' 22 | }; 23 | 24 | exports.conf = { 25 | aliases: [], 26 | ccoldown: 3 27 | }; -------------------------------------------------------------------------------- /handler/ClientBuilder.js: -------------------------------------------------------------------------------- 1 | const {Client, Collection} = require("discord.js"); 2 | const { CommandoClient } = require('discord.js-commando'); 3 | const fs = require('fs'); 4 | const { AkairoClient } = require('discord-akairo'); 5 | 6 | module.exports = class MiounBot extends AkairoClient { 7 | constructor(options) { 8 | super(options) 9 | 10 | 11 | this.commands = new Collection(); // This will store your commands. 12 | this.cooldowns = new Collection(); // This will store your commands with cooldowns. 13 | this.aliases = new Collection(); // This will store your alternative commands. Example = /server -> /serverinfo, /guild, /guildinfo 14 | this.config = require('../config.json'); 15 | this.recent = new Set(); 16 | this.snek = require('node-superfetch'); 17 | this.blacklist = require('quick.db').fetch("blacklist"); 18 | this.snipes = new Map(); 19 | this.lang = fs.readdirSync('lang'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /commands/general/ping.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | exports.run = async (client, message, args) => { 4 | 5 | let start = Date.now(); 6 | 7 | message.channel.send({embed: {description: "Looks like the bot is slow.", color: "RANDOM"}}).then(m => { 8 | 9 | let end = Date.now(); 10 | 11 | let embed = new Discord.MessageEmbed() 12 | .setAuthor("Ping!", message.author.avatarURL()) 13 | .addField("API Latency", Math.round(client.ws.ping) + "ms", true) 14 | .addField("Message Latency", end - start + "ms", true) 15 | .setColor("RANDOM"); 16 | m.edit(embed).catch(e => message.channel.send(e)) 17 | }) 18 | } 19 | 20 | exports.help = { 21 | name: "ping", 22 | description: "Ponged!", 23 | usage: "ping", 24 | example: "mi.ping" 25 | }; 26 | 27 | exports.conf = { 28 | aliases: ["beep"], 29 | cooldown: 5 // This number is a seconds, not a milliseconds. 30 | // 1 = 1 seconds. 31 | } 32 | -------------------------------------------------------------------------------- /commands/owner/unblacklist.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | if(!message.author.id === client.config.owners[0] && !message.author.id === client.config[1]) return message.channel.send("Only owner can use this Command!"); 7 | 8 | let user = message.mentions.users.first() || args[0]; 9 | 10 | db.delete(`blacklist.${user.id}`); 11 | if(!user.id === undefined) { 12 | let embed = new Discord.MessageEmbed() 13 | .setDescription(`${user} has been unblacklisted!`); 14 | message.channel.send(embed) 15 | } else { 16 | let embed = new Discord.MessageEmbed() 17 | .setDescription(`${user} has been unblacklisted!`); 18 | message.channel.send(embed) 19 | } 20 | } 21 | 22 | exports.help = { 23 | name: "unblacklist", 24 | description: "delete member from blacklist" 25 | } 26 | 27 | exports.conf = { 28 | aliases: ["unbl"], 29 | cooldown: 3 30 | } -------------------------------------------------------------------------------- /commands/info/uptime.js: -------------------------------------------------------------------------------- 1 | exports.run = (client, message) => { 2 | var milliseconds = parseInt((client.uptime % 1000) / 100), 3 | seconds = parseInt((client.uptime / 1000) % 60), 4 | minutes = parseInt((client.uptime / (1000 * 60)) % 60), 5 | hours = parseInt((client.uptime / (1000 * 60 * 60)) % 24); 6 | 7 | hours = (hours < 10) ? "0" + hours : hours; 8 | minutes = (minutes < 10) ? "0" + minutes : minutes; 9 | seconds = (seconds < 10) ? "0" + seconds : seconds; 10 | 11 | message.channel.send(":stopwatch: I've been running for** " + hours + " **hours, **" + minutes + "** minutes and **" + seconds + "." + milliseconds + "** seconds!"); 12 | } 13 | 14 | exports.conf = { 15 | enabled: true, 16 | guildOnly: false, 17 | aliases: ["ut"], 18 | permLevel: 0 19 | }; 20 | 21 | exports.help = { 22 | name: 'uptime', 23 | description: 'Shows how long the bot has been online for.', 24 | usage: 'uptime' 25 | }; -------------------------------------------------------------------------------- /commands/anime/hug.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const superagent = require('superagent'); 3 | const customisation = require('../../config.json'); 4 | 5 | exports.run = async (client, message, args, tools) => { 6 | if (!message.mentions.users.first()) return message.reply("You need to mention someone to hug them"); 7 | const { body } = await superagent 8 | .get("https://nekos.life/api/hug"); 9 | 10 | const embed = new Discord.MessageEmbed() 11 | .setColor("#ff9900") 12 | .setTitle(`OwO, ${message.author.username} hug ${message.mentions.users.first().username}`) 13 | .setImage(body.url) 14 | .setFooter(`Gtech X Syrup `); 15 | message.channel.send({embed}) 16 | }; 17 | 18 | exports.conf = { 19 | enabled: true, 20 | guildOnly: false, 21 | aliases: [], 22 | permLevel: 0 23 | }; 24 | 25 | exports.help = { 26 | name: 'hug', 27 | description: 'hugs someone OwO', 28 | usage: 'hug' 29 | }; -------------------------------------------------------------------------------- /commands/general/hastebin.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js") 2 | const { MessageEmbed } = require("discord.js") 3 | const moment = require("moment") 4 | //const { ownerid } = require("../../config.json" 5 | //const { rage } = require("../../colors.json") 6 | // const { angry, yes, money, stupid, loading, no } = require("../../emojis.json"); 7 | const hastebin = require('hastebin-gen'); 8 | 9 | exports.help = { 10 | name: "hastebin", 11 | description: "Regenerate code/text to hastebin", 12 | usage: `hastebin ` 13 | } 14 | exports.conf = { 15 | aliases: ["haste"], 16 | cooldown: 3 17 | } 18 | exports.run = async (client, message, args) => { 19 | 20 | if(!args.join(" ")) return message.channel.send(`Write \`\`VALID\`\` text`); 21 | 22 | hastebin(args.join(" "), { extension: 'rage' }).then(haste => { 23 | message.channel.send(haste); 24 | }).catch(error => { 25 | message.channel.send(`\`\`\`\n-ERROR-\n\`\`\`${error}`); 26 | }); 27 | } -------------------------------------------------------------------------------- /commands/util/batik.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { MessageEmbed } = require("discord.js"); 3 | const { Menu } = require('discord.js-menu'); 4 | 5 | exports.run = async (client, message, args) => { 6 | const { body: batik } = await client.snek.get(`http://batikita.herokuapp.com/index.php/batik/all`) 7 | let i = Math.floor(Math.random() * batik.hasil.length); 8 | 9 | const { nama_batik, harga_tinggi, harga_rendah, link_batik, makna_batik, daerah_batik } = batik.hasil[i]; 10 | 11 | const embed = new MessageEmbed() 12 | .setTitle(nama_batik) 13 | .setDescription(makna_batik) 14 | .setImage(link_batik) 15 | .setURL(link_batik) 16 | .addField('Daerah Batik: ', daerah_batik) 17 | .setFooter(`RP ${harga_tinggi.toLocaleString()} - RP ${harga_rendah.toLocaleString()}`) 18 | 19 | message.say(embed); 20 | } 21 | 22 | exports.help = { 23 | name: "batik", 24 | description: "Random Batik", 25 | usage: "batik", 26 | example: "batik" 27 | } 28 | 29 | exports.conf = { 30 | aliases: [], 31 | cooldown: 5 32 | } 33 | -------------------------------------------------------------------------------- /commands/util/prefix.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const fs = require('fs'); 3 | const db = require('quick.db'); 4 | 5 | exports.run = async (client, message, args) => { 6 | 7 | if(args[0] === "default") { 8 | return db.delete(`prefix.${message.guild.id}`) 9 | } 10 | 11 | 12 | db.set(`prefix.${message.guild.id}`, args[0]); 13 | 14 | const prefixes = db.get(`prefix.${message.guild.id}`); 15 | 16 | 17 | 18 | let embed = new Discord.MessageEmbed() 19 | .setAuthor(`${message.author.tag}`) 20 | .setTitle("Succesfully to change Prefix") 21 | .setFooter(`${message.author.tag} has changed prefix to ${prefixes}`) 22 | .setDescription(`Succesfully change Prefix to ${args[0]}`); 23 | message.channel.send(embed); 24 | } 25 | 26 | exports.help = { 27 | name: "prefix", 28 | description: "Change default prefix mi. to whatever you want", 29 | usage: "prefix ", 30 | example: "prefix mi!" 31 | } 32 | 33 | exports.conf = { 34 | aliases: ["ch"], 35 | cooldown: 3 36 | } -------------------------------------------------------------------------------- /commands/fun/loop.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | exports.run = async (client, message, args) => { 4 | let batas = 50; 5 | 6 | if(args[0] > 50) return message.channel.send("50 or more loop message not allowed!"); 7 | 8 | if(!args[0]) return message.channel.send("input a spesific Number!"); 9 | if(!args[0]) return message.channel.send("input a Message"); 10 | 11 | if(args[0] === "@everyone" || args[1] === "@here") return message.channel.send("Nope."); 12 | setTimeout(() => { 13 | for(let i=0; i"); 19 | msg.delete({ timeout: 2000 }); 20 | } 21 | 22 | exports.help = { 23 | name: "loop", 24 | description: "loop a message", 25 | usage: "loop \"\" use \"\" if yout message has 2 or more", 26 | example: "" 27 | } 28 | 29 | exports.conf = { 30 | aliases: ["lp"], 31 | cooldown: 10 32 | } 33 | -------------------------------------------------------------------------------- /commands/music/stop.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | const { COLOR } = require("../../config.json"); 3 | 4 | 5 | 6 | const discord = require("discord.js"); 7 | 8 | exports.help = { 9 | name: "stop", 10 | description: "Stop the music and take rest ;)", 11 | usage: "stop" 12 | } 13 | exports.run = async(client, message, args) => { 14 | 15 | 16 | let embed = new MessageEmbed() 17 | .setColor(COLOR); 18 | 19 | const { channel } = message.member.voice; 20 | 21 | if (!channel) { 22 | //IF AUTHOR IS NOT IN VOICE CHANNEL 23 | embed.setAuthor("YOU NEED TO BE IN VOICE CHANNEL :/") 24 | return message.channel.send(embed); 25 | } 26 | 27 | const serverQueue = message.client.queue.get(message.guild.id); 28 | 29 | if (!serverQueue) { 30 | embed.setAuthor("There is nothing playing that i could stop") 31 | return message.channel.send(embed); 32 | } 33 | 34 | serverQueue.songs = []; 35 | serverQueue.connection.dispatcher.end(); 36 | }; 37 | 38 | exports.conf = { 39 | aliases: ["st"], 40 | cooldown: 4 41 | } 42 | -------------------------------------------------------------------------------- /commands/music/np.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | 3 | const { COLOR } = require("../../config.json"); 4 | 5 | 6 | 7 | exports.run = async (client, message, args) => { 8 | let embed = new MessageEmbed() 9 | .setColor(COLOR) 10 | 11 | const { channel } = message.member.voice; 12 | if (!channel) { 13 | //IF AUTHOR IS NOT IN VOICE CHANNEL 14 | embed.setAuthor("YOU NEED TO BE IN VOICE CHANNEL :/") 15 | return message.channel.send(embed); 16 | } 17 | 18 | const serverQueue = message.client.queue.get(message.guild.id); 19 | 20 | if (!serverQueue) { 21 | embed.setAuthor("Bot is not playing anything") 22 | return message.channel.send(embed); 23 | } 24 | 25 | embed.setDescription(`**NOW PLAYING** - ${serverQueue.songs[0].title}`) 26 | .setThumbnail(serverQueue.songs[0].thumbnail) 27 | message.channel.send(embed) 28 | } 29 | 30 | exports.help = { 31 | name: "np", 32 | description: "Get the name of current playing song", 33 | usage: "mi.np" 34 | } 35 | 36 | exports.conf = { 37 | aliases: [""], 38 | cooldown: 3 39 | } 40 | -------------------------------------------------------------------------------- /commands/music/loop.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | const { COLOR } = require("../../config.json"); 3 | 4 | exports.help = { 5 | name: "loop", 6 | description: "Loop Your Queue and have fun", 7 | usage: "loop" 8 | } 9 | exports.run = async (client, message, args) => { 10 | let embed = new MessageEmbed() 11 | .setColor(COLOR); 12 | 13 | const { channel } = message.member.voice; 14 | if (!channel) { 15 | //IF AUTHOR IS NOT IN VOICE CHANNEL 16 | embed.setAuthor("YOU NEED TO BE IN VOICE CHANNEL :/") 17 | return message.channel.send(embed); 18 | } 19 | 20 | const serverQueue = message.client.queue.get(message.guild.id); 21 | 22 | if (!serverQueue) { 23 | embed.setAuthor("There is nothing playing that i could loop") 24 | return message.channel.send(embed); 25 | } 26 | 27 | //OOOOF 28 | serverQueue.loop = !serverQueue.loop 29 | 30 | 31 | embed.setDescription(`Loop is now **${serverQueue.loop ? "Enabled" : "Disabled"}**`) 32 | embed.setThumbnail(client.user.displayAvatarURL()) 33 | message.channel.send(embed) 34 | } 35 | 36 | exports.conf = { 37 | aliases: ["lp"], 38 | cooldown: 3 39 | } 40 | -------------------------------------------------------------------------------- /commands/music/resume.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | 3 | const { COLOR } = require("../../config.json"); 4 | 5 | 6 | exports.help = { 7 | name: "resume", 8 | description: "Resume the Cureent Playing Song", 9 | usage: "hy.resume" 10 | } 11 | exports.run = async (client, message, args) => { 12 | let embed = new MessageEmbed() 13 | .setColor(COLOR); 14 | 15 | const { channel } = message.member.voice; 16 | 17 | if (!channel) { 18 | //IF AUTHOR IS NOT IN VOICE CHANNEL 19 | embed.setAuthor("YOU NEED TO BE IN VOICE CHANNEL :/") 20 | return message.channel.send(embed); 21 | } 22 | 23 | const serverQueue = message.client.queue.get(message.guild.id); 24 | if(serverQueue && !serverQueue.playing) { 25 | serverQueue.playing = true; 26 | serverQueue.connection.dispatcher.resume() 27 | embed.setAuthor("✅ | Resumed the Paused Song") 28 | embed.setThumbnail(client.user.displayAvatarURL()) 29 | return message.channel.send(embed) 30 | } 31 | embed.setDescription("There is nothing paused that i can resume") 32 | message.channel.send(embed) 33 | } 34 | 35 | exports.conf = { 36 | aliases: ["rs"], 37 | cooldown: 4 38 | } 39 | -------------------------------------------------------------------------------- /commands/general/avatar.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | exports.run = async (client, message, args) => { 4 | let user; 5 | 6 | if (message.mentions.users.first()) { 7 | user = message.mentions.users.first(); 8 | } else if (args[0]) { 9 | user = message.guild.members.cache.get(args[0]).user; 10 | } else { 11 | user = message.author; 12 | } 13 | 14 | let avatar = user.displayAvatarURL({size: 4096, dynamic: true}); 15 | // 4096 is the new biggest size of the avatar. 16 | // Enabling the dynamic, when the user avatar was animated/GIF, it will result as a GIF format. 17 | // If it's not animated, it will result as a normal image format. 18 | 19 | const embed = new Discord.MessageEmbed() 20 | .setTitle(`${user.tag} avatar`) 21 | .setDescription(`[Avatar URL of ${user.tag}](${avatar})`) 22 | .setColor(0x1d1d1d) 23 | .setImage(avatar) 24 | 25 | return message.channel.send(embed); 26 | } 27 | 28 | exports.help = { 29 | name: "avatar", 30 | description: "Display a user avatar", 31 | usage: "avatar [@user | user ID]", 32 | example: "avatar @ray#1337 \navatar" 33 | } 34 | 35 | exports.conf = { 36 | aliases: ["icon", "pfp", "ava"], 37 | cooldown: 5 38 | } 39 | -------------------------------------------------------------------------------- /commands/music/queue.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | const { COLOR } = require("../../config.json"); 4 | 5 | exports.help = { 6 | name: "queue", 7 | description: "Get all the song name which are in queue", 8 | usage: "queue" 9 | } 10 | exports.run = async (client, message, args) => { 11 | let embed = new MessageEmbed().setColor(COLOR); 12 | const { channel } = message.member.voice; 13 | 14 | if (!channel) { 15 | //IF AUTHOR IS NOT IN VOICE CHANNEL 16 | embed.setAuthor("YOU NEED TO BE IN VOICE CHANNEL :/"); 17 | return message.channel.send(embed); 18 | } 19 | 20 | const serverQueue = message.client.queue.get(message.guild.id); 21 | 22 | if (!serverQueue) { 23 | embed.setAuthor("There is nothing in the queue"); 24 | return message.channel.send(embed); 25 | } 26 | 27 | embed.setDescription( 28 | `${serverQueue.songs 29 | .map((song, index) => index + 1 + ". " + song.title) 30 | .join("\n\n")}`, 31 | { split: true } 32 | ); 33 | embed.setThumbnail(client.user.displayAvatarURL()) 34 | 35 | message.channel.send(embed); 36 | }; 37 | 38 | exports.conf = { 39 | aliases: [""], 40 | cooldown: 3 41 | } 42 | -------------------------------------------------------------------------------- /commands/economy/deposit.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | exports.run = async (client, message, args) => { 5 | let jum = args.join(0); 6 | 7 | 8 | db.subtract(`account.${message.author.id}.balance`, jum); 9 | let bal = db.get(`account.${message.author.id}.balance`) 10 | 11 | if(bal < jum) return message.channel.send("You don't have enough money to put in the bank!") 12 | 13 | let msg = await message.channel.send("Saving money in the Bank... "); 14 | // msg.edits('') 15 | 16 | db.add(`account.${message.author.id}.bank`, jum); 17 | let bankBal = db.get(`account.${message.author.id}.bank`) 18 | // db.add(`account.${message.author.id}.bank`, jum); 19 | setTimeout(() => { 20 | msg.edit(`deposit your money in the bank\n**Amount: ${jum}**`); 21 | message.channel.send(`Now you have **${bankBal}** in your Bank`) 22 | }, 4000) 23 | 24 | // db.set(`account.${message.author.id}.bank`); 25 | 26 | 27 | } 28 | 29 | exports.help = { 30 | name: "deposit", 31 | description: "deposit your Money in Bank", 32 | usage: "deposit ", 33 | example: "mi.deposit 10" 34 | } 35 | 36 | exports.conf = { 37 | aliases: ["dp", "dep"], 38 | cooldown: 2 39 | } 40 | -------------------------------------------------------------------------------- /commands/music/lyrics.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const Color = `RANDOM`; 3 | const Genius = new (require("genius-lyrics")).Client( 4 | "aQwhTLfthLLgV273tZ8K4qYt-5a_sdlVvbrwLAjxcv_iK9S0kC1yI56sV7XCxwX2n1l-74w6L_h2pOQdO2iC0Q" 5 | ); 6 | 7 | exports.run = async (client, message, args) => { 8 | if (!args[0]) return message.channel.send(`Please Give Me A Song Name!`); 9 | 10 | let Name = args.join(" "); 11 | 12 | Genius.tracks.search(Name).then(results => { 13 | const song = results[0]; 14 | song 15 | .lyrics() 16 | .then(lyrics => { 17 | let embed = new MessageEmbed() 18 | .setColor(Color) 19 | .setTitle(`${song.title} Lyrics`) 20 | .setDescription( 21 | lyrics.length > 1900 ? `${lyrics.substr(0, 1900)}...` : lyrics 22 | ) 23 | .setFooter(`Song Creator : ${song.artist.name}`) 24 | .setThumbnail(song.humbnail) 25 | .setTimestamp() 26 | message.say(embed) 27 | }) 28 | .catch(err => message.channel.send(err)) 29 | }); 30 | } 31 | 32 | exports.help = { 33 | name: "lyrics", 34 | description: "Search lyrics" 35 | } 36 | 37 | exports.conf = { 38 | aliases: ["ly"], 39 | cooldown: 5 40 | } -------------------------------------------------------------------------------- /commands/music/pause.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | 3 | const { COLOR } = require("../../config.json"); 4 | 5 | exports.help = { 6 | name: "pause", 7 | description: "Pause the cureent playing Song", 8 | usage: "hy.pause" 9 | } 10 | exports.run = async (client, message, args) => { 11 | const { channel } = message.member.voice; 12 | let embed = new MessageEmbed() 13 | .setColor(COLOR); 14 | 15 | 16 | if (!channel) { 17 | //IF AUTHOR IS NOT IN VOICE CHANNEL 18 | embed.setAuthor("YOU NEED TO BE IN VOICE CHANNEL :/") 19 | return message.channel.send(embed); 20 | } 21 | 22 | 23 | const serverQueue = message.client.queue.get(message.guild.id); 24 | 25 | if (!serverQueue) { 26 | embed.setAuthor("There is nothing playing that i could pause") 27 | return message.channel.send(embed); 28 | } 29 | 30 | if(serverQueue && serverQueue.playing) { 31 | serverQueue.playing = false; 32 | serverQueue.connection.dispatcher.pause(true) 33 | 34 | embed.setDescription("✅ | Paused The Current Playing Song") 35 | embed.setThumbnail(client.user.displayAvatarURL()) 36 | return message.channel.send(embed) 37 | } 38 | } 39 | 40 | exports.conf = { 41 | aliases: ["ps"], 42 | cooldown: 4 43 | } 44 | -------------------------------------------------------------------------------- /commands/fun/emoji.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const { MessageEmbed } = require('discord.js') 3 | const { parse } = require("twemoji-parser"); 4 | const Color = `#ffffff` 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | const emoji = args[0]; 9 | if (!emoji) return message.channel.send(`Please Give Me A Emoji!`); 10 | 11 | let customemoji = Discord.Util.parseEmoji(emoji); 12 | 13 | if (customemoji.id) { 14 | const Link = `https://cdn.discordapp.com/emojis/${customemoji.id}.${ 15 | customemoji.animated ? "gif" : "png" 16 | }`; 17 | 18 | const Added = new MessageEmbed() 19 | .setTitle(`Emoji Converter`) 20 | .setColor(`${Color}`) 21 | .addField('Link:', `[Click Me](${Link})`) 22 | .setImage(Link 23 | ); 24 | return message.channel.send(Added); 25 | } else { 26 | let CheckEmoji = parse(emoji, { assetType: "png" }); 27 | if (!CheckEmoji[0]) 28 | return message.channel.send(`Please Give Me A Valid Emoji!`); 29 | message.channel.send( 30 | `You Can Use Normal Emoji Without Adding In Server!` 31 | ); 32 | } 33 | } 34 | 35 | exports.help = { 36 | name: "emoji", 37 | description: "show Emoji" 38 | } 39 | 40 | exports.conf = { 41 | aliases: ["ej"], 42 | cooldown: 3 43 | } -------------------------------------------------------------------------------- /commands/owner/blacklist.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const config = require("../../config.json"); 3 | const db = require("quick.db"); 4 | 5 | exports.help = { 6 | name: "blacklist", 7 | aliases: ["bl"], 8 | category: "owner", 9 | usage: "blacklist <@user> / blacklist ", 10 | description: "Blacklist somebody from the bot!" 11 | }; 12 | exports.run = async (client, message, args) => { 13 | 14 | if (message.author.id != config.owners[0] && message.author.id != config.owner[1]) 15 | return message.reply("only Owner can use this command!"); 16 | let user = message.mentions.users.first() || args[0]; 17 | let blacklist = await db.fetch(`blacklist.${user.id}`); 18 | 19 | 20 | // let typeUser = typeof user; 21 | db.set(`blacklist.${user.id}`, "Blacklisted"); 22 | if(user.id === client.config.owners[0] || user === client.config.owners[0]) return message.channel.send("You do not Blacklisted a **Owner**") 23 | if(!user.id) { 24 | let embed = new Discord.MessageEmbed() 25 | .setDescription(`${user} has been blacklisted!`); 26 | message.channel.send(embed) 27 | } else { 28 | let embed = new Discord.MessageEmbed() 29 | .setDescription(`${user} has been blacklisted!`); 30 | message.channel.send(embed) 31 | } 32 | 33 | }; 34 | 35 | exports.conf = { 36 | aliases: ["bl"], 37 | cooldown: 3 38 | }; 39 | -------------------------------------------------------------------------------- /commands/util/docs.js: -------------------------------------------------------------------------------- 1 | const qs = require("querystring"); 2 | const SOURCES = ["stable", "master", "rpc", "commando", "akairo", "akairo-master", "11.5-dev"]; 3 | 4 | exports.run = async (client, message, args) => { 5 | if (args.length < 1) return message.channel.send("No query provided"); 6 | let source = SOURCES.includes(args.slice(-1)[0]) ? args.pop() : "stable"; 7 | if (source === "11.5-dev") { 8 | source = `https://raw.githubusercontent.com/discordjs/discord.js/docs/${source}.json`; 9 | } 10 | try { 11 | const queryString = qs.stringify({ src: source, q: args.join(" ") }); 12 | const { body: embed } = await client.snek.get(`https://djsdocs.sorta.moe/v2/embed?${queryString}`); 13 | if (!embed) { 14 | return message.reply("I couldn't find the requested information. Maybe look for something that actually exists the next time!"); 15 | } 16 | return message.channel.send({ embed }); 17 | } catch (e) { 18 | return message.channel.send(`Oh no an error occured :( \`${e.message}\` try again later`); 19 | } 20 | }; 21 | 22 | exports.conf = { 23 | aliases: [], 24 | clientPerm: "", 25 | cooldown: 3, 26 | authorPerm: "EMBED_LINKS" 27 | }; 28 | 29 | exports.help = { 30 | name: "docs", 31 | description: "Search the discord.js documentation", 32 | usage: "docs [version]", 33 | example: "mi.docs voiceConnection" 34 | 35 | }; 36 | -------------------------------------------------------------------------------- /commands/fun/birthday.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { MessageEmbed } = require("discord.js"); 3 | const { Menu } = require('discord.js-menu'); 4 | 5 | exports.run = async (client, message, args) => { 6 | const name = encodeURI(args[0]); 7 | const tnggl = args.slice(1).join(" ").search('-') ? args.slice(1).join(' ') : args.slice(1).join('-'); 8 | 9 | const { body: birth } = await client.snek.get(`https://script.google.com/macros/exec?service=AKfycbw7gKzP-WYV2F5mc9RaR7yE3Ve1yN91Tjs91hp_jHSE02dSv9w&nama=${name}&tanggal=${tnggl}`) 10 | 11 | const { nama, lahir, usia, ultah, zodiak } = birth.data; 12 | 13 | const embed = new MessageEmbed() 14 | .setTitle(nama) 15 | .addFields( 16 | { 17 | name: "Name: ", 18 | value: nama, 19 | inline: false 20 | }, 21 | { 22 | name: "Birthday Date: ", 23 | value: lahir, 24 | inline: false 25 | }, 26 | { 27 | name: "Age: ", 28 | value: usia, 29 | inline: false 30 | }, 31 | { 32 | name: "Zodiak: ", 33 | value: zodiak, 34 | inline: false 35 | } 36 | ) 37 | .setFooter(`Requested By ${message.author.username}`) 38 | 39 | message.say(embed); 40 | } 41 | 42 | exports.help = { 43 | name: "birthday", 44 | description: "Random Batik", 45 | usage: "birthday --", 46 | example: "birthday Syrup 10-8-1997" 47 | } 48 | 49 | exports.conf = { 50 | aliases: ['birth', 'bir'], 51 | cooldown: 5 52 | } -------------------------------------------------------------------------------- /commands/general/snipe.js: -------------------------------------------------------------------------------- 1 | // const Discord = require('discord.js'), 2 | // db = require("quick.db"); 3 | const Discord = require("discord.js"); 4 | const config = require("../../config.json"); 5 | const db = require("quick.db"); 6 | 7 | exports.run = async (client, message, args) => { 8 | /* 9 | let data = db.get(`snipe.${message.guild.id}`); 10 | if (!data) return message.channel.send("I don't see any stored deleted message here."); 11 | 12 | let content = data.content, 13 | user = data.user, 14 | channel = data.channel; 15 | 16 | const embed = new Discord.MessageEmbed() 17 | .setColor("RANDOM") 18 | .setTimestamp() 19 | .setTitle("Sniped Message") 20 | .setDescription(`I got a deleted message from <@${user}> in <#${channel}> \n> ${content}`) 21 | message.channel.send(embed); 22 | */ 23 | 24 | const msg = client.snipes.get(message.channel.id) 25 | if(msg === undefined) return message.channel.send("There are no deleted messages in this channel!") 26 | const embed = new Discord.MessageEmbed() 27 | .setTitle("I got deleted message!") 28 | .setAuthor(`Author: ${msg.author}`) 29 | .setDescription(`Content: \n\`\`\`\n${msg.content}\n\`\`\``) 30 | if(msg.image) embed.setImage(msg.image) 31 | 32 | message.channel.send(embed) 33 | 34 | } 35 | 36 | exports.help = { 37 | name: "snipe", 38 | description: "Shows the last deleted message.", 39 | usage: "snipe", 40 | example: "mi.snipe" 41 | }; 42 | 43 | exports.conf = { 44 | aliases: [], 45 | cooldown: 10 46 | } 47 | -------------------------------------------------------------------------------- /commands/music/drop.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const { COLOR } = require("../../config.json"); 3 | // module.exports = { 4 | // name: "drop", 5 | // description: "Drop The Song From Queue", 6 | // usage: "hy.drop ****" 7 | // } 8 | exports.run = async (client, message, args) => { 9 | let embed = new MessageEmbed().setColor(COLOR); 10 | const { channel } = message.member.voice; 11 | if (!channel) { 12 | embed.setAuthor("YOU ARE NOT IN VOICE CHANNEL"); 13 | return message.channe.send(embed); 14 | } 15 | 16 | const serverQueue = client.queue.get(message.guild.id); 17 | 18 | if (!serverQueue) { 19 | embed.setAuthor("The Queue is empty"); 20 | return message.channel.send(embed); 21 | } 22 | 23 | if(isNaN(args[0])) { 24 | embed.setAuthor("Please Use Numerical Values Only") 25 | return message.channel.send(embed) 26 | } 27 | 28 | if(args[0] > serverQueue.songs.length) { 29 | embed.setAuthor("Unable to find this song") 30 | return message.channel.send(embed) 31 | } 32 | 33 | 34 | serverQueue.songs.splice(args[0] - 1, 1) 35 | embed.setDescription("DROPED THE SONG FROM QUEUE") 36 | embed.setThumbnail(client.user.displayAvatarURL()) 37 | return message.channel.send(embed) 38 | }; 39 | 40 | exports.help = { 41 | name: "drop", 42 | description: "drop song from queue", 43 | usage: "mi.drop " 44 | } 45 | 46 | exports.conf = { 47 | aliases: ["drp"], 48 | cooldown: 3 49 | } 50 | -------------------------------------------------------------------------------- /commands/admin/removemoney.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let user = message.mentions.users.first() 7 | if(!user) user = args[0] 8 | 9 | if (!client.config.owners.includes(message.author.id) || !message.member.hasPermission('ADMINISTRATOR')) return message.reply("you do not have perms to use this command, Only The Owner Of The Bot Have Access") 10 | 11 | if(args[1] === "all") { 12 | let bal = db.get(`account.${user.id}.balance`) 13 | db.subtract(`account.${user.id}.balance, bal`) 14 | 15 | let embed = new Discord.MessageEmbed() 16 | .setDescription(`Succesfully remove all money from <@{user.id}>`) 17 | .setThumbnail(user.displayAvatarURL()) 18 | message.channel.send(embed); 19 | 20 | return; 21 | } 22 | 23 | db.subtract(`account.${user.id}.balance`, args[1]) 24 | if (!args[1]) return message.reply('Please specify an amount to Remove.') 25 | if (message.content.includes('-')) { // if the message includes "-" do this. 26 | return message.channel.send('Negative money can not be Removed.') 27 | } 28 | 29 | message.channel.send('Successfully Removed ' + args[1] + ' to ' + args[0]) 30 | 31 | 32 | 33 | 34 | 35 | 36 | } 37 | 38 | exports.help = { 39 | name: "removemoney", 40 | description: "remove money From Specific User" 41 | } 42 | 43 | exports.conf = { 44 | aliases: ["rm"], 45 | cooldown: 3 46 | } -------------------------------------------------------------------------------- /commands/admin/setnickname.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | exports.run = async (client, message, args) => { 4 | 5 | // You can make a single array to detect the user permissions. 6 | if (!message.member.hasPermission("MANAGE_GUILD")) { 7 | return message.channel.send({embed: {color: "RED", description: "You can't use this command!"}}) 8 | } 9 | 10 | let user = message.mentions.users.first(); // You can mention someone, not only just user. 11 | if (!user) return message.channel.send({embed: {color: "RED", description: "You need to mention the user!"}}); 12 | 13 | if(user.id === message.author.id) { 14 | return message.channel.send({ 15 | embed: { 16 | color: 'RED', 17 | description: 'You cannot change your self' 18 | } 19 | }) 20 | } 21 | 22 | let nick = args.slice(1).join(" "); 23 | if (!nick) return message.channel.send({embed: {color: "RED", description: "You need to input the nickname!"}}); 24 | 25 | let member = message.guild.members.cache.get(user.id); 26 | 27 | await member.setNickname(nick).catch(err => message.channel.send({embed: {color: "RED", description: `Error: ${err}`}})); 28 | return message.channel.send({embed: {color: "GREEN", description: `Successfully changed **${user.tag}** nickname to **${nick}**`}}); 29 | } 30 | 31 | exports.help = { 32 | name: "setnickname", 33 | description: "Set a user nickname.", 34 | usage: "setnickname <@user> ", 35 | example: "mi.setnickname @ray#9999 hoisted" 36 | } 37 | 38 | exports.conf = { 39 | aliases: ["setnick"], 40 | cooldown: 5 41 | } 42 | -------------------------------------------------------------------------------- /commands/dev/dm.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | exports.run = async (client, message, args) => { 4 | if(client.config.owners.includes(message.author.id)) { 5 | 6 | const user = message.mentions.users.first() // || client.users.cache.get(args[0]) 7 | 8 | 9 | // let embed = new Discord.MessageEmbed() 10 | // .setDescription(`Succesfully send DMs to <@${user.id}>`) 11 | // .setThumbnail(`${client.user.displayAvatarURL()}`) 12 | // message.author.send() 13 | try { 14 | if(user) { 15 | let embed = new Discord.MessageEmbed() 16 | .setDescription(`Succesfully send DMs to <@${user.id}>`) 17 | .setThumbnail(`${client.user.displayAvatarURL()}`) 18 | 19 | client.users.cache.get(user.id).send(args.join(" ")) 20 | message.channel.send(embed); 21 | /* 22 | let embed = new Discord.MessageEmbed() 23 | .setDescription(`Succesfully send DMs to <@${user.id}>`) 24 | .setThumbnail(`${client.user.displayAvatarURL()}`) 25 | */ 26 | } else if(!user) { 27 | let embed = new Discord.MessageEmbed() 28 | .setDescription(`Succesfully send DMs to <@${args[0]}>`) 29 | .setThumbnail(`${client.user.displayAvatarURL()}`) 30 | client.users.cache.get(args[0]).send(args.join(" ")) 31 | message.channel.send(embed) 32 | } 33 | } catch (e) { 34 | message.channel.send("Please Mention a user or input with id user", e); 35 | } 36 | } 37 | } 38 | exports.help = { 39 | name: "dm", 40 | description: "Send DMs message" 41 | } 42 | 43 | exports.conf = { 44 | aliases: [], 45 | cooldown: 3 46 | } 47 | 48 | -------------------------------------------------------------------------------- /commands/dev/exec.js: -------------------------------------------------------------------------------- 1 | const { exec } = require("child_process"); 2 | const { MessageEmbed } = require("discord.js"); 3 | const hastebin = require('hastebin-gen'); 4 | 5 | exports.run = (client, msg, args) => { 6 | if (!args.join(" ")) return args.missing(msg, "no code to execute try again", this.help); 7 | const mu = Date.now(); 8 | const command = `\`\`\`bash\n${args.join(" ")}\`\`\``; 9 | const emb = new MessageEmbed() 10 | .setColor("#81FF00") 11 | .addField(" INPUT", command); 12 | exec(args.join(" "), async (error, stdout, stderr) => { 13 | if (stdout) { 14 | let output = `\`\`\`bash\n${stdout}\`\`\``; 15 | if (stdout.length > 1024) { 16 | output = await hastebin(stdout, { extension: 'js' }); 17 | } 18 | emb.addField("📤OUTPUT", output); 19 | } else if (stderr) { 20 | emb.setColor("#FF0000"); 21 | let error = `\`\`\`bash\n${stderr}\`\`\``; 22 | if (stderr.length > 1024) { 23 | error = await client.util.hastebin(stderr); 24 | } 25 | emb.addField(":stop_sign:ERROR", error); 26 | } else { 27 | emb.addField("📤OUPUT", "```bash\n# Command executed successfully but returned no output.```"); 28 | } 29 | return msg.channel.send(emb.setFooter(`⏱️ ${Date.now() - mu}mμ`)); 30 | }); 31 | }; 32 | 33 | exports.conf = { 34 | aliases: ["$", "bash"], 35 | clientPerm: "", 36 | authorPerm: "" 37 | }; 38 | 39 | 40 | exports.help = { 41 | name: "exec", 42 | description: "Executes a command in the Terminal (Linux/macOS) or Command Prompt (Windows) and shows the output", 43 | usage: "exec { 6 | const member = 7 | message.mentions.users.first() || 8 | message.guild.members.cache.find(x => x.name === `${args.join(" ")}`) || 9 | message.author; 10 | try { 11 | if (message.mentions.users.first()) { 12 | const embed = new MessageEmbed() 13 | .setColor(`${Color}`) 14 | .setTitle(`User ID`) 15 | .addField(`Full Username`, member.tag, true) 16 | .addField(`ID`, member.id, true) 17 | .addField(`Show with Mentions`, true) 18 | .setFooter(`tysm for using Me ${message.author.username}!`) 19 | .setThumbnail(`${member.displayAvatarURL()}`) 20 | .setTimestamp(); 21 | 22 | message.channel.send(embed); 23 | } else { 24 | const id = args[0] 25 | const embed = new MessageEmbed() 26 | .setColor(`${Color}`) 27 | .setTitle(`User ID`) 28 | .addField(`Full Username`, member.tag, true) 29 | .addField(`ID`, member.id, true) 30 | .addField(`Show with ID`) 31 | .setFooter(`requested by <@${message.author.tag}>`) 32 | .setTimestamp(); 33 | 34 | message.channel.send(embed); 35 | } 36 | } catch (e) { 37 | 38 | } 39 | } 40 | 41 | exports.help = { 42 | name: "userid", 43 | description: "Show userid from user", 44 | usage: "userid @Mioun", 45 | example: `mi.userid @Mioun or use id user 46 | because sometimes someone does not like if exposed to mentions` 47 | } 48 | 49 | exports.conf = { 50 | aliases: ["ui"], 51 | cooldown: 3 52 | } -------------------------------------------------------------------------------- /commands/music/jump.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | const { COLOR } = require("../../config.json"); 3 | 4 | exports.help = { 5 | name: "jump", 6 | description: "Jump to any song you like" 7 | } 8 | usage: "jump ", 9 | exports.run = async (client, message, args) => { 10 | 11 | let embed = new MessageEmbed() 12 | .setColor(COLOR); 13 | 14 | const { channel } = message.member.voice; 15 | if (!channel) { 16 | //IF AUTHOR IS NOT IN VOICE CHANNEL 17 | embed.setAuthor("YOU NEED TO BE IN VOICE CHANNEL :/") 18 | return message.channel.send(embed); 19 | } 20 | 21 | const serverQueue = message.client.queue.get(message.guild.id); 22 | 23 | if (!serverQueue) { 24 | embed.setAuthor("There is nothing playing that i could loop") 25 | return message.channel.send(embed); 26 | } 27 | if(!args[0]) { 28 | embed.setAuthor(`Please Give The Song Number`) 29 | return message.channel.send(embed) 30 | } 31 | 32 | if(isNaN(args[0])) { 33 | embed.setAuthor("Please Use Numerical Values Only") 34 | return message.channel.send(embed) 35 | } 36 | 37 | if(serverQueue.songs.length < args[0]) { 38 | embed.setAuthor("Unable To Find This Song in Queue") 39 | return message.channel.send(embed) 40 | } 41 | serverQueue.songs.splice(0, Math.floor(args[0] - 1)) 42 | serverQueue.connection.dispatcher.end() 43 | 44 | embed.setDescription(`JUMPED TO THE SONG NUMBER - ${args[0]}`) 45 | message.channel.send(embed) 46 | } 47 | 48 | exports.conf = { 49 | aliases: [""], 50 | cooldown: 4 51 | } 52 | -------------------------------------------------------------------------------- /commands/admin/stealemoji.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | exports.run = async (client, message, args) => { 4 | if (!msg.member.hasPermission(`MANAGE_EMOJIS`)) { 5 | return msg.channel.send(`You Don't Have Permission To Use This Command! Manage Emojis`) 6 | } 7 | 8 | const emoji = args[1]; 9 | if (!emoji) return msg.channel.send(`Please Give Me A Emoji!`); 10 | 11 | 12 | let customemoji = Discord.Util.parseEmoji(emoji); 13 | const Color = `RANDOM`; 14 | 15 | 16 | const Link = `${args[1]}`; 17 | const name = args.slice(2).join(" "); 18 | 19 | if(!name) return msg.reply(`Correct usage is ${PREFIX}stealemoji Link name`) 20 | 21 | 22 | let CheckEmoji = parse(emoji, { assetType: "png" }); 23 | if (!CheckEmoji[1]) 24 | return msg.channel.send("give me a name of emoji!"); 25 | msg.channel.send( 26 | `You Can Use Normal Emoji Without Adding In Server!` 27 | ); 28 | 29 | 30 | msg.guild.emojis.create( 31 | `${Link}`, 32 | `${name || `${customemoji.name}`}` 33 | ); 34 | const Added = new Discord.MessageEmbed() 35 | .setTitle(`Emoji Added`) 36 | .setColor(`${Color}`) 37 | .setDescription( 38 | `Emoji Has Been Added! | Name : ${name || `${customemoji.name}`} | Preview : [Click Me](${Link})` 39 | ); 40 | return msg.channel.send(Added); 41 | } 42 | 43 | exports.help = { 44 | name: "stealemoji", 45 | description: "add emoji for this guild", 46 | usage: "stealemoji ", 47 | example: "stealemoji https://example.com/example.png example" 48 | } 49 | 50 | exports.conf = { 51 | aliases: ["addemoji"], 52 | cooldown: 3 53 | } -------------------------------------------------------------------------------- /commands/admin/kick.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | 3 | exports.run = async (client, message, args) => { 4 | let user = message.mentions.users.first(); 5 | let reasonkick = message.content.split(' ').slice(2).join(' '); 6 | let guild = message.guild; 7 | let memberkick = message.guild.member; 8 | 9 | if(!message.member.hasPermission("KICK_MEMBERS")) return message.channel.send(`You Require \`KICK MEMBER\` Permission to Execute this Command`) 10 | 11 | if (message.mentions.users.size < 1) { 12 | return message.channel.send('You need to mention someone to kick!'); 13 | } 14 | 15 | if (!reasonkick) { 16 | reasonkick = "No Reason Given" 17 | } 18 | 19 | if (!message.guild.member(user).kickable) { 20 | return message.channel.send("That Member couldn't be kicked due to role hierarchy"); 21 | } 22 | 23 | message.guild.member(user).kick(); 24 | 25 | let embed = new Discord.MessageEmbed() 26 | .setTitle("User Was Successfully Kicked") 27 | .setDescription(`${user.username}#${user.discriminator} was kicked by ${message.author.username}`) 28 | .addField(`Reason :-`, `${reasonkick}`) 29 | .setColor("RANDOM") 30 | message.channel.send(embed) 31 | 32 | let DmEmbed = new Discord.MessageEmbed() 33 | .setDescription(`You were Kicked from ${guild} for: ${reasonkick}`) 34 | .setColor("RANDOM") 35 | user.send(DmEmbed) 36 | } 37 | 38 | exports.help = { 39 | name: "kick", 40 | description: "Kick someone", 41 | usage: "kick @Mioun Not read rules", 42 | example: "mi.kick @Mioun Not read Rules" 43 | } 44 | 45 | exports.conf = { 46 | aliases: ["k"], 47 | cooldown: 3 48 | } -------------------------------------------------------------------------------- /commands/economy/daily.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const db = require("quick.db"); 3 | let ms = require("parse-ms"); 4 | 5 | exports.run = async (client, message, args) => { 6 | let pad_zero = num => (num < 10 ? '0' : '') + num; 7 | let cooldown = 8.64e+7; // 24 Hours in ms. 8 | let amount = 500; // How much user will get it in their dailies. 9 | 10 | let lastDaily = await db.get(`lastDaily.${message.author.id}`); 11 | let buck = await db.get(`account.${message.author.id}.balance`); 12 | 13 | try { 14 | 15 | if (lastDaily !== null && cooldown - (Date.now() - lastDaily) > 0) { 16 | let timeObj = ms(cooldown - (Date.now() - lastDaily)); 17 | 18 | let hours = pad_zero(timeObj.hours).padStart(2, "0"), 19 | mins = pad_zero(timeObj.minutes).padStart(2, "0"), 20 | secs = pad_zero(timeObj.seconds).padStart(2, "0"); 21 | 22 | let finalTime = `**${hours}:${mins}:${secs}**`; 23 | return message.channel.send(`Sorry, you cannot collect your dailies too early. Please wait until ${finalTime}.`); 24 | } else { 25 | db.set(`lastDaily.${message.author.id}`, Date.now()); 26 | db.add(`account.${message.author.id}.balance`, amount); 27 | return message.channel.send(`Great **${message.author.tag}!** You've been received 500 dollars!`); 28 | } 29 | 30 | } catch (error) { 31 | console.log(error); 32 | return message.channel.send(`Oopsie, unknown error I guess: ${error}`); 33 | } 34 | } 35 | 36 | exports.help = { 37 | name: "daily", 38 | description: "Collect the daily credits." 39 | } 40 | 41 | exports.conf = { 42 | aliases: ["dailies"], 43 | cooldown: 10 44 | } 45 | -------------------------------------------------------------------------------- /commands/admin/slowmode.js: -------------------------------------------------------------------------------- 1 | const ms = require("ms"); 2 | 3 | exports.run = async (client, message, args) => { 4 | if (!message.member.permissions.any(["ADMINISTRATOR", "MANAGE_CHANNELS"])) { 5 | return message.channel.send("Oopsie, you don't have any rights to do this."); 6 | } 7 | 8 | let channel = message.mentions.channels.first(), 9 | time = args.slice(1).join(" "); 10 | 11 | if (!channel) time = args.join(" "), channel = message.channel; 12 | // If the user doesn't includes the channel. 13 | 14 | if (message.flags[0] === "off") { 15 | channel.setRateLimitPerUser(0); 16 | return message.channel.send(`<#${channel.id}> slowmode has been deactivated.`); 17 | } 18 | 19 | if (!time) return message.channel.send("Please includes the time format."); 20 | 21 | let convert = ms(time); // This will results the milliseconds. 22 | let toSecond = Math.floor(convert / 1000); // This will convert the ms to s. (seconds) 23 | 24 | if (!toSecond || toSecond == undefined) return message.channel.send("Please insert the valid time format!"); 25 | 26 | if (toSecond > 21600) return message.channel.send("Timer should be less than or equal to 6 hours."); 27 | else if (toSecond < 1) return message.channel.send("Timer should be more than or equal to 1 second."); 28 | 29 | await channel.setRateLimitPerUser(toSecond); 30 | return message.channel.send(`This channel: <#${channel.id}> has been slowing down for **${ms(ms(time), {long: true})}**.`); 31 | } 32 | 33 | exports.help = { 34 | name: "slowmode", 35 | description: "Slowing down the channel.", 36 | usage: "slowmode [channel]