mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 00:23:30 +01:00
Added message deletion
This commit is contained in:
@@ -3,6 +3,7 @@ var Endpoints = require("./Endpoints.js");
|
||||
var User = require("./User.js");
|
||||
var Server = require("./Server.js");
|
||||
var Channel = require("./Channel.js");
|
||||
var Message = require("./Message.js");
|
||||
|
||||
//node modules
|
||||
var request = require("superagent");
|
||||
@@ -57,6 +58,16 @@ class Client {
|
||||
return this.userCache;
|
||||
}
|
||||
|
||||
get messages() {
|
||||
|
||||
var msgs = [];
|
||||
for (var channel of this.channelCache) {
|
||||
msgs = msgs.concat(channel.messages);
|
||||
}
|
||||
return msgs;
|
||||
|
||||
}
|
||||
|
||||
sendPacket(JSONObject) {
|
||||
if (this.websocket.readyState === 1) {
|
||||
this.websocket.send(JSON.stringify(JSONObject));
|
||||
@@ -191,6 +202,32 @@ class Client {
|
||||
|
||||
break;
|
||||
case "MESSAGE_CREATE":
|
||||
self.debug("received message");
|
||||
|
||||
var mentions = [];
|
||||
for (var mention of data.mentions) {
|
||||
mentions.push(self.addUser(mention));
|
||||
}
|
||||
|
||||
var channel = self.getChannel("id", data.channel_id);
|
||||
var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author)));
|
||||
|
||||
self.trigger("message", msg);
|
||||
|
||||
break;
|
||||
case "MESSAGE_DELETE":
|
||||
self.debug("message deleted");
|
||||
|
||||
var channel = self.getChannel("id", data.channel_id);
|
||||
var message = channel.getMessage("id", data.id);
|
||||
if (message) {
|
||||
self.trigger("messageDelete", channel, message);
|
||||
channel.messages.splice(channel.messages.indexOf(message), 1);
|
||||
}else{
|
||||
//don't have the cache of that message ;(
|
||||
self.trigger("messageDelete", channel);
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
self.debug("received unknown packet");
|
||||
|
||||
@@ -2,38 +2,39 @@ var User = require( "./user.js" ).User;
|
||||
var List = require( "./list.js" ).List;
|
||||
var PMChannel = require( "./PMChannel.js" ).PMChannel;
|
||||
|
||||
exports.Message = function( time, author, content, channel, id, mentions, everyoneMentioned, embeds ) {
|
||||
|
||||
if ( !content ) {
|
||||
message = time;
|
||||
channel = author;
|
||||
time = message.timestamp;
|
||||
author = message.author;
|
||||
content = message.content;
|
||||
id = message.id;
|
||||
mentions = message.mentions;
|
||||
everyoneMentioned = message.mention_everyone;
|
||||
embeds = message.embeds;
|
||||
class Message{
|
||||
constructor(data, channel, mentions, author){
|
||||
this.tts = data.tts;
|
||||
this.timestamp = Date.parse(data.timestamp);
|
||||
this.nonce = data.nonce;
|
||||
this.mentions = mentions;
|
||||
this.everyoneMentioned = data.mention_everyone;
|
||||
this.id = data.id;
|
||||
this.embeds = data.embeds;
|
||||
this.editedTimestamp = data.edited_timestamp;
|
||||
this.content = data.content.trim();
|
||||
this.channel = channel;
|
||||
this.author = author;
|
||||
this.attachments = data.attachments;
|
||||
}
|
||||
|
||||
this.time = Date.parse( time );
|
||||
this.author = new User( author );
|
||||
this.content = content.replace( /\s+/g, ' ' ).trim(); //content.replace(/<[^>]*>/g, "").replace(/\s+/g, ' ').trim();
|
||||
this.channel = channel;
|
||||
this.id = id;
|
||||
this.mentions = new List( "id" );
|
||||
this.everyoneMentioned = everyoneMentioned;
|
||||
this.embeds = embeds;
|
||||
for ( x in mentions ) {
|
||||
var _mention = mentions[ x ];
|
||||
this.mentions.add( new User( _mention ) );
|
||||
|
||||
isMentioned( user ){
|
||||
var id = (user.id ? user.id : user);
|
||||
for(var mention of this.mentions){
|
||||
if(mention.id === id){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
get sender(){
|
||||
return this.author;
|
||||
}
|
||||
}
|
||||
|
||||
exports.Message.prototype.isPM = function() {
|
||||
/*exports.Message.prototype.isPM = function() {
|
||||
return ( this.channel instanceof PMChannel );
|
||||
}
|
||||
}*/
|
||||
|
||||
exports.Message.prototype.isMentioned = function( user ) {
|
||||
return ( this.mentions.filter( "id", user.id ).length > 0 );
|
||||
}
|
||||
module.exports = Message;
|
||||
Reference in New Issue
Block a user