diff --git a/src/client/Client.js b/src/client/Client.js index dfbd5c37b..c44df5453 100644 --- a/src/client/Client.js +++ b/src/client/Client.js @@ -94,6 +94,11 @@ class Client extends EventEmitter { * @type {?String} */ this.password = null; + /** + * The time in milliseconds the Client connected + * @type {?Number} + */ + this.readyTime = null; } /** @@ -124,6 +129,14 @@ class Client extends EventEmitter { return this.rest.methods.loginToken(email); } + /** + * The uptime for the logged in Client + * @type {?Number} + */ + get uptime() { + return this.readyTime ? Date.now() - this.readyTime : null; + } + } module.exports = Client; diff --git a/src/client/websocket/packets/handlers/Ready.js b/src/client/websocket/packets/handlers/Ready.js index 475d9b6eb..217127c77 100644 --- a/src/client/websocket/packets/handlers/Ready.js +++ b/src/client/websocket/packets/handlers/Ready.js @@ -11,6 +11,7 @@ class ReadyHandler extends AbstractHandler { const clientUser = new ClientUser(client, data.user); client.user = clientUser; + client.readyTime = Date.now(); client.users.set(clientUser.id, clientUser); for (const guild of data.guilds) { client.dataManager.newGuild(guild);