const Discord = require ('discord.js');
const client = new Discord.Client();
const settings = require ('./settings.json');
const moment = require ('moment');
const { prefix } = require('./settings.json');
const os = require('os');
const arch = os.arch()
let uptime = process.uptime();
const Unit = ['', 'K', 'M', 'G', 'T', 'P'];
const BytesToSize = (input, precision) => {
let index = Math.floor(Math.log(input) / Math.log(1024));
if (Unit >= Unit.length) return input + ' B';
return (input / Math.pow(1024, index)).toFixed(precision) + ' ' + Unit[index] + 'B';
};
client.on('ready', () => {
console.log(`${client.user.username} is nu online!`);
client.user.setStatus("ONLINE")
client.user.setActivity("Mistyservices", {type: "WACHTING"});
});
client.on("message", message => {
if(message.content.toLowerCase().startsWith(prefix + "makers")) {
let maker = new Discord.RichEmbed()
.setColor("#FE642E")
.setTitle("Makers")
.addField("Sundeep#0001", "Gemaakt in AtomEditor")
.setFooter(`Alle rechten voorbehouden Â©ï¸ Mistyservices â„¢ 2018`)
message.channel.send(maker)
}
if(message.content.toLowerCase().startsWith(prefix + "botinfo")) {
message.delete()
let MemoryUsing = BytesToSize(process.memoryUsage().rss, 3);
let totalSeconds = process.uptime();
let realTotalSecs = Math.floor(totalSeconds % 60);
let days = Math.floor((totalSeconds % 31536000) / 86400);
let hours = Math.floor((totalSeconds / 3600) % 24);
let mins = Math.floor((totalSeconds / 60) % 60);
let embed = new Discord.RichEmbed()
.setDescription("Bot Informatie")
.setColor("#FE642E")
.addField("Naam van de bot:", `${client.user.username}`)
.addField("Ping", `${client.pings[0]}ms`)
.addField("Spelers:", `${client.users.size}`)
.addField("Mensen", message.guild.memberCount > message.guild.members.filter(m => m.user.bot).size, true)
.addField("Bots", message.guild.members.filter(m => m.user.bot).size, true)
.addField("Kanalen:", `${client.channels.size}`)
.addField("Geheugen gebruikt:", `${MemoryUsing}` )
.addField("Online tijd",`Dagen: ${days} | Uren: ${hours} | Minuten: ${mins} | Seconden: ${realTotalSecs}`)
.setFooter(`Alle rechten voorbehouden Â©ï¸ Mistyservices â„¢ 2018`,)
message.channel.send({embed});
}
if(message.content.toLowerCase().startsWith(prefix + "botinfo")) {
}
});
let attempts = (0)
client.on ('message', async function (message) {
const args = message.content.slice(prefix.length).trim().split(/ +/g);
let Onderwerp = message.content.slice(prefix.length + args[0].length)
if (message.author.bot) return;
if (!message.content.startsWith(prefix)) return;
if (args[0] === "open" || args[0] === "new"|| args[0] === "ticket") {
message.delete()
if (!args[1]) return message.reply("Gebruik: `!ticket <vraag>`, Misbruiken is BAN!");
let ticketchannel = await message.guild.createChannel(`ticket>${message.author.username}`, "text",
[{
type: 'role',
id: message.guild.id,
deny: 523328
},
{
type: 'role',
id: '452561074424774668',
allow:384064
},
{
type: 'member',
id: message.member.id,
allow: 101440
}]);
let user = message.author;
let ticketemb = new Discord.RichEmbed()
.setFooter(`Je kan deze ticket beoordelen door !rate te typen`)
.setColor("#FE642E")
.setThumbnail(message.guild.iconURL)
.setDescription(`Hallo **${message.author.username}**,\n\nBedankt voor het openen van deze ticket!\nEen staffmember zal u zo snel mogelijk verhelpen en uw ticket afronden.`)
.addField("Aangemaakt door", `${user}`)
.addField("vraag", `${Onderwerp}`)
ticketchannel.send(ticketemb);
let messagechannelid = message.channel.id
let embedje = new Discord.RichEmbed().setTitle("Ticket").setColor("#FE642E").setDescription(`**Je hebt succesvol een ticket aangemaakt**\n**Kanaal:** ${ticketchannel}`)
message.guild.channels.find("id",`${messagechannelid}`).send(embedje);
} else if (args[0] === "sluit") {
if (!message.channel.name.startsWith("ticket")) return message.channel.send("Dit kanaal is geen ticket!");
if (attempts == 1) {
message.channel.delete();
attempts = 0;
return;
}
message.channel.send("Weet je zeker dat je deze ticket wilt verwijderen? Type dan nogmaals `!sluit`");
attempts = 1;
} else if (args[0] === "klaar") {
message.delete()
if (!message.channel.name.startsWith("ticket")) return message.channel.send("Dit kanaal is geen ticket!");
if (attempts == 1) {
message.channel.send("Deze ticket is nu `Afgerond`")
attempts = 0;
return;
}
message.channel.send("Weet je zeker dat je deze ticket klaar is? Type dan nogmaals `!klaar`");
attempts = 1;
} else if (args[0] === "rename") {
message.delete()
let rename = message.content.slice(prefix.length + args[0].length)
if (!message.channel.name.startsWith("ticket")) return message.channel.send("Dit kanaal is geen ticket!");
if (!args[1]) return message.channel.send("Geef een geldige naam op!");
message.channel.setName(`ticket>${rename}`);
message.channel.send(`Je hebt succesvol de naam van deze ticket veranderd naar: ticket>${args[1].toLowerCase()}`)
} else if (args[0] === "rate") {
message.delete()
let ratings = message.guild.channels.find("name", "recensies");
if (!args[1]) return message.channel.send("Voer een mening in (goed/gemiddeld/slecht)");
if (!message.channel.name.startsWith("ticket")) return message.channel.send("Dit kanaal is geen ticket!");
if (args[1].toLowerCase() === "goed") return message.channel.send(`${message.member.user.username} vind dit ticket ***goed***`).then(client.channels.get('467322604475252746').send(`**${message.member.user.username}** gaf voor zijn/haar support ticket een ***goed***`))
else if (args[1].toLowerCase() === "gemiddeld") return message.channel.send(`${message.member.user.username} vind dit ticket ***gemiddeld***`).then(client.channels.get('467322604475252746').send(`**${message.member.user.username}** gaf voor zijn/haar support ticket een ***gemiddeld***`))
else if (args[1].toLowerCase() === "slecht") return message.channel.send(`${message.member.user.username} vind dit ticket ***slecht***`).then(client.channels.get('467322604475252746').send(`**${message.member.user.username}** gaf voor zijn/haar support ticket een ***slecht***`))
else return message.channel.send("Kies uit goed/gemiddeld/slecht!");
} else if (args[0] === "help-ticket") {
message.delete()
tickethelpemb = new Discord.RichEmbed()
.setColor("#FE642E")
.setThumbnail(message.guild.iconURL)
.setFooter(`Alle rechten voorbehouden Â©ï¸ Mistyservices â„¢ 2018`)
.setTitle("Hulp Menu")
.setDescription("Alle commando's van de Mistyservices Bot!")
.addField("Default", "!help | Het menu waar je nu inzit.\n!botinfo | Krijg informatie over de bot.\n!memberinfo <gebruiker> | Krijg informatie over een persoon.\n!makers | Laat de makers van de bot zien.")
.addField("tickets", "!ticket | Open een ticket.\n!sluit| Sluit een ticket.\n!rename <naam> | Hernoem een ticket.\n!rate <goed/gemiddeld/slecht> | Geef feedback aan je ticket. ")
message.channel.send(tickethelpemb);
}
});
client.on("message", message =>{
if (message.content.toLowerCase().startsWith(prefix + "memberinfo")) {
message.delete()
let user;
if (message.mentions.users.first()) {
user = message.mentions.users.first();
} else {
user = message.author;
}
const member = message.guild.member(user);
const embed = new Discord.RichEmbed()
.setColor('#FE642E')
.setThumbnail(user.avatarURL)
.setTitle(`${user.username}#${user.discriminator}`)
.addField("ID:", `${user.id}`, true)
.addField("Nickname:", `${member.nickname !== null ? `${member.nickname}` : 'Geen'}`, true)
.addField("Account gemaakt op:", `${moment.utc(user.createdAt).format('dddd, MMMM Do YYYY, HH:mm:ss')}`, true)
.addField("Server gejoined:", `${moment.utc(member.joinedAt).format('dddd, MMMM Do YYYY, HH:mm:ss')}`, true)
.addField("Status:", `${user.presence.status}`, true)
.addField("Spel:", `${user.presence.game ? user.presence.game.name : 'Geen'}`, true)
.addField("Rollen:", member.roles.map(roles => `${roles.name}`).join(', '), true)
.setFooter(`Antwoord op: ${message.author.username}#${message.author.discriminator}`)
message.channel.send({embed});
}});
client.login(settings.token);