mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 00:23:30 +01:00
Added message sending
This commit is contained in:
@@ -12,6 +12,7 @@ var Constants = require("../Constants.js"),
|
||||
PacketType = Constants.PacketType;
|
||||
|
||||
var Cache = require("../Util/Cache.js");
|
||||
var Resolver = require("./Resolver/Resolver.js");
|
||||
|
||||
var User = require("../Structures/User.js"),
|
||||
Channel = require("../Structures/Channel.js"),
|
||||
@@ -40,6 +41,7 @@ var InternalClient = (function () {
|
||||
this.channels = new Cache();
|
||||
this.servers = new Cache();
|
||||
this.private_channels = new Cache();
|
||||
this.resolver = new Resolver(this);
|
||||
}
|
||||
|
||||
// def login
|
||||
@@ -114,6 +116,29 @@ var InternalClient = (function () {
|
||||
});
|
||||
};
|
||||
|
||||
// def startPM
|
||||
|
||||
InternalClient.prototype.startPM = function startPM(resUser) {
|
||||
var self = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
var user = self.resolver.resolveUser(resUser);
|
||||
|
||||
if (user) {
|
||||
|
||||
// start the PM
|
||||
request.post("" + Endpoints.USER_CHANNELS(user.id)).set("authorization", self.token).end(function (err, res) {
|
||||
if (err) {
|
||||
reject(new Error(err.response.text));
|
||||
} else {
|
||||
resolve(self.private_channels.add(new PMChannel(res.body, self.client)));
|
||||
}
|
||||
});
|
||||
} else {
|
||||
reject(new Error("Unable to resolve resUser to a User"));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// def getGateway
|
||||
|
||||
InternalClient.prototype.getGateway = function getGateway() {
|
||||
@@ -126,6 +151,39 @@ var InternalClient = (function () {
|
||||
});
|
||||
};
|
||||
|
||||
// def sendMessage
|
||||
|
||||
InternalClient.prototype.sendMessage = function sendMessage(where, _content) {
|
||||
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
|
||||
|
||||
var self = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
self.resolver.resolveChannel(where).then(next)["catch"](function (e) {
|
||||
return reject(new Error("Error resolving destination"));
|
||||
});
|
||||
|
||||
function next(destination) {
|
||||
//var destination;
|
||||
var content = self.resolver.resolveString(_content);
|
||||
var mentions = self.resolver.resolveMentions(content);
|
||||
|
||||
request.post(Endpoints.CHANNEL_MESSAGES(destination.id)).set("authorization", self.token).send({
|
||||
content: content,
|
||||
mentions: mentions,
|
||||
tts: options.tts
|
||||
}).end(function (err, res) {
|
||||
if (err) {
|
||||
reject(new Error(err.response.text));
|
||||
} else {
|
||||
|
||||
resolve(destination.messages.add(new Message(res.body, destination, self.client)));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
InternalClient.prototype.sendWS = function sendWS(object) {
|
||||
this.websocket.send(JSON.stringify(object));
|
||||
};
|
||||
@@ -207,7 +265,8 @@ var InternalClient = (function () {
|
||||
// format: https://discordapi.readthedocs.org/en/latest/reference/channels/messages.html#message-format
|
||||
var channel = self.channels.get("id", data.channel_id);
|
||||
if (channel) {
|
||||
channel.messages.add(new Message(data, channel, client));
|
||||
var msg = channel.messages.add(new Message(data, channel, client));
|
||||
client.emit("message", msg);
|
||||
} else {
|
||||
client.emit("warn", "message created but channel is not cached");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user