Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const {bot} = require(`../index`)
- const discord = require("discord.js");
- const botconfig = require("../botconfig.json");
- const fs = require("fs");
- const active = new Map();
- const giveaways = require("discord-giveaways");
- var botEmbed2 = new discord.RichEmbed()
- .setDescription("Welkom in onze discord server! Speel jij Minetopia? Ga dan naar beneden in dit bericht. Dan krijg je nog veel meer channels te zien! ")
- .addBlankField()
- .addField("Wilt u het help menu over de status van de winkels bekijken?", "Doe dan `?help winkels`")
- .addField("Wilt u alle fun commands bekijken?", " Doe dan `?help fun`")
- .addField("Wilt u alle informatie over DahRealBot weten?", "Doe dan `?help bot`")
- .addField("Wilt u de overige help pagina bekijken?", " Doe dan `?help overig`")
- .addField("Wilt u de regels bekijken?", " Doe dan `?help regels`")
- .addBlankField()
- .addField("De regels van de DahRealCompany discord kunt u hieronder lezen:", "**Regel 1**\nHeb respect voor elkaar\n**Regel 2**\nGeen 18+ content\n**Regel 3**\nHoud het taalgebruik een beetje normaal\n**Regel 4**\nMaak gebruik van de channels waarvoor ze zijn\n**Regel 5**\nGeen reclame maken. Dit geldt ook voor pm reclame\n**Regel 6**\nGeen onnodige tags")
- .addBlankField()
- .addField("Ik heb een vraag?", "Vraag gerust een medewerker of iemand anders om hulp!")
- .addField("Rankjes", ":house: - Minetopia speler\n \n :video_game: - Extra channels zoals akinator en coinmaster.\n \n:loudspeaker: - Tags krijgen bij Discord meldingen.\n \n:exclamation: - Tags krijgen bij Minetopia meldingen.")
- .setColor("#56f442")
- .setImage("https://i.imgur.com/Uhq5ysn.png")
- .setTimestamp()
- .setFooter(`DahRealCompany`, "https://i.imgur.com/yxwWfOv.png");
- const yourID = "440521349278990336"; //Instructions on how to get this: https://redd.it/40zgse
- const setupCMD = "!createrolemessage";
- const initialMessage = `**React to the messages below to receive the associated role. If you would like to remove the role, simply remove your reaction!**`;
- const embedMessage = `
- Welkom in onze discord server! Speel jij Minetopia? Ga dan naar beneden in dit bericht. Dan krijg je nog veel meer channels te zien!
- `;
- const embedFooter = (`DahRealCompany`, "https://i.imgur.com/yxwWfOv.png"); // Must set this if "embed" is set to true
- const roles = ["🏠 Minetopia", "☺ Fun Bots", "📣Discord Notification", "📣Minetopia Notification", "☺ Fun Chats", "🗯Extra Chats"];
- const rolesn = ["Druk om het ðŸ als jij minetopia speelt", "Druk op het 🎮 als jij toegang wil tot de fun channels!", "Druk op de 📣 als jij tags wil ontvangen bij medelingen over de discord!", "Druk op de â— als jij tags wil ontvangen bij medelingen over minetopia!"];
- const reactions = ["🏠", "🤖", "📣", "❗", "☺", "🗯"]; // For custom emojis, provide the name of the emoji
- const embed = true; // Set to "true" if you want all roles to be in a single embed
- const embedColor = "#56f442"; // Set the embed color if the "embed" variable is set to true
- const embedThumbnail = false; // Set to "true" if you want to set a thumbnail in the embed
- const embedThumbnailLink = "https://i.imgur.com/P8PD7DD.png"; // The link for the embed thumbnail
- /**
- * You'll have to set this up yourself! Read more below:
- *
- * https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token
- */
- // Import constructords and login the client
- // If there isn't a reaction for every role, scold the user!
- if (roles.length !== reactions.length) throw "Roles list and reactions list are not the same length!";
- // Function to generate the role messages, based on your settings
- function generateMessages() {
- let messages = [];
- for (const role of roles) messages.push({ role, message: `React below to get the **"${f.role}"** role!` }); //DONT CHANGE THIS
- return messages;
- }
- // Function to generate the embed fields, based on your settings and if you set "const embed = true;"
- function generateEmbedFields() {
- return roles.map((r, e) => {
- return {
- emoji: reactions[e],
- role: r,
- hoi: rolesn[e]
- };
- });
- }
- function checkRole(guild, role) {
- const checkRole = guild.roles.find(r => r.name === role);
- if (checkRole) return true;
- else return false;
- }
- // bot events to let you know if the bot is online and to handle any Discord.js errors
- bot.on("ready", () => console.log("Bot is online!"));
- bot.on('error', console.error);
- // Handles the creation of the role reactions. Will either send the role messages separately or in an embed
- bot.on("message", message => {
- if (message.author.id == yourID && message.content.toLowerCase() == setupCMD) {
- if (!embed) {
- if (!initialMessage) throw "The 'initialMessage' property is not set. Please do this!";
- message.channel.send(initialMessage);
- const messages = generateMessages();
- messages.forEach((obj, react) => {
- if (!checkRole(message.guild, obj.role)) throw `The role '${obj.role}' does not exist!`;
- message.channel.send(obj.message).then(async m => {
- const emoji = reactions[react];
- const customEmote = bot.emojis.find(e => e.name === emoji);
- if (!customEmote) await m.react(emoji);
- else await m.react(customEmote.id);
- });
- });
- } else {
- if (!embedMessage) throw "The 'embedMessage' property is not set. Please do this!";
- if (!embedFooter) throw "The 'embedFooter' property is not set. Please do this!";
- const roleEmbed = new discord.RichEmbed()
- .setTitle("Welkom in de discord server van DahRealCompany & More")
- .setDescription("Welkom in onze discord server! Speel jij Minetopia? Ga dan naar beneden in dit bericht. Dan krijg je nog veel meer channels te zien! ")
- .addBlankField()
- .addField("Wilt u het help menu over de status van de winkels bekijken?", "Doe dan `?help winkels`")
- .addField("Wilt u alle fun commands bekijken?", " Doe dan `?help fun`")
- .addField("Wilt u alle informatie over DahRealBot weten?", "Doe dan `?help bot`")
- .addField("Wilt u de overige help pagina bekijken?", " Doe dan `?help overig`")
- .addField("Wilt u de regels bekijken?", " Doe dan `?help regels`")
- .addBlankField()
- .addField("De regels van de DahRealCompany discord kunt u hieronder lezen:", "**Regel 1**\nHeb respect voor elkaar\n**Regel 2**\nGeen 18+ content\n**Regel 3**\nHoud het taalgebruik een beetje normaal\n**Regel 4**\nMaak gebruik van de channels waarvoor ze zijn\n**Regel 5**\nGeen reclame maken. Dit geldt ook voor pm reclame\n**Regel 6**\nGeen onnodige tags")
- .addBlankField()
- .addField("Ik heb een vraag?", "Vraag gerust een medewerker of iemand anders om hulp!")
- .addBlankField()
- .setColor("#56f442")
- .setImage("https://i.imgur.com/Uhq5ysn.png")
- .setTimestamp()
- .setFooter(`DahRealCompany`, "https://i.imgur.com/yxwWfOv.png");
- if (embedColor) roleEmbed.setColor(embedColor);
- if (embedThumbnail) roleEmbed.setThumbnail(embedThumbnailLink);
- const fields = generateEmbedFields();
- if (fields.length >= 25) throw "That maximum roles that can be set for an embed is 25!";
- for (const f of fields) {
- if (!checkRole(message.guild, f.role)) throw `The role '${f.role}' does not exist!`;
- const emoji = f.emoji;
- const customEmote = bot.emojis.find(e => e.name === emoji);
- if (!customEmote) roleEmbed.addField("Druk op " + emoji + " om de volgende rank te ontvangen:", f.role, true);
- else roleEmbed.addField(customEmote, f.role, true);
- }
- message.channel.send(roleEmbed).then(async m => {
- for (const r of reactions) {
- const emoji = r;
- const customEmote = bot.emojis.find(e => e.name === emoji);
- if (!customEmote) await m.react(emoji);
- else await m.react(customEmote.id);
- }
- });
- }
- }
- });
- // This makes the events used a bit more readable
- const events = {
- MESSAGE_REACTION_ADD: 'messageReactionAdd',
- MESSAGE_REACTION_REMOVE: 'messageReactionRemove',
- };
- // This event handles adding/removing users from the role(s) they chose
- bot.on('raw', async event => {
- if (!events.hasOwnProperty(event.t)) return;
- const { d: data } = event;
- const user = bot.users.get(data.user_id);
- const channel = bot.channels.get(data.channel_id);
- const message = await channel.fetchMessage(data.message_id);
- const member = message.guild.members.get(user.id);
- const emojiKey = (data.emoji.id) ? `${data.emoji.name}:${data.emoji.id}` : data.emoji.name;
- let reaction = message.reactions.get(emojiKey);
- if (!reaction) {
- // Create an object that can be passed through the event like normal
- const emoji = new Emoji(bot.guilds.get(data.guild_id), data.emoji);
- reaction = new MessageReaction(message, emoji, 1, data.user_id === bot.user.id);
- }
- let embedFooterText;
- if (message.embeds[0]) embedFooterText = message.embeds[0].footer.text;
- if (message.author.id === bot.user.id && (message.content !== initialMessage || (message.embeds[0] && (embedFooterText !== embedFooter)))) {
- if (!embed) {
- const re = `\\*\\*"(.+)?(?="\\*\\*)`;
- const role = message.content.match(re)[1];
- if (member.id !== bot.user.id) {
- const roleObj = message.guild.roles.find(r => r.name === role);
- if (event.t === "MESSAGE_REACTION_ADD") {
- member.addRole(roleObj.id);
- } else {
- member.removeRole(roleObj.id);
- }
- }
- } else {
- const fields = message.embeds[0].fields;
- for (let i = 0; i < fields.length; i++) {
- if (member.id !== bot.user.id) {
- const role = message.guild.roles.find(r => r.name === fields[i].value);
- if ((fields[i].name === "Druk op " + reaction.emoji.name + " om de volgende rank te ontvangen:") || (fields[i].name === reaction.emoji.toString())) {
- if (event.t === "MESSAGE_REACTION_ADD") {
- member.addRole(role.id);
- break;
- } else {
- member.removeRole(role.id);
- break;
- }
- }
- }
- }
- }
- }
- });
- process.on('unhandledRejection', err => {
- let msg = err.stack.replace(new RegExp(`${__dirname}/`, 'g'), './');
- console.error(`Unhandled Rejection: \n ${msg}`);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement