From 27f413d3b4e3d58fc759da45f190c5bf0879088e Mon Sep 17 00:00:00 2001
From: Will Hunt <half-shot@molrams.com>
Date: Wed, 22 Feb 2017 22:25:45 +0000
Subject: [PATCH] Fix not returning bot user if the sender does not have a
 token

---
 src/discordclientfactory.ts | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/discordclientfactory.ts b/src/discordclientfactory.ts
index 0cc6a19..d6e3acd 100644
--- a/src/discordclientfactory.ts
+++ b/src/discordclientfactory.ts
@@ -37,19 +37,22 @@ export class DiscordClientFactory {
         return Promise.resolve(this.clients.get(userId));
       }
       return this.store.get_user_token(userId).then((token) => {
+        if (token === null) {
+          Promise.resolve(this.botClient);
+        }
         client = Bluebird.promisifyAll(new Client({
           fetchAllMembers: true,
           sync: true,
         }));
         log.verbose("ClientFactory", "Got user token. Logging in...");
-        return client.login(token);
-      }).then(() => {
-        log.verbose("ClientFactory", "Logged in. Storing ", userId);
-        this.clients.set(userId, client);
-        return Promise.resolve(client);
-      }).catch((err) => {
-        log.warn("ClientFactory", `Could not log ${userId} in.`, err);
-      })
+        return client.login(token).then(() => {
+          log.verbose("ClientFactory", "Logged in. Storing ", userId);
+          this.clients.set(userId, client);
+          return Promise.resolve(client);
+        }).catch((err) => {
+          log.warn("ClientFactory", `Could not log ${userId} in.`, err);
+        })
+      });
       // Get from cache
     }
     return Promise.resolve(this.botClient);
-- 
GitLab