From d281996b44cef87666b886db93286cc68520bc5a Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Thu, 4 Jun 2020 02:45:05 +0300 Subject: [PATCH] roles: mention role and user in success messages --- backend/src/plugins/Roles.ts | 43 ++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/backend/src/plugins/Roles.ts b/backend/src/plugins/Roles.ts index 6fc1d601..0b852218 100644 --- a/backend/src/plugins/Roles.ts +++ b/backend/src/plugins/Roles.ts @@ -1,6 +1,6 @@ import { trimPluginDescription, ZeppelinPlugin } from "./ZeppelinPlugin"; import * as t from "io-ts"; -import { resolveMember, stripObjectToScalars, successMessage } from "../utils"; +import { resolveMember, stripObjectToScalars, successMessage, verboseUserMention } from "../utils"; import { decorators as d, IPluginOptions, logger } from "knub"; import { GuildChannel, Member, Message } from "eris"; import { GuildLogs } from "../data/GuildLogs"; @@ -100,7 +100,7 @@ export class RolesPlugin extends ZeppelinPlugin { mod: stripObjectToScalars(msg.author), }); - this.sendSuccessMessage(msg.channel, "Role added to user!"); + this.sendSuccessMessage(msg.channel, `Added role **${role.name}** to ${verboseUserMention(args.member.user)}!`); } @d.command("massaddrole", " ") @@ -129,19 +129,30 @@ export class RolesPlugin extends ZeppelinPlugin { if (!roleId) { return this.sendErrorMessage(msg.channel, "Invalid role id"); } - const role = this.guild.roles.get(roleId); const config = this.getConfigForMsg(msg); if (!config.assignable_roles.includes(roleId)) { return this.sendErrorMessage(msg.channel, "You cannot assign that role"); } + const role = this.guild.roles.get(roleId); + if (!role) { + this.logs.log(LogType.BOT_ALERT, { + body: `Unknown role configured for 'roles' plugin: ${roleId}`, + }); + return this.sendErrorMessage(msg.channel, "You cannot assign that role"); + } + const membersWithoutTheRole = members.filter(m => !m.roles.includes(roleId)); let assigned = 0; const failed = []; const alreadyHadRole = members.length - membersWithoutTheRole.length; - msg.channel.createMessage(`Adding role to specified members...`); + msg.channel.createMessage( + `Adding role **${role.name}** to ${membersWithoutTheRole.length} ${ + membersWithoutTheRole.length === 1 ? "member" : "members" + }...`, + ); for (const member of membersWithoutTheRole) { try { @@ -159,7 +170,7 @@ export class RolesPlugin extends ZeppelinPlugin { } } - let resultMessage = `Role added to ${assigned} ${assigned === 1 ? "member" : "members"}!`; + let resultMessage = `Added role **${role.name}** to ${assigned} ${assigned === 1 ? "member" : "members"}!`; if (alreadyHadRole) { resultMessage += ` ${alreadyHadRole} ${alreadyHadRole === 1 ? "member" : "members"} already had the role.`; } @@ -221,7 +232,10 @@ export class RolesPlugin extends ZeppelinPlugin { mod: stripObjectToScalars(msg.author), }); - this.sendSuccessMessage(msg.channel, "Role removed from user!"); + this.sendSuccessMessage( + msg.channel, + `Removed role **${role.name}** removed from ${verboseUserMention(args.member.user)}!`, + ); } @d.command("massremoverole", " ") @@ -248,19 +262,30 @@ export class RolesPlugin extends ZeppelinPlugin { if (!roleId) { return this.sendErrorMessage(msg.channel, "Invalid role id"); } - const role = this.guild.roles.get(roleId); const config = this.getConfigForMsg(msg); if (!config.assignable_roles.includes(roleId)) { return this.sendErrorMessage(msg.channel, "You cannot remove that role"); } + const role = this.guild.roles.get(roleId); + if (!role) { + this.logs.log(LogType.BOT_ALERT, { + body: `Unknown role configured for 'roles' plugin: ${roleId}`, + }); + return this.sendErrorMessage(msg.channel, "You cannot remove that role"); + } + const membersWithTheRole = members.filter(m => m.roles.includes(roleId)); let assigned = 0; const failed = []; const didNotHaveRole = members.length - membersWithTheRole.length; - msg.channel.createMessage(`Removing role from specified members...`); + msg.channel.createMessage( + `Removing role **${role.name}** from ${membersWithTheRole.length} ${ + membersWithTheRole.length === 1 ? "member" : "members" + }...`, + ); for (const member of membersWithTheRole) { try { @@ -278,7 +303,7 @@ export class RolesPlugin extends ZeppelinPlugin { } } - let resultMessage = `Role removed from ${assigned} ${assigned === 1 ? "member" : "members"}!`; + let resultMessage = `Removed role **${role.name}** from ${assigned} ${assigned === 1 ? "member" : "members"}!`; if (didNotHaveRole) { resultMessage += ` ${didNotHaveRole} ${didNotHaveRole === 1 ? "member" : "members"} didn't have the role.`; }