Pārlūkot izejas kodu

Don't crash on trying to send invalid emoji

denikson 6 gadi atpakaļ
vecāks
revīzija
c94ffb9b13
1 mainītis faili ar 19 papildinājumiem un 1 dzēšanām
  1. 19 1
      commands/react.js

+ 19 - 1
commands/react.js

@@ -87,11 +87,29 @@ const onIndirectMention = (msg, actionsDone) => {
     else if (db.get("dedUsers").includes(msg.author.id).value())
         emoteType = "ded";
 
-    const id = db
+    let id = db
         .get("emotes")
         .get(emoteType)
         .randomElement()
         .value();
+
+    let emote = client.emojis.find(e => e.id == id);
+
+    if(!emote) {
+        console.log(`WARNING: Emote ${id} no longer is valid. Deleting invalid emojis from the list...`);
+        db.get("emotes")
+            .get(emoteType)
+            .remove(id => !client.emojis.has(id))
+            .write();
+
+        id = db
+            .get("emotes")
+            .get(emoteType)
+            .randomElement()
+            .value();
+        emote = client.emojis.find(e => e.id == id);
+    }
+
     msg.channel.send(client.emojis.find(e => e.id == id).toString());
     return true;
 };