From 21a357f8c5509dd61af5ccb742576e43627b16a1 Mon Sep 17 00:00:00 2001
From: Dragory <dragory.up@gmail.com>
Date: Sat, 9 Feb 2019 14:35:24 +0200
Subject: [PATCH] AutoReactions: allow use of custom emojis from other (shared)
 servers

---
 src/plugins/AutoReactions.ts | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/src/plugins/AutoReactions.ts b/src/plugins/AutoReactions.ts
index 1b8bb000..81315bf1 100644
--- a/src/plugins/AutoReactions.ts
+++ b/src/plugins/AutoReactions.ts
@@ -1,11 +1,12 @@
-import { Plugin, decorators as d } from "knub";
+import { decorators as d } from "knub";
 import { GuildSavedMessages } from "../data/GuildSavedMessages";
 import { SavedMessage } from "../data/entities/SavedMessage";
 import { GuildAutoReactions } from "../data/GuildAutoReactions";
 import { Message } from "eris";
-import { CustomEmoji, customEmojiRegex, errorMessage, isEmoji, successMessage } from "../utils";
+import { customEmojiRegex, errorMessage, isEmoji, successMessage } from "../utils";
+import { ZeppelinPlugin } from "./ZeppelinPlugin";
 
-export class AutoReactions extends Plugin {
+export class AutoReactions extends ZeppelinPlugin {
   public static pluginName = "auto_reactions";
 
   protected savedMessages: GuildSavedMessages;
@@ -16,17 +17,17 @@ export class AutoReactions extends Plugin {
   getDefaultOptions() {
     return {
       permissions: {
-        use: false
+        use: false,
       },
 
       overrides: [
         {
           level: ">=100",
           permissions: {
-            use: true
-          }
-        }
-      ]
+            use: true,
+          },
+        },
+      ],
     };
   }
 
@@ -44,9 +45,6 @@ export class AutoReactions extends Plugin {
   @d.command("auto_reactions", "<channelId:channelId> <reactions...>")
   @d.permission("use")
   async setAutoReactionsCmd(msg: Message, args: { channelId: string; reactions: string[] }) {
-    const guildEmojis = this.guild.emojis as CustomEmoji[];
-    const guildEmojiIds = guildEmojis.map(e => e.id);
-
     const finalReactions = [];
 
     for (const reaction of args.reactions) {
@@ -61,9 +59,8 @@ export class AutoReactions extends Plugin {
       const customEmojiMatch = reaction.match(customEmojiRegex);
       if (customEmojiMatch) {
         // Custom emoji
-        if (!guildEmojiIds.includes(customEmojiMatch[2])) {
+        if (!this.canUseEmoji(customEmojiMatch[2])) {
           msg.channel.createMessage(errorMessage("I can only use regular emojis and custom emojis from this server"));
-
           return;
         }