diff --git a/lib/Client.js b/lib/Client.js index 3b362da83..d01e87163 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -41,6 +41,10 @@ var Client = (function () { this.user = null; this.alreadySentData = false; this.serverCreateListener = new Map(); + + this.email = "abc"; + this.password = "abc"; + /* State values: 0 - idle @@ -121,6 +125,9 @@ var Client = (function () { self.state = 1; //set the state to logging in + self.email = email; + self.password = password; + request.post(Endpoints.LOGIN).send({ email: email, password: password @@ -342,6 +349,52 @@ var Client = (function () { } }); } + }, { + key: "updateMessage", + value: function updateMessage(message, content) { + var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, msg) {} : arguments[2]; + + var self = this; + + return new Promise(function (resolve, reject) { + + request.patch(Endpoints.CHANNELS + "/" + message.channel.id + "/messages/" + message.id).set("authorization", self.token).send({ + content: content, + mentions: [] + }).end(function (err, res) { + if (err) { + callback(err); + reject(err); + } else { + var msg = new Message(res.body, message.channel, message.mentions, message.sender); + callback(null, msg); + resolve(msg); + + message.channel.messages[message.channel.messages.indexOf(message)] = msg; + } + }); + }); + } + }, { + key: "setUsername", + value: function setUsername(newName) { + var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err) {} : arguments[1]; + + var self = this; + + return new Promise(function (resolve, reject) { + request.patch(Endpoints.API + "/users/@me").set("authorization", self.token).send({ + avatar: self.user.avatar, + email: self.email, + new_password: null, + password: self.password, + username: newName + }).end(function (err) { + callback(err); + if (err) reject(err);else resolve(); + }); + }); + } }, { key: "sendMessage", value: function sendMessage(destination, message) { diff --git a/src/Client.js b/src/Client.js index be3230c74..d77434a9d 100644 --- a/src/Client.js +++ b/src/Client.js @@ -31,6 +31,10 @@ class Client { this.user = null; this.alreadySentData = false; this.serverCreateListener = new Map(); + + this.email = "abc"; + this.password = "abc"; + /* State values: 0 - idle @@ -128,6 +132,9 @@ class Client { if (self.state === 0 || self.state === 4) { self.state = 1; //set the state to logging in + + self.email = email; + self.password = password; request .post(Endpoints.LOGIN) @@ -357,7 +364,7 @@ class Client { return new Promise(function (resolve, reject) { if (timeout) { setTimeout(remove, timeout) - }else{ + } else { remove(); } @@ -378,6 +385,60 @@ class Client { }); } + updateMessage(message, content, callback = function (err, msg) { }) { + + var self = this; + + return new Promise(function (resolve, reject) { + + request + .patch(`${Endpoints.CHANNELS}/${message.channel.id}/messages/${message.id}`) + .set("authorization", self.token) + .send({ + content: content, + mentions: [] + }) + .end(function (err, res) { + if (err) { + callback(err); + reject(err); + } else { + var msg = new Message(res.body, message.channel, message.mentions, message.sender); + callback(null, msg); + resolve(msg); + + message.channel.messages[message.channel.messages.indexOf(message)] = msg; + } + }); + + }); + } + + setUsername(newName, callback = function (err) { }) { + + var self = this; + + return new Promise(function (resolve, reject) { + request + .patch(`${Endpoints.API}/users/@me`) + .set("authorization", self.token) + .send({ + avatar: self.user.avatar, + email: self.email, + new_password: null, + password: self.password, + username: newName + }) + .end(function (err) { + callback(err); + if (err) + reject(err); + else + resolve(); + }); + }); + } + sendMessage(destination, message, callback = function (err, msg) { }, premessage = "") { var self = this; diff --git a/test/bot.js b/test/bot.js index a142d5861..0b591439d 100644 --- a/test/bot.js +++ b/test/bot.js @@ -18,8 +18,11 @@ mybot.on("message", function (msg) { if(msg.content === "pmme"){ console.log("yes we found it!"); + mybot.setUsername("hydrabot").catch(function(err){ + console.log(err); + }); mybot.reply(msg, "You know what "+msg.sender+"? NO").then(function(msg){ - mybot.deleteMessage(msg, 5000); + mybot.updateMessage(msg, "wat"); }); }