Skip to content

Commit

Permalink
Begin work on reaction roles
Browse files Browse the repository at this point in the history
  • Loading branch information
Derek committed Aug 13, 2021
1 parent bca2f5d commit 202de4d
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 0 deletions.
7 changes: 7 additions & 0 deletions bot.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ if (process.env.PREBOOT) eval(process.env.PREBOOT); // Execute anything in the p
// Define NPM modules
const Discord = require("discord.js");
const Enmap = require("enmap");
const {
ReactionRole
} = require("reaction-role");

// Define client
const client = new Discord.Client({
Expand Down Expand Up @@ -113,6 +116,7 @@ client.levelCache = {};
client.logger = require("./modules/logger");
client.config = require("./config");
client.errors = require("./modules/errors");

require("./modules/commands")(client); // Import command module
require("./modules/events")(client); // Import events module
require("./modules/_functions")(client); // Import functions
Expand All @@ -133,4 +137,7 @@ for (let i = 0; i <= 1500; i++) {
client.login(process.env.BOT_TOKEN);
console.log("Logged into Discord API!");

const ReactionRoles = new ReactionRole(process.env.BOT_TOKEN, process.env.MONGODB_URI);
ReactionRoles.init();

module.exports = client;
43 changes: 43 additions & 0 deletions commands/reactionrole.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
exports.run = async (client, message, args, level) => {
const language = client.getSettings(message.guild.id).language
const lang = require("../lib/languages/" + language + ".json")

const {
ReactionRole
} = require("reaction-role");

try {
const emoji = args[0]
const role = args[1]
const channel = args[2]
const msg = args[3]
const add = args[4]
const remove = args[5]

const rr = new ReactionRole(process.env.BOT_TOKEN, process.env.MONGODB_URI);
const c = await rr.channels.fetch(channel);
const m = await c.messages.fetch(msg);
await m.react(emoji);

const option = rr.createOption(emoji, [role], add, remove);
await rr.createMessage(channel, msg, 1, option);
message.reply("created!");
} catch (err) {
const errors = require('../modules/errors.js')
errors.embedError(err, lang, message)
}
}

exports.conf = {
enabled: true,
aliases: ['rr'],
guildOnly: false,
permLevel: 'User'
}

exports.help = {
name: 'reactionrole',
category: 'Utility',
description: 'Gives a role to a user when they react to a message.',
usage: 'reactionrole <reaction> <role> <message ID>'
}
18 changes: 18 additions & 0 deletions modules/reactionRoles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const fs = require("fs");
const Discord = require("discord.js");
const colors = require("../lib/colors.json");

const client = new ReactionRole(process.env.BOT_TOKEN, process.env.MONGODB_URI);

module.exports = (client, message) => {
if (message.author.bot) return;
if (!message.guild) return;
if (message.channel.type === `dm`) return;

const c = await client.channels.fetch(channel);
const m = await c.messages.fetch(msg);
await m.react(emoji);
const option = client.createOption(emoji, [role], add, remove);
await client.createMessage(channel, msg, 1, option);
message.reply("created!");
};

0 comments on commit 202de4d

Please sign in to comment.