diff --git a/src/plugins/Utility.ts b/src/plugins/Utility.ts index ff555f09..3a591802 100644 --- a/src/plugins/Utility.ts +++ b/src/plugins/Utility.ts @@ -308,10 +308,30 @@ export class UtilityPlugin extends ZeppelinPlugin { msg.channel.createMessage({ embed }); } + @d.command(/(?:nickname|nick) reset/, "") + @d.permission("nickname") + async nicknameResetCmd(msg: Message, args: { target: Member; nickname: string }) { + if (msg.member.id !== args.target.id && !this.canActOn(msg.member, args.target)) { + msg.channel.createMessage(errorMessage("Cannot reset nickname: insufficient permissions")); + return; + } + + try { + await args.target.edit({ + nick: "" + }); + } catch (e) { + msg.channel.createMessage(errorMessage("Failed to reset nickname")); + return; + } + + msg.channel.createMessage(successMessage(`Nickname of <@!${args.target.id}> is now reset`)); + } + @d.command(/nickname|nick/, " ") @d.permission("nickname") async nicknameCmd(msg: Message, args: { target: Member; nickname: string }) { - if (!this.canActOn(msg.member, args.target)) { + if (msg.member.id !== args.target.id && !this.canActOn(msg.member, args.target)) { msg.channel.createMessage(errorMessage("Cannot change nickname: insufficient permissions")); return; }