mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 12:33:30 +01:00
added message update listening
This commit is contained in:
171
lib/Client.js
171
lib/Client.js
@@ -161,7 +161,7 @@ var Client = (function () {
|
|||||||
this.websocket.onmessage = function (e) {
|
this.websocket.onmessage = function (e) {
|
||||||
|
|
||||||
var dat = false,
|
var dat = false,
|
||||||
data = false;
|
data = {};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
dat = JSON.parse(e.data);
|
dat = JSON.parse(e.data);
|
||||||
@@ -284,6 +284,59 @@ var Client = (function () {
|
|||||||
//don't have the cache of that message ;(
|
//don't have the cache of that message ;(
|
||||||
self.trigger("messageDelete", channel);
|
self.trigger("messageDelete", channel);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case "MESSAGE_UPDATE":
|
||||||
|
self.debug("message updated");
|
||||||
|
|
||||||
|
var channel = self.getChannel("id", data.channel_id);
|
||||||
|
var formerMessage = channel.getMessage("id", data.id);
|
||||||
|
|
||||||
|
if (formerMessage) {
|
||||||
|
|
||||||
|
//new message might be partial, so we need to fill it with whatever the old message was.
|
||||||
|
var info = {};
|
||||||
|
|
||||||
|
for (var key in formerMessage) {
|
||||||
|
info[key] = formerMessage[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var key in data) {
|
||||||
|
info[key] = data[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
var mentions = [];
|
||||||
|
var _iteratorNormalCompletion4 = true;
|
||||||
|
var _didIteratorError4 = false;
|
||||||
|
var _iteratorError4 = undefined;
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (var _iterator4 = data.mentions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
||||||
|
var mention = _step4.value;
|
||||||
|
|
||||||
|
mentions.push(self.addUser(mention));
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_didIteratorError4 = true;
|
||||||
|
_iteratorError4 = err;
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (!_iteratorNormalCompletion4 && _iterator4["return"]) {
|
||||||
|
_iterator4["return"]();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (_didIteratorError4) {
|
||||||
|
throw _iteratorError4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var newMessage = new Message(info, channel, mentions, formerMessage.author);
|
||||||
|
|
||||||
|
self.trigger("messageUpdate", newMessage, formerMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
// message isn't in cache, and if it's a partial it could cause
|
||||||
|
// all hell to break loose... best to just act as if nothing happened
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -329,50 +382,16 @@ var Client = (function () {
|
|||||||
}, {
|
}, {
|
||||||
key: "getUser",
|
key: "getUser",
|
||||||
value: function getUser(key, value) {
|
value: function getUser(key, value) {
|
||||||
var _iteratorNormalCompletion4 = true;
|
|
||||||
var _didIteratorError4 = false;
|
|
||||||
var _iteratorError4 = undefined;
|
|
||||||
|
|
||||||
try {
|
|
||||||
for (var _iterator4 = this.userCache[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
|
||||||
var user = _step4.value;
|
|
||||||
|
|
||||||
if (user[key] === value) {
|
|
||||||
return user;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
_didIteratorError4 = true;
|
|
||||||
_iteratorError4 = err;
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (!_iteratorNormalCompletion4 && _iterator4["return"]) {
|
|
||||||
_iterator4["return"]();
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
if (_didIteratorError4) {
|
|
||||||
throw _iteratorError4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
//def getChannel
|
|
||||||
}, {
|
|
||||||
key: "getChannel",
|
|
||||||
value: function getChannel(key, value) {
|
|
||||||
var _iteratorNormalCompletion5 = true;
|
var _iteratorNormalCompletion5 = true;
|
||||||
var _didIteratorError5 = false;
|
var _didIteratorError5 = false;
|
||||||
var _iteratorError5 = undefined;
|
var _iteratorError5 = undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (var _iterator5 = this.channelCache[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
|
for (var _iterator5 = this.userCache[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
|
||||||
var channel = _step5.value;
|
var user = _step5.value;
|
||||||
|
|
||||||
if (channel[key] === value) {
|
if (user[key] === value) {
|
||||||
return channel;
|
return user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -393,22 +412,20 @@ var Client = (function () {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//def getServer
|
//def getChannel
|
||||||
}, {
|
}, {
|
||||||
key: "getServer",
|
key: "getChannel",
|
||||||
value: function getServer() {
|
value: function getChannel(key, value) {
|
||||||
var key = arguments.length <= 0 || arguments[0] === undefined ? "id" : arguments[0];
|
|
||||||
var value = arguments.length <= 1 || arguments[1] === undefined ? "abc123" : arguments[1];
|
|
||||||
var _iteratorNormalCompletion6 = true;
|
var _iteratorNormalCompletion6 = true;
|
||||||
var _didIteratorError6 = false;
|
var _didIteratorError6 = false;
|
||||||
var _iteratorError6 = undefined;
|
var _iteratorError6 = undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (var _iterator6 = this.serverCache[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
|
for (var _iterator6 = this.channelCache[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
|
||||||
var server = _step6.value;
|
var channel = _step6.value;
|
||||||
|
|
||||||
if (server[key] === value) {
|
if (channel[key] === value) {
|
||||||
return server;
|
return channel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -429,6 +446,42 @@ var Client = (function () {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//def getServer
|
||||||
|
}, {
|
||||||
|
key: "getServer",
|
||||||
|
value: function getServer() {
|
||||||
|
var key = arguments.length <= 0 || arguments[0] === undefined ? "id" : arguments[0];
|
||||||
|
var value = arguments.length <= 1 || arguments[1] === undefined ? "abc123" : arguments[1];
|
||||||
|
var _iteratorNormalCompletion7 = true;
|
||||||
|
var _didIteratorError7 = false;
|
||||||
|
var _iteratorError7 = undefined;
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (var _iterator7 = this.serverCache[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
|
||||||
|
var server = _step7.value;
|
||||||
|
|
||||||
|
if (server[key] === value) {
|
||||||
|
return server;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_didIteratorError7 = true;
|
||||||
|
_iteratorError7 = err;
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (!_iteratorNormalCompletion7 && _iterator7["return"]) {
|
||||||
|
_iterator7["return"]();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (_didIteratorError7) {
|
||||||
|
throw _iteratorError7;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
//def trySendConnData
|
//def trySendConnData
|
||||||
}, {
|
}, {
|
||||||
key: "trySendConnData",
|
key: "trySendConnData",
|
||||||
@@ -480,27 +533,27 @@ var Client = (function () {
|
|||||||
get: function get() {
|
get: function get() {
|
||||||
|
|
||||||
var msgs = [];
|
var msgs = [];
|
||||||
var _iteratorNormalCompletion7 = true;
|
var _iteratorNormalCompletion8 = true;
|
||||||
var _didIteratorError7 = false;
|
var _didIteratorError8 = false;
|
||||||
var _iteratorError7 = undefined;
|
var _iteratorError8 = undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (var _iterator7 = this.channelCache[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
|
for (var _iterator8 = this.channelCache[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
|
||||||
var channel = _step7.value;
|
var channel = _step8.value;
|
||||||
|
|
||||||
msgs = msgs.concat(channel.messages);
|
msgs = msgs.concat(channel.messages);
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
_didIteratorError7 = true;
|
_didIteratorError8 = true;
|
||||||
_iteratorError7 = err;
|
_iteratorError8 = err;
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (!_iteratorNormalCompletion7 && _iterator7["return"]) {
|
if (!_iteratorNormalCompletion8 && _iterator8["return"]) {
|
||||||
_iterator7["return"]();
|
_iterator8["return"]();
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
if (_didIteratorError7) {
|
if (_didIteratorError8) {
|
||||||
throw _iteratorError7;
|
throw _iteratorError8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ class Client {
|
|||||||
//message
|
//message
|
||||||
this.websocket.onmessage = function (e) {
|
this.websocket.onmessage = function (e) {
|
||||||
|
|
||||||
var dat = false, data = false;
|
var dat = false, data = {};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
dat = JSON.parse(e.data);
|
dat = JSON.parse(e.data);
|
||||||
@@ -223,10 +223,43 @@ class Client {
|
|||||||
if (message) {
|
if (message) {
|
||||||
self.trigger("messageDelete", channel, message);
|
self.trigger("messageDelete", channel, message);
|
||||||
channel.messages.splice(channel.messages.indexOf(message), 1);
|
channel.messages.splice(channel.messages.indexOf(message), 1);
|
||||||
}else{
|
} else {
|
||||||
//don't have the cache of that message ;(
|
//don't have the cache of that message ;(
|
||||||
self.trigger("messageDelete", channel);
|
self.trigger("messageDelete", channel);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case "MESSAGE_UPDATE":
|
||||||
|
self.debug("message updated");
|
||||||
|
|
||||||
|
var channel = self.getChannel("id", data.channel_id);
|
||||||
|
var formerMessage = channel.getMessage("id", data.id);
|
||||||
|
|
||||||
|
if (formerMessage) {
|
||||||
|
|
||||||
|
//new message might be partial, so we need to fill it with whatever the old message was.
|
||||||
|
var info = {};
|
||||||
|
|
||||||
|
for (var key in formerMessage) {
|
||||||
|
info[key] = formerMessage[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var key in data) {
|
||||||
|
info[key] = data[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
var mentions = [];
|
||||||
|
for (var mention of data.mentions) {
|
||||||
|
mentions.push(self.addUser(mention));
|
||||||
|
}
|
||||||
|
|
||||||
|
var newMessage = new Message(info, channel, mentions, formerMessage.author);
|
||||||
|
|
||||||
|
self.trigger("messageUpdate", newMessage, formerMessage);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// message isn't in cache, and if it's a partial it could cause
|
||||||
|
// all hell to break loose... best to just act as if nothing happened
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -19,3 +19,9 @@ mybot.on("messageDelete", function(channel, message){
|
|||||||
console.log("MESSAGE WAS DELETED BY " + ( message ? message.author.username : channel.name ));
|
console.log("MESSAGE WAS DELETED BY " + ( message ? message.author.username : channel.name ));
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mybot.on("messageUpdate", function(message, formerMessage){
|
||||||
|
|
||||||
|
console.log(message.author.username, "changed", formerMessage.content, "to", message.content);
|
||||||
|
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user