mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
Unminify files
This commit is contained in:
2091
lib/Client/Client.js
2091
lib/Client/Client.js
File diff suppressed because it is too large
Load Diff
@@ -1 +1,11 @@
|
||||
"use strict";exports.__esModule = true;exports["default"] = {IDLE:0,LOGGING_IN:1,LOGGED_IN:2,READY:3,DISCONNECTED:4};module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports["default"] = {
|
||||
IDLE: 0,
|
||||
LOGGING_IN: 1,
|
||||
LOGGED_IN: 2,
|
||||
READY: 3,
|
||||
DISCONNECTED: 4
|
||||
};
|
||||
module.exports = exports["default"];
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,34 +1,382 @@
|
||||
"use strict"; /* global Buffer */ /**
|
||||
"use strict";
|
||||
/* global Buffer */
|
||||
|
||||
/**
|
||||
* Resolves supplied data type to a Channel. If a String, it should be a Channel ID.
|
||||
* @typedef {(Channel|Server|Message|User|String)} ChannelResolvable
|
||||
*/ /**
|
||||
*/
|
||||
/**
|
||||
* Resolves supplied data type to a TextChannel or PMChannel. If a String, it should be a Channel ID.
|
||||
* @typedef {(TextChannel|PMChannel|Server|Message|User|String)} TextChannelResolvable
|
||||
*/ /**
|
||||
*/
|
||||
/**
|
||||
* If given an array, turns it into a newline-separated string.
|
||||
* @typedef {(String|Array)} StringResolvable
|
||||
*/ /**
|
||||
*/
|
||||
/**
|
||||
* Resolves supplied data type to a Message. If a channel, it is the latest message from that channel.
|
||||
* @typedef {(Message|TextChannel|PMChannel)} MessageResolvable
|
||||
*/ /**
|
||||
*/
|
||||
/**
|
||||
* Resolves supplied data type to a Server. If a String, it should be the server's ID.
|
||||
* @typedef {(Server|ServerChannel|Message|String)} ServerResolvable
|
||||
*/ /**
|
||||
*/
|
||||
/**
|
||||
* Resolves supplied data type to something that can be attached to a message. If a String, it can be an URL or a path to a local file.
|
||||
* @typedef {(String|ReadableStream|Buffer)} FileResolvable
|
||||
*/ /**
|
||||
*/
|
||||
/**
|
||||
* Resolves supplied data type to an invite ID. If a String, it should be an ID or a direct URL to the invite.
|
||||
* @typedef {(Invite|String)} InviteIDResolvable
|
||||
*/exports.__esModule = true;function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var _fs=require("fs");var _fs2=_interopRequireDefault(_fs);var _superagent=require("superagent");var _superagent2=_interopRequireDefault(_superagent);var _StructuresUser=require("../../Structures/User");var _StructuresUser2=_interopRequireDefault(_StructuresUser);var _StructuresChannel=require("../../Structures/Channel");var _StructuresChannel2=_interopRequireDefault(_StructuresChannel);var _StructuresTextChannel=require("../../Structures/TextChannel");var _StructuresTextChannel2=_interopRequireDefault(_StructuresTextChannel);var _StructuresVoiceChannel=require("../../Structures/VoiceChannel");var _StructuresVoiceChannel2=_interopRequireDefault(_StructuresVoiceChannel);var _StructuresServerChannel=require("../../Structures/ServerChannel");var _StructuresServerChannel2=_interopRequireDefault(_StructuresServerChannel);var _StructuresPMChannel=require("../../Structures/PMChannel");var _StructuresPMChannel2=_interopRequireDefault(_StructuresPMChannel);var _StructuresRole=require("../../Structures/Role");var _StructuresRole2=_interopRequireDefault(_StructuresRole);var _StructuresServer=require("../../Structures/Server");var _StructuresServer2=_interopRequireDefault(_StructuresServer);var _StructuresMessage=require("../../Structures/Message");var _StructuresMessage2=_interopRequireDefault(_StructuresMessage);var _StructuresInvite=require("../../Structures/Invite");var _StructuresInvite2=_interopRequireDefault(_StructuresInvite);var _VoiceVoiceConnection=require("../../Voice/VoiceConnection");var _VoiceVoiceConnection2=_interopRequireDefault(_VoiceVoiceConnection);var Resolver=(function(){function Resolver(internal){_classCallCheck(this,Resolver);this.internal = internal;}Resolver.prototype.resolveToBase64 = function resolveToBase64(resource){if(resource instanceof Buffer){resource = resource.toString("base64");resource = "data:image/jpg;base64," + resource;}return resource;};Resolver.prototype.resolveInviteID = function resolveInviteID(resource){if(resource instanceof _StructuresInvite2["default"]){return resource.id;}if(typeof resource === "string" || resource instanceof String){if(resource.indexOf("http") === 0){var split=resource.split("/");return split.pop();}return resource;}return null;};Resolver.prototype.resolveServer = function resolveServer(resource){if(resource instanceof _StructuresServer2["default"]){return resource;}if(resource instanceof _StructuresServerChannel2["default"]){return resource.server;}if(resource instanceof String || typeof resource === "string"){return this.internal.servers.get("id",resource);}if(resource instanceof _StructuresMessage2["default"]){if(resource.channel instanceof _StructuresTextChannel2["default"]){return resource.channel.server;}}return null;};Resolver.prototype.resolveRole = function resolveRole(resource){if(resource instanceof _StructuresRole2["default"]){return resource;}if(resource instanceof String || typeof resource === "string"){var role=null;for(var _iterator=this.internal.servers,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;) {var _ref;if(_isArray){if(_i >= _iterator.length)break;_ref = _iterator[_i++];}else {_i = _iterator.next();if(_i.done)break;_ref = _i.value;}var server=_ref;if(role = server.roles.get("id",resource)){return role;}}}return null;};Resolver.prototype.resolveFile = function resolveFile(resource){if(typeof resource === "string" || resource instanceof String){if(/^https?:\/\//.test(resource)){return new Promise(function(resolve,reject){_superagent2["default"].get(resource).buffer().parse(function(res,cb){res.setEncoding("binary");res.data = "";res.on("data",function(chunk){res.data += chunk;});res.on("end",function(){cb(null,new Buffer(res.data,"binary"));});}).end(function(err,res){if(err){return reject(err);}return resolve(res.body);});});}else {return Promise.resolve(resource);}}return Promise.resolve(resource);};Resolver.prototype.resolveMentions = function resolveMentions(resource,channel){var _mentions=[];var changed=resource;for(var _iterator2=resource.match(/<@\!?[0-9]+>/g) || [],_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[Symbol.iterator]();;) {var _ref2;if(_isArray2){if(_i2 >= _iterator2.length)break;_ref2 = _iterator2[_i2++];}else {_i2 = _iterator2.next();if(_i2.done)break;_ref2 = _i2.value;}var mention=_ref2; // username mention
|
||||
if(mention[2] === '!'){var user=this.internal.users.get("id",mention.substring(3,mention.length - 1));if(user){_mentions.push(user);var details=channel.server && channel.server.detailsOf(user);if(details){changed = changed.replace(new RegExp(mention,"g"),"@" + (details.nick || user.username + "#" + user.discriminator));}}}else {var user=this.internal.users.get("id",mention.substring(2,mention.length - 1));if(user){_mentions.push(user);changed = changed.replace(new RegExp(mention,"g"),"@" + (user.username + "#" + user.discriminator));}}}if(channel && channel.server && channel.server.roles){for(var _iterator3=resource.match(/<@&[0-9]+>/g) || [],_isArray3=Array.isArray(_iterator3),_i3=0,_iterator3=_isArray3?_iterator3:_iterator3[Symbol.iterator]();;) {var _ref3;if(_isArray3){if(_i3 >= _iterator3.length)break;_ref3 = _iterator3[_i3++];}else {_i3 = _iterator3.next();if(_i3.done)break;_ref3 = _i3.value;}var mention=_ref3; // role mention
|
||||
var role=channel.server.roles.get("id",mention.substring(3,mention.length - 1));if(role){changed = changed.replace(new RegExp(mention,"g"),"@" + role.name);}}}for(var _iterator4=resource.match(/<#[0-9]+>/g) || [],_isArray4=Array.isArray(_iterator4),_i4=0,_iterator4=_isArray4?_iterator4:_iterator4[Symbol.iterator]();;) {var _ref4;if(_isArray4){if(_i4 >= _iterator4.length)break;_ref4 = _iterator4[_i4++];}else {_i4 = _iterator4.next();if(_i4.done)break;_ref4 = _i4.value;}var mention=_ref4; // channel mention
|
||||
var channel=this.internal.channels.get("id",mention.substring(2,mention.length - 1));if(channel){changed = changed.replace(new RegExp(mention,"g"),"#" + channel.name);}}return [_mentions,changed];};Resolver.prototype.resolveString = function resolveString(resource){ // accepts Array, Channel, Server, User, Message, String and anything
|
||||
// toString()-able
|
||||
if(resource instanceof Array){resource = resource.join("\n");}return resource.toString();};Resolver.prototype.resolveUser = function resolveUser(resource){ /*
|
||||
accepts a Message, Channel, Server, String ID, User, PMChannel
|
||||
*/if(resource instanceof _StructuresUser2["default"]){return resource;}if(resource instanceof _StructuresMessage2["default"]){return resource.author;}if(resource instanceof _StructuresTextChannel2["default"]){var lmsg=resource.lastMessage;if(lmsg){return lmsg.author;}}if(resource instanceof _StructuresServer2["default"]){return resource.owner;}if(resource instanceof _StructuresPMChannel2["default"]){return resource.recipient;}if(resource instanceof String || typeof resource === "string"){return this.internal.users.get("id",resource);}return null;};Resolver.prototype.resolveMessage = function resolveMessage(resource){ // accepts a Message, PMChannel & TextChannel
|
||||
if(resource instanceof _StructuresTextChannel2["default"] || resource instanceof _StructuresPMChannel2["default"]){return resource.lastMessage;}if(resource instanceof _StructuresMessage2["default"]){return resource;}return null;};Resolver.prototype.resolveChannel = function resolveChannel(resource){ /*
|
||||
accepts a Message, Channel, VoiceConnection, Server, String ID, User
|
||||
*/if(resource instanceof _StructuresMessage2["default"]){return Promise.resolve(resource.channel);}if(resource instanceof _StructuresChannel2["default"]){return Promise.resolve(resource);}if(resource instanceof _VoiceVoiceConnection2["default"]){return Promise.resolve(resource.voiceChannel);}if(resource instanceof _StructuresServer2["default"]){return Promise.resolve(resource.defaultChannel);}if(resource instanceof String || typeof resource === "string"){var user=this.internal.users.get("id",resource);if(user){resource = user;}else {return Promise.resolve(this.internal.channels.get("id",resource) || this.internal.private_channels.get("id",resource));}}if(resource instanceof _StructuresUser2["default"]){ // see if a PM exists
|
||||
for(var _iterator5=this.internal.private_channels,_isArray5=Array.isArray(_iterator5),_i5=0,_iterator5=_isArray5?_iterator5:_iterator5[Symbol.iterator]();;) {var _ref5;if(_isArray5){if(_i5 >= _iterator5.length)break;_ref5 = _iterator5[_i5++];}else {_i5 = _iterator5.next();if(_i5.done)break;_ref5 = _i5.value;}var pmchat=_ref5;if(pmchat.recipient.equals(resource)){return Promise.resolve(pmchat);}} // PM does not exist :\
|
||||
return this.internal.startPM(resource);}var error=new Error("Could not resolve channel");error.resource = resource;return Promise.reject(error);};return Resolver;})();exports["default"] = Resolver;module.exports = exports["default"];
|
||||
*/
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var _fs = require("fs");
|
||||
|
||||
var _fs2 = _interopRequireDefault(_fs);
|
||||
|
||||
var _superagent = require("superagent");
|
||||
|
||||
var _superagent2 = _interopRequireDefault(_superagent);
|
||||
|
||||
var _StructuresUser = require("../../Structures/User");
|
||||
|
||||
var _StructuresUser2 = _interopRequireDefault(_StructuresUser);
|
||||
|
||||
var _StructuresChannel = require("../../Structures/Channel");
|
||||
|
||||
var _StructuresChannel2 = _interopRequireDefault(_StructuresChannel);
|
||||
|
||||
var _StructuresTextChannel = require("../../Structures/TextChannel");
|
||||
|
||||
var _StructuresTextChannel2 = _interopRequireDefault(_StructuresTextChannel);
|
||||
|
||||
var _StructuresVoiceChannel = require("../../Structures/VoiceChannel");
|
||||
|
||||
var _StructuresVoiceChannel2 = _interopRequireDefault(_StructuresVoiceChannel);
|
||||
|
||||
var _StructuresServerChannel = require("../../Structures/ServerChannel");
|
||||
|
||||
var _StructuresServerChannel2 = _interopRequireDefault(_StructuresServerChannel);
|
||||
|
||||
var _StructuresPMChannel = require("../../Structures/PMChannel");
|
||||
|
||||
var _StructuresPMChannel2 = _interopRequireDefault(_StructuresPMChannel);
|
||||
|
||||
var _StructuresRole = require("../../Structures/Role");
|
||||
|
||||
var _StructuresRole2 = _interopRequireDefault(_StructuresRole);
|
||||
|
||||
var _StructuresServer = require("../../Structures/Server");
|
||||
|
||||
var _StructuresServer2 = _interopRequireDefault(_StructuresServer);
|
||||
|
||||
var _StructuresMessage = require("../../Structures/Message");
|
||||
|
||||
var _StructuresMessage2 = _interopRequireDefault(_StructuresMessage);
|
||||
|
||||
var _StructuresInvite = require("../../Structures/Invite");
|
||||
|
||||
var _StructuresInvite2 = _interopRequireDefault(_StructuresInvite);
|
||||
|
||||
var _VoiceVoiceConnection = require("../../Voice/VoiceConnection");
|
||||
|
||||
var _VoiceVoiceConnection2 = _interopRequireDefault(_VoiceVoiceConnection);
|
||||
|
||||
var Resolver = (function () {
|
||||
function Resolver(internal) {
|
||||
_classCallCheck(this, Resolver);
|
||||
|
||||
this.internal = internal;
|
||||
}
|
||||
|
||||
Resolver.prototype.resolveToBase64 = function resolveToBase64(resource) {
|
||||
if (resource instanceof Buffer) {
|
||||
resource = resource.toString("base64");
|
||||
resource = "data:image/jpg;base64," + resource;
|
||||
}
|
||||
return resource;
|
||||
};
|
||||
|
||||
Resolver.prototype.resolveInviteID = function resolveInviteID(resource) {
|
||||
if (resource instanceof _StructuresInvite2["default"]) {
|
||||
return resource.id;
|
||||
}
|
||||
if (typeof resource === "string" || resource instanceof String) {
|
||||
if (resource.indexOf("http") === 0) {
|
||||
var split = resource.split("/");
|
||||
return split.pop();
|
||||
}
|
||||
return resource;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
Resolver.prototype.resolveServer = function resolveServer(resource) {
|
||||
if (resource instanceof _StructuresServer2["default"]) {
|
||||
return resource;
|
||||
}
|
||||
if (resource instanceof _StructuresServerChannel2["default"]) {
|
||||
return resource.server;
|
||||
}
|
||||
if (resource instanceof String || typeof resource === "string") {
|
||||
return this.internal.servers.get("id", resource);
|
||||
}
|
||||
if (resource instanceof _StructuresMessage2["default"]) {
|
||||
if (resource.channel instanceof _StructuresTextChannel2["default"]) {
|
||||
return resource.channel.server;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
Resolver.prototype.resolveRole = function resolveRole(resource) {
|
||||
if (resource instanceof _StructuresRole2["default"]) {
|
||||
return resource;
|
||||
}
|
||||
if (resource instanceof String || typeof resource === "string") {
|
||||
var role = null;
|
||||
for (var _iterator = this.internal.servers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
||||
var _ref;
|
||||
|
||||
if (_isArray) {
|
||||
if (_i >= _iterator.length) break;
|
||||
_ref = _iterator[_i++];
|
||||
} else {
|
||||
_i = _iterator.next();
|
||||
if (_i.done) break;
|
||||
_ref = _i.value;
|
||||
}
|
||||
|
||||
var server = _ref;
|
||||
|
||||
if (role = server.roles.get("id", resource)) {
|
||||
return role;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
Resolver.prototype.resolveFile = function resolveFile(resource) {
|
||||
if (typeof resource === "string" || resource instanceof String) {
|
||||
if (/^https?:\/\//.test(resource)) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
_superagent2["default"].get(resource).buffer().parse(function (res, cb) {
|
||||
res.setEncoding("binary");
|
||||
res.data = "";
|
||||
res.on("data", function (chunk) {
|
||||
res.data += chunk;
|
||||
});
|
||||
res.on("end", function () {
|
||||
cb(null, new Buffer(res.data, "binary"));
|
||||
});
|
||||
}).end(function (err, res) {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
return resolve(res.body);
|
||||
});
|
||||
});
|
||||
} else {
|
||||
return Promise.resolve(resource);
|
||||
}
|
||||
}
|
||||
return Promise.resolve(resource);
|
||||
};
|
||||
|
||||
Resolver.prototype.resolveMentions = function resolveMentions(resource, channel) {
|
||||
var _mentions = [];
|
||||
var changed = resource;
|
||||
for (var _iterator2 = resource.match(/<@\!?[0-9]+>/g) || [], _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
||||
var _ref2;
|
||||
|
||||
if (_isArray2) {
|
||||
if (_i2 >= _iterator2.length) break;
|
||||
_ref2 = _iterator2[_i2++];
|
||||
} else {
|
||||
_i2 = _iterator2.next();
|
||||
if (_i2.done) break;
|
||||
_ref2 = _i2.value;
|
||||
}
|
||||
|
||||
var mention = _ref2;
|
||||
// username mention
|
||||
if (mention[2] === '!') {
|
||||
var user = this.internal.users.get("id", mention.substring(3, mention.length - 1));
|
||||
if (user) {
|
||||
_mentions.push(user);
|
||||
var details = channel.server && channel.server.detailsOf(user);
|
||||
if (details) {
|
||||
changed = changed.replace(new RegExp(mention, "g"), "@" + (details.nick || user.username + "#" + user.discriminator));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var user = this.internal.users.get("id", mention.substring(2, mention.length - 1));
|
||||
if (user) {
|
||||
_mentions.push(user);
|
||||
changed = changed.replace(new RegExp(mention, "g"), "@" + (user.username + "#" + user.discriminator));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (channel && channel.server && channel.server.roles) {
|
||||
for (var _iterator3 = resource.match(/<@&[0-9]+>/g) || [], _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
|
||||
var _ref3;
|
||||
|
||||
if (_isArray3) {
|
||||
if (_i3 >= _iterator3.length) break;
|
||||
_ref3 = _iterator3[_i3++];
|
||||
} else {
|
||||
_i3 = _iterator3.next();
|
||||
if (_i3.done) break;
|
||||
_ref3 = _i3.value;
|
||||
}
|
||||
|
||||
var mention = _ref3;
|
||||
// role mention
|
||||
var role = channel.server.roles.get("id", mention.substring(3, mention.length - 1));
|
||||
if (role) {
|
||||
changed = changed.replace(new RegExp(mention, "g"), "@" + role.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var _iterator4 = resource.match(/<#[0-9]+>/g) || [], _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
|
||||
var _ref4;
|
||||
|
||||
if (_isArray4) {
|
||||
if (_i4 >= _iterator4.length) break;
|
||||
_ref4 = _iterator4[_i4++];
|
||||
} else {
|
||||
_i4 = _iterator4.next();
|
||||
if (_i4.done) break;
|
||||
_ref4 = _i4.value;
|
||||
}
|
||||
|
||||
var mention = _ref4;
|
||||
// channel mention
|
||||
var channel = this.internal.channels.get("id", mention.substring(2, mention.length - 1));
|
||||
if (channel) {
|
||||
changed = changed.replace(new RegExp(mention, "g"), "#" + channel.name);
|
||||
}
|
||||
}
|
||||
return [_mentions, changed];
|
||||
};
|
||||
|
||||
Resolver.prototype.resolveString = function resolveString(resource) {
|
||||
|
||||
// accepts Array, Channel, Server, User, Message, String and anything
|
||||
// toString()-able
|
||||
|
||||
if (resource instanceof Array) {
|
||||
resource = resource.join("\n");
|
||||
}
|
||||
|
||||
return resource.toString();
|
||||
};
|
||||
|
||||
Resolver.prototype.resolveUser = function resolveUser(resource) {
|
||||
/*
|
||||
accepts a Message, Channel, Server, String ID, User, PMChannel
|
||||
*/
|
||||
if (resource instanceof _StructuresUser2["default"]) {
|
||||
return resource;
|
||||
}
|
||||
if (resource instanceof _StructuresMessage2["default"]) {
|
||||
return resource.author;
|
||||
}
|
||||
if (resource instanceof _StructuresTextChannel2["default"]) {
|
||||
var lmsg = resource.lastMessage;
|
||||
if (lmsg) {
|
||||
return lmsg.author;
|
||||
}
|
||||
}
|
||||
if (resource instanceof _StructuresServer2["default"]) {
|
||||
return resource.owner;
|
||||
}
|
||||
if (resource instanceof _StructuresPMChannel2["default"]) {
|
||||
return resource.recipient;
|
||||
}
|
||||
if (resource instanceof String || typeof resource === "string") {
|
||||
return this.internal.users.get("id", resource);
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
Resolver.prototype.resolveMessage = function resolveMessage(resource) {
|
||||
// accepts a Message, PMChannel & TextChannel
|
||||
|
||||
if (resource instanceof _StructuresTextChannel2["default"] || resource instanceof _StructuresPMChannel2["default"]) {
|
||||
return resource.lastMessage;
|
||||
}
|
||||
if (resource instanceof _StructuresMessage2["default"]) {
|
||||
return resource;
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
Resolver.prototype.resolveChannel = function resolveChannel(resource) {
|
||||
/*
|
||||
accepts a Message, Channel, VoiceConnection, Server, String ID, User
|
||||
*/
|
||||
|
||||
if (resource instanceof _StructuresMessage2["default"]) {
|
||||
return Promise.resolve(resource.channel);
|
||||
}
|
||||
if (resource instanceof _StructuresChannel2["default"]) {
|
||||
return Promise.resolve(resource);
|
||||
}
|
||||
if (resource instanceof _VoiceVoiceConnection2["default"]) {
|
||||
return Promise.resolve(resource.voiceChannel);
|
||||
}
|
||||
if (resource instanceof _StructuresServer2["default"]) {
|
||||
return Promise.resolve(resource.defaultChannel);
|
||||
}
|
||||
if (resource instanceof String || typeof resource === "string") {
|
||||
var user = this.internal.users.get("id", resource);
|
||||
if (user) {
|
||||
resource = user;
|
||||
} else {
|
||||
return Promise.resolve(this.internal.channels.get("id", resource) || this.internal.private_channels.get("id", resource));
|
||||
}
|
||||
}
|
||||
if (resource instanceof _StructuresUser2["default"]) {
|
||||
// see if a PM exists
|
||||
for (var _iterator5 = this.internal.private_channels, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
|
||||
var _ref5;
|
||||
|
||||
if (_isArray5) {
|
||||
if (_i5 >= _iterator5.length) break;
|
||||
_ref5 = _iterator5[_i5++];
|
||||
} else {
|
||||
_i5 = _iterator5.next();
|
||||
if (_i5.done) break;
|
||||
_ref5 = _i5.value;
|
||||
}
|
||||
|
||||
var pmchat = _ref5;
|
||||
|
||||
if (pmchat.recipient.equals(resource)) {
|
||||
return Promise.resolve(pmchat);
|
||||
}
|
||||
}
|
||||
|
||||
// PM does not exist :\
|
||||
return this.internal.startPM(resource);
|
||||
}
|
||||
var error = new Error("Could not resolve channel");
|
||||
error.resource = resource;
|
||||
return Promise.reject(error);
|
||||
};
|
||||
|
||||
return Resolver;
|
||||
})();
|
||||
|
||||
exports["default"] = Resolver;
|
||||
module.exports = exports["default"];
|
||||
|
||||
163
lib/Constants.js
163
lib/Constants.js
@@ -1,8 +1,155 @@
|
||||
"use strict";exports.__esModule = true;var Constants={};var API=Constants.API = "https://discordapp.com/api";var Endpoints=Constants.Endpoints = { // general endpoints
|
||||
LOGIN:API + "/auth/login",LOGOUT:API + "/auth/logout",ME:API + "/users/@me",ME_CHANNELS:API + "/users/@me/channels",ME_SERVER:function ME_SERVER(serverID){return Endpoints.ME + "/guilds/" + serverID;},OAUTH2_APPLICATION:function OAUTH2_APPLICATION(appID){return API + "/oauth2/applications/" + appID;},ME_NOTES:API + "/users/@me/notes",GATEWAY:API + "/gateway",AVATAR:function AVATAR(userID,avatar){return API + "/users/" + userID + "/avatars/" + avatar + ".jpg";},INVITE:function INVITE(id){return API + "/invite/" + id;}, // servers
|
||||
SERVERS:API + "/guilds",SERVER:function SERVER(serverID){return Endpoints.SERVERS + "/" + serverID;},SERVER_ICON:function SERVER_ICON(serverID,hash){return Endpoints.SERVER(serverID) + "/icons/" + hash + ".jpg";},SERVER_PRUNE:function SERVER_PRUNE(serverID){return Endpoints.SERVER(serverID) + "/prune";},SERVER_EMBED:function SERVER_EMBED(serverID){return Endpoints.SERVER(serverID) + "/embed";},SERVER_INVITES:function SERVER_INVITES(serverID){return Endpoints.SERVER(serverID) + "/invites";},SERVER_ROLES:function SERVER_ROLES(serverID){return Endpoints.SERVER(serverID) + "/roles";},SERVER_BANS:function SERVER_BANS(serverID){return Endpoints.SERVER(serverID) + "/bans";},SERVER_INTEGRATIONS:function SERVER_INTEGRATIONS(serverID){return Endpoints.SERVER(serverID) + "/integrations";},SERVER_MEMBERS:function SERVER_MEMBERS(serverID){return Endpoints.SERVER(serverID) + "/members";},SERVER_CHANNELS:function SERVER_CHANNELS(serverID){return Endpoints.SERVER(serverID) + "/channels";}, // channels
|
||||
CHANNELS:API + "/channels",CHANNEL:function CHANNEL(channelID){return Endpoints.CHANNELS + "/" + channelID;},CHANNEL_MESSAGES:function CHANNEL_MESSAGES(channelID){return Endpoints.CHANNEL(channelID) + "/messages";},CHANNEL_INVITES:function CHANNEL_INVITES(channelID){return Endpoints.CHANNEL(channelID) + "/invites";},CHANNEL_TYPING:function CHANNEL_TYPING(channelID){return Endpoints.CHANNEL(channelID) + "/typing";},CHANNEL_PERMISSIONS:function CHANNEL_PERMISSIONS(channelID){return Endpoints.CHANNEL(channelID) + "/permissions";},CHANNEL_MESSAGE:function CHANNEL_MESSAGE(channelID,messageID){return Endpoints.CHANNEL_MESSAGES(channelID) + "/" + messageID;},CHANNEL_PINS:function CHANNEL_PINS(channelID){return Endpoints.CHANNEL(channelID) + "/pins";},CHANNEL_PIN:function CHANNEL_PIN(channelID,messageID){return Endpoints.CHANNEL_PINS(channelID) + "/" + messageID;}, // friends
|
||||
FRIENDS:API + "/users/@me/relationships"};Constants.Permissions = { // general
|
||||
createInstantInvite:1 << 0,kickMembers:1 << 1,banMembers:1 << 2,administrator:1 << 3,manageChannels:1 << 4,manageChannel:1 << 4,manageServer:1 << 5,changeNickname:1 << 26,manageNicknames:1 << 27,manageRoles:1 << 28,managePermissions:1 << 28, // text
|
||||
readMessages:1 << 10,sendMessages:1 << 11,sendTTSMessages:1 << 12,manageMessages:1 << 13,embedLinks:1 << 14,attachFiles:1 << 15,readMessageHistory:1 << 16,mentionEveryone:1 << 17, // voice
|
||||
voiceConnect:1 << 20,voiceSpeak:1 << 21,voiceMuteMembers:1 << 22,voiceDeafenMembers:1 << 23,voiceMoveMembers:1 << 24,voiceUseVAD:1 << 25};Constants.PacketType = {CHANNEL_CREATE:"CHANNEL_CREATE",CHANNEL_DELETE:"CHANNEL_DELETE",CHANNEL_UPDATE:"CHANNEL_UPDATE",MESSAGE_CREATE:"MESSAGE_CREATE",MESSAGE_DELETE:"MESSAGE_DELETE",MESSAGE_UPDATE:"MESSAGE_UPDATE",PRESENCE_UPDATE:"PRESENCE_UPDATE",READY:"READY",SERVER_BAN_ADD:"GUILD_BAN_ADD",SERVER_BAN_REMOVE:"GUILD_BAN_REMOVE",SERVER_CREATE:"GUILD_CREATE",SERVER_DELETE:"GUILD_DELETE",SERVER_MEMBER_ADD:"GUILD_MEMBER_ADD",SERVER_MEMBER_REMOVE:"GUILD_MEMBER_REMOVE",SERVER_MEMBER_UPDATE:"GUILD_MEMBER_UPDATE",SERVER_MEMBERS_CHUNK:"GUILD_MEMBERS_CHUNK",SERVER_ROLE_CREATE:"GUILD_ROLE_CREATE",SERVER_ROLE_DELETE:"GUILD_ROLE_DELETE",SERVER_ROLE_UPDATE:"GUILD_ROLE_UPDATE",SERVER_UPDATE:"GUILD_UPDATE",TYPING:"TYPING_START",USER_UPDATE:"USER_UPDATE",USER_NOTE_UPDATE:"USER_NOTE_UPDATE",VOICE_STATE_UPDATE:"VOICE_STATE_UPDATE",FRIEND_ADD:"RELATIONSHIP_ADD",FRIEND_REMOVE:"RELATIONSHIP_REMOVE"};exports["default"] = Constants;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
var Constants = {};
|
||||
|
||||
var API = Constants.API = "https://discordapp.com/api";
|
||||
|
||||
var Endpoints = Constants.Endpoints = {
|
||||
// general endpoints
|
||||
LOGIN: API + "/auth/login",
|
||||
LOGOUT: API + "/auth/logout",
|
||||
ME: API + "/users/@me",
|
||||
ME_CHANNELS: API + "/users/@me/channels",
|
||||
ME_SERVER: function ME_SERVER(serverID) {
|
||||
return Endpoints.ME + "/guilds/" + serverID;
|
||||
},
|
||||
OAUTH2_APPLICATION: function OAUTH2_APPLICATION(appID) {
|
||||
return API + "/oauth2/applications/" + appID;
|
||||
},
|
||||
ME_NOTES: API + "/users/@me/notes",
|
||||
GATEWAY: API + "/gateway",
|
||||
AVATAR: function AVATAR(userID, avatar) {
|
||||
return API + "/users/" + userID + "/avatars/" + avatar + ".jpg";
|
||||
},
|
||||
INVITE: function INVITE(id) {
|
||||
return API + "/invite/" + id;
|
||||
},
|
||||
|
||||
// servers
|
||||
SERVERS: API + "/guilds",
|
||||
SERVER: function SERVER(serverID) {
|
||||
return Endpoints.SERVERS + "/" + serverID;
|
||||
},
|
||||
SERVER_ICON: function SERVER_ICON(serverID, hash) {
|
||||
return Endpoints.SERVER(serverID) + "/icons/" + hash + ".jpg";
|
||||
},
|
||||
SERVER_PRUNE: function SERVER_PRUNE(serverID) {
|
||||
return Endpoints.SERVER(serverID) + "/prune";
|
||||
},
|
||||
SERVER_EMBED: function SERVER_EMBED(serverID) {
|
||||
return Endpoints.SERVER(serverID) + "/embed";
|
||||
},
|
||||
SERVER_INVITES: function SERVER_INVITES(serverID) {
|
||||
return Endpoints.SERVER(serverID) + "/invites";
|
||||
},
|
||||
SERVER_ROLES: function SERVER_ROLES(serverID) {
|
||||
return Endpoints.SERVER(serverID) + "/roles";
|
||||
},
|
||||
SERVER_BANS: function SERVER_BANS(serverID) {
|
||||
return Endpoints.SERVER(serverID) + "/bans";
|
||||
},
|
||||
SERVER_INTEGRATIONS: function SERVER_INTEGRATIONS(serverID) {
|
||||
return Endpoints.SERVER(serverID) + "/integrations";
|
||||
},
|
||||
SERVER_MEMBERS: function SERVER_MEMBERS(serverID) {
|
||||
return Endpoints.SERVER(serverID) + "/members";
|
||||
},
|
||||
SERVER_CHANNELS: function SERVER_CHANNELS(serverID) {
|
||||
return Endpoints.SERVER(serverID) + "/channels";
|
||||
},
|
||||
|
||||
// channels
|
||||
CHANNELS: API + "/channels",
|
||||
CHANNEL: function CHANNEL(channelID) {
|
||||
return Endpoints.CHANNELS + "/" + channelID;
|
||||
},
|
||||
CHANNEL_MESSAGES: function CHANNEL_MESSAGES(channelID) {
|
||||
return Endpoints.CHANNEL(channelID) + "/messages";
|
||||
},
|
||||
CHANNEL_INVITES: function CHANNEL_INVITES(channelID) {
|
||||
return Endpoints.CHANNEL(channelID) + "/invites";
|
||||
},
|
||||
CHANNEL_TYPING: function CHANNEL_TYPING(channelID) {
|
||||
return Endpoints.CHANNEL(channelID) + "/typing";
|
||||
},
|
||||
CHANNEL_PERMISSIONS: function CHANNEL_PERMISSIONS(channelID) {
|
||||
return Endpoints.CHANNEL(channelID) + "/permissions";
|
||||
},
|
||||
CHANNEL_MESSAGE: function CHANNEL_MESSAGE(channelID, messageID) {
|
||||
return Endpoints.CHANNEL_MESSAGES(channelID) + "/" + messageID;
|
||||
},
|
||||
CHANNEL_PINS: function CHANNEL_PINS(channelID) {
|
||||
return Endpoints.CHANNEL(channelID) + "/pins";
|
||||
},
|
||||
CHANNEL_PIN: function CHANNEL_PIN(channelID, messageID) {
|
||||
return Endpoints.CHANNEL_PINS(channelID) + "/" + messageID;
|
||||
},
|
||||
|
||||
// friends
|
||||
FRIENDS: API + "/users/@me/relationships"
|
||||
};
|
||||
|
||||
Constants.Permissions = {
|
||||
// general
|
||||
createInstantInvite: 1 << 0,
|
||||
kickMembers: 1 << 1,
|
||||
banMembers: 1 << 2,
|
||||
administrator: 1 << 3,
|
||||
manageChannels: 1 << 4,
|
||||
manageChannel: 1 << 4,
|
||||
manageServer: 1 << 5,
|
||||
changeNickname: 1 << 26,
|
||||
manageNicknames: 1 << 27,
|
||||
manageRoles: 1 << 28,
|
||||
managePermissions: 1 << 28,
|
||||
// text
|
||||
readMessages: 1 << 10,
|
||||
sendMessages: 1 << 11,
|
||||
sendTTSMessages: 1 << 12,
|
||||
manageMessages: 1 << 13,
|
||||
embedLinks: 1 << 14,
|
||||
attachFiles: 1 << 15,
|
||||
readMessageHistory: 1 << 16,
|
||||
mentionEveryone: 1 << 17,
|
||||
// voice
|
||||
voiceConnect: 1 << 20,
|
||||
voiceSpeak: 1 << 21,
|
||||
voiceMuteMembers: 1 << 22,
|
||||
voiceDeafenMembers: 1 << 23,
|
||||
voiceMoveMembers: 1 << 24,
|
||||
voiceUseVAD: 1 << 25
|
||||
|
||||
};
|
||||
|
||||
Constants.PacketType = {
|
||||
CHANNEL_CREATE: "CHANNEL_CREATE",
|
||||
CHANNEL_DELETE: "CHANNEL_DELETE",
|
||||
CHANNEL_UPDATE: "CHANNEL_UPDATE",
|
||||
MESSAGE_CREATE: "MESSAGE_CREATE",
|
||||
MESSAGE_DELETE: "MESSAGE_DELETE",
|
||||
MESSAGE_UPDATE: "MESSAGE_UPDATE",
|
||||
PRESENCE_UPDATE: "PRESENCE_UPDATE",
|
||||
READY: "READY",
|
||||
SERVER_BAN_ADD: "GUILD_BAN_ADD",
|
||||
SERVER_BAN_REMOVE: "GUILD_BAN_REMOVE",
|
||||
SERVER_CREATE: "GUILD_CREATE",
|
||||
SERVER_DELETE: "GUILD_DELETE",
|
||||
SERVER_MEMBER_ADD: "GUILD_MEMBER_ADD",
|
||||
SERVER_MEMBER_REMOVE: "GUILD_MEMBER_REMOVE",
|
||||
SERVER_MEMBER_UPDATE: "GUILD_MEMBER_UPDATE",
|
||||
SERVER_MEMBERS_CHUNK: "GUILD_MEMBERS_CHUNK",
|
||||
SERVER_ROLE_CREATE: "GUILD_ROLE_CREATE",
|
||||
SERVER_ROLE_DELETE: "GUILD_ROLE_DELETE",
|
||||
SERVER_ROLE_UPDATE: "GUILD_ROLE_UPDATE",
|
||||
SERVER_UPDATE: "GUILD_UPDATE",
|
||||
TYPING: "TYPING_START",
|
||||
USER_UPDATE: "USER_UPDATE",
|
||||
USER_NOTE_UPDATE: "USER_NOTE_UPDATE",
|
||||
VOICE_STATE_UPDATE: "VOICE_STATE_UPDATE",
|
||||
FRIEND_ADD: "RELATIONSHIP_ADD",
|
||||
FRIEND_REMOVE: "RELATIONSHIP_REMOVE"
|
||||
};
|
||||
|
||||
exports["default"] = Constants;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1 +1,50 @@
|
||||
"use strict";exports.__esModule = true;var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if("value" in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _UtilEquality=require("../Util/Equality");var _UtilEquality2=_interopRequireDefault(_UtilEquality);var _UtilArgumentRegulariser=require("../Util/ArgumentRegulariser");var Channel=(function(_Equality){_inherits(Channel,_Equality);function Channel(data,client){_classCallCheck(this,Channel);_Equality.call(this);this.id = data.id;this.client = client;}Channel.prototype["delete"] = function _delete(){return this.client.deleteChannel.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};_createClass(Channel,[{key:"createdAt",get:function get(){return new Date(+this.id / 4194304 + 1420070400000);}},{key:"isPrivate",get:function get(){return !this.server;}}]);return Channel;})(_UtilEquality2["default"]);exports["default"] = Channel;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _UtilEquality = require("../Util/Equality");
|
||||
|
||||
var _UtilEquality2 = _interopRequireDefault(_UtilEquality);
|
||||
|
||||
var _UtilArgumentRegulariser = require("../Util/ArgumentRegulariser");
|
||||
|
||||
var Channel = (function (_Equality) {
|
||||
_inherits(Channel, _Equality);
|
||||
|
||||
function Channel(data, client) {
|
||||
_classCallCheck(this, Channel);
|
||||
|
||||
_Equality.call(this);
|
||||
this.id = data.id;
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
Channel.prototype["delete"] = function _delete() {
|
||||
return this.client.deleteChannel.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
_createClass(Channel, [{
|
||||
key: "createdAt",
|
||||
get: function get() {
|
||||
return new Date(+this.id / 4194304 + 1420070400000);
|
||||
}
|
||||
}, {
|
||||
key: "isPrivate",
|
||||
get: function get() {
|
||||
return !this.server;
|
||||
}
|
||||
}]);
|
||||
|
||||
return Channel;
|
||||
})(_UtilEquality2["default"]);
|
||||
|
||||
exports["default"] = Channel;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,7 +1,78 @@
|
||||
"use strict";exports.__esModule = true;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var _Constants=require("../Constants");var ChannelPermissions=(function(){function ChannelPermissions(permissions){_classCallCheck(this,ChannelPermissions);this.permissions = permissions;}ChannelPermissions.prototype.serialise = function serialise(explicit){var _this=this;var hp=function hp(perm){return _this.hasPermission(perm,explicit);};return { // general
|
||||
createInstantInvite:hp(_Constants.Permissions.createInstantInvite),kickMembers:hp(_Constants.Permissions.kickMembers),banMembers:hp(_Constants.Permissions.banMembers),managePermissions:hp(_Constants.Permissions.managePermissions),manageChannel:hp(_Constants.Permissions.manageChannel),manageServer:hp(_Constants.Permissions.manageServer), // text
|
||||
readMessages:hp(_Constants.Permissions.readMessages),sendMessages:hp(_Constants.Permissions.sendMessages),sendTTSMessages:hp(_Constants.Permissions.sendTTSMessages),manageMessages:hp(_Constants.Permissions.manageMessages),embedLinks:hp(_Constants.Permissions.embedLinks),attachFiles:hp(_Constants.Permissions.attachFiles),readMessageHistory:hp(_Constants.Permissions.readMessageHistory),mentionEveryone:hp(_Constants.Permissions.mentionEveryone), // voice
|
||||
voiceConnect:hp(_Constants.Permissions.voiceConnect),voiceSpeak:hp(_Constants.Permissions.voiceSpeak),voiceMuteMembers:hp(_Constants.Permissions.voiceMuteMembers),voiceDeafenMembers:hp(_Constants.Permissions.voiceDeafenMembers),voiceMoveMembers:hp(_Constants.Permissions.voiceMoveMembers),voiceUseVAD:hp(_Constants.Permissions.voiceUseVAD)};};ChannelPermissions.prototype.serialize = function serialize(){ // ;n;
|
||||
return this.serialise();};ChannelPermissions.prototype.hasPermission = function hasPermission(perm){var explicit=arguments.length <= 1 || arguments[1] === undefined?false:arguments[1];if(perm instanceof String || typeof perm === "string"){perm = _Constants.Permissions[perm];}if(!perm){return false;}if(!explicit){ // implicit permissions allowed
|
||||
if(!!(this.permissions & _Constants.Permissions.manageRoles)){ // manageRoles allowed, they have all permissions
|
||||
return true;}}return !!(this.permissions & perm);};return ChannelPermissions;})();exports["default"] = ChannelPermissions;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var _Constants = require("../Constants");
|
||||
|
||||
var ChannelPermissions = (function () {
|
||||
function ChannelPermissions(permissions) {
|
||||
_classCallCheck(this, ChannelPermissions);
|
||||
|
||||
this.permissions = permissions;
|
||||
}
|
||||
|
||||
ChannelPermissions.prototype.serialise = function serialise(explicit) {
|
||||
var _this = this;
|
||||
|
||||
var hp = function hp(perm) {
|
||||
return _this.hasPermission(perm, explicit);
|
||||
};
|
||||
|
||||
return {
|
||||
// general
|
||||
createInstantInvite: hp(_Constants.Permissions.createInstantInvite),
|
||||
kickMembers: hp(_Constants.Permissions.kickMembers),
|
||||
banMembers: hp(_Constants.Permissions.banMembers),
|
||||
managePermissions: hp(_Constants.Permissions.managePermissions),
|
||||
manageChannel: hp(_Constants.Permissions.manageChannel),
|
||||
manageServer: hp(_Constants.Permissions.manageServer),
|
||||
// text
|
||||
readMessages: hp(_Constants.Permissions.readMessages),
|
||||
sendMessages: hp(_Constants.Permissions.sendMessages),
|
||||
sendTTSMessages: hp(_Constants.Permissions.sendTTSMessages),
|
||||
manageMessages: hp(_Constants.Permissions.manageMessages),
|
||||
embedLinks: hp(_Constants.Permissions.embedLinks),
|
||||
attachFiles: hp(_Constants.Permissions.attachFiles),
|
||||
readMessageHistory: hp(_Constants.Permissions.readMessageHistory),
|
||||
mentionEveryone: hp(_Constants.Permissions.mentionEveryone),
|
||||
// voice
|
||||
voiceConnect: hp(_Constants.Permissions.voiceConnect),
|
||||
voiceSpeak: hp(_Constants.Permissions.voiceSpeak),
|
||||
voiceMuteMembers: hp(_Constants.Permissions.voiceMuteMembers),
|
||||
voiceDeafenMembers: hp(_Constants.Permissions.voiceDeafenMembers),
|
||||
voiceMoveMembers: hp(_Constants.Permissions.voiceMoveMembers),
|
||||
voiceUseVAD: hp(_Constants.Permissions.voiceUseVAD)
|
||||
};
|
||||
};
|
||||
|
||||
ChannelPermissions.prototype.serialize = function serialize() {
|
||||
// ;n;
|
||||
return this.serialise();
|
||||
};
|
||||
|
||||
ChannelPermissions.prototype.hasPermission = function hasPermission(perm) {
|
||||
var explicit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
|
||||
|
||||
if (perm instanceof String || typeof perm === "string") {
|
||||
perm = _Constants.Permissions[perm];
|
||||
}
|
||||
if (!perm) {
|
||||
return false;
|
||||
}
|
||||
if (!explicit) {
|
||||
// implicit permissions allowed
|
||||
if (!!(this.permissions & _Constants.Permissions.manageRoles)) {
|
||||
// manageRoles allowed, they have all permissions
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return !!(this.permissions & perm);
|
||||
};
|
||||
|
||||
return ChannelPermissions;
|
||||
})();
|
||||
|
||||
exports["default"] = ChannelPermissions;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1 +1,47 @@
|
||||
"use strict";exports.__esModule = true;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Invite=(function(){function Invite(data,chan,client){_classCallCheck(this,Invite);this.maxAge = data.max_age;this.code = data.code;if(chan){this.channel = chan;this.server = chan.server;}else {this.channel = data.channel;this.server = data.guild;}this.revoked = data.revoked;this.createdAt = Date.parse(data.created_at);this.temporary = data.temporary;this.uses = data.uses;this.maxUses = data.max_uses;if(data.inviter){this.inviter = client.internal.users.get("id",data.inviter.id);}this.xkcd = data.xkcdpass;}Invite.prototype.toString = function toString(){return "https://discord.gg/" + this.code;};Invite.prototype["delete"] = function _delete(){return this.client.deleteInvite.apply(this.client,reg(this,arguments));};Invite.prototype.join = function join(){return this.client.joinServer.apply(this.client,reg(this,arguments));};return Invite;})();exports["default"] = Invite;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var Invite = (function () {
|
||||
function Invite(data, chan, client) {
|
||||
_classCallCheck(this, Invite);
|
||||
|
||||
this.maxAge = data.max_age;
|
||||
this.code = data.code;
|
||||
if (chan) {
|
||||
this.channel = chan;
|
||||
this.server = chan.server;
|
||||
} else {
|
||||
this.channel = data.channel;
|
||||
this.server = data.guild;
|
||||
}
|
||||
this.revoked = data.revoked;
|
||||
this.createdAt = Date.parse(data.created_at);
|
||||
this.temporary = data.temporary;
|
||||
this.uses = data.uses;
|
||||
this.maxUses = data.max_uses;
|
||||
if (data.inviter) {
|
||||
this.inviter = client.internal.users.get("id", data.inviter.id);
|
||||
}
|
||||
this.xkcd = data.xkcdpass;
|
||||
}
|
||||
|
||||
Invite.prototype.toString = function toString() {
|
||||
return "https://discord.gg/" + this.code;
|
||||
};
|
||||
|
||||
Invite.prototype["delete"] = function _delete() {
|
||||
return this.client.deleteInvite.apply(this.client, reg(this, arguments));
|
||||
};
|
||||
|
||||
Invite.prototype.join = function join() {
|
||||
return this.client.joinServer.apply(this.client, reg(this, arguments));
|
||||
};
|
||||
|
||||
return Invite;
|
||||
})();
|
||||
|
||||
exports["default"] = Invite;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,8 +1,151 @@
|
||||
"use strict"; /**
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Options that can be applied to a message before sending it.
|
||||
* @typedef {(object)} MessageOptions
|
||||
* @property {boolean} [tts=false] Whether or not the message should be sent as text-to-speech.
|
||||
*/exports.__esModule = true;var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if("value" in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _UtilCache=require("../Util/Cache");var _UtilCache2=_interopRequireDefault(_UtilCache);var _User=require("./User");var _User2=_interopRequireDefault(_User);var _UtilArgumentRegulariser=require("../Util/ArgumentRegulariser");var _UtilEquality=require("../Util/Equality");var _UtilEquality2=_interopRequireDefault(_UtilEquality);var Message=(function(_Equality){_inherits(Message,_Equality);function Message(data,channel,client){var _this=this;_classCallCheck(this,Message);_Equality.call(this);this.channel = channel;this.server = channel.server;this.client = client;this.nonce = data.nonce;this.attachments = data.attachments;this.tts = data.tts;this.embeds = data.embeds;this.timestamp = Date.parse(data.timestamp);this.everyoneMentioned = data.mention_everyone || data.everyoneMentioned;this.pinned = data.pinned;this.id = data.id;if(data.edited_timestamp){this.editedTimestamp = Date.parse(data.edited_timestamp);}if(data.author instanceof _User2["default"]){this.author = data.author;}else if(data.author){this.author = client.internal.users.add(new _User2["default"](data.author,client));}this.content = data.content;var mentionData=client.internal.resolver.resolveMentions(data.content,channel);this.cleanContent = mentionData[1];this.mentions = [];mentionData[0].forEach(function(mention){ // this is .add and not .get because it allows the bot to cache
|
||||
// users from messages from logs who may have left the server and were
|
||||
// not previously cached.
|
||||
if(mention instanceof _User2["default"]){_this.mentions.push(mention);}else {_this.mentions.push(client.internal.users.add(new _User2["default"](mention,client)));}});}Message.prototype.isMentioned = function isMentioned(user){user = this.client.internal.resolver.resolveUser(user);if(!user){return false;}for(var _iterator=this.mentions,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;) {var _ref;if(_isArray){if(_i >= _iterator.length)break;_ref = _iterator[_i++];}else {_i = _iterator.next();if(_i.done)break;_ref = _i.value;}var mention=_ref;if(mention.id == user.id){return true;}}return false;};Message.prototype.toString = function toString(){return this.content;};Message.prototype["delete"] = function _delete(){return this.client.deleteMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};Message.prototype.update = function update(){return this.client.updateMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};Message.prototype.edit = function edit(){return this.client.updateMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};Message.prototype.reply = function reply(){return this.client.reply.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};Message.prototype.replyTTS = function replyTTS(){return this.client.replyTTS.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};Message.prototype.pin = function pin(){return this.client.pinMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};Message.prototype.unpin = function unpin(){return this.client.unpinMessage.apply(this.client,req(this,arguments));};_createClass(Message,[{key:"sender",get:function get(){return this.author;}}]);return Message;})(_UtilEquality2["default"]);exports["default"] = Message;module.exports = exports["default"];
|
||||
*/
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _UtilCache = require("../Util/Cache");
|
||||
|
||||
var _UtilCache2 = _interopRequireDefault(_UtilCache);
|
||||
|
||||
var _User = require("./User");
|
||||
|
||||
var _User2 = _interopRequireDefault(_User);
|
||||
|
||||
var _UtilArgumentRegulariser = require("../Util/ArgumentRegulariser");
|
||||
|
||||
var _UtilEquality = require("../Util/Equality");
|
||||
|
||||
var _UtilEquality2 = _interopRequireDefault(_UtilEquality);
|
||||
|
||||
var Message = (function (_Equality) {
|
||||
_inherits(Message, _Equality);
|
||||
|
||||
function Message(data, channel, client) {
|
||||
var _this = this;
|
||||
|
||||
_classCallCheck(this, Message);
|
||||
|
||||
_Equality.call(this);
|
||||
this.channel = channel;
|
||||
this.server = channel.server;
|
||||
this.client = client;
|
||||
this.nonce = data.nonce;
|
||||
this.attachments = data.attachments;
|
||||
this.tts = data.tts;
|
||||
this.embeds = data.embeds;
|
||||
this.timestamp = Date.parse(data.timestamp);
|
||||
this.everyoneMentioned = data.mention_everyone !== undefined ? data.mention_everyone : data.everyoneMentioned;
|
||||
this.pinned = data.pinned;
|
||||
this.id = data.id;
|
||||
|
||||
if (data.edited_timestamp) {
|
||||
this.editedTimestamp = Date.parse(data.edited_timestamp);
|
||||
}
|
||||
|
||||
if (data.author instanceof _User2["default"]) {
|
||||
this.author = data.author;
|
||||
} else if (data.author) {
|
||||
this.author = client.internal.users.add(new _User2["default"](data.author, client));
|
||||
}
|
||||
|
||||
this.content = data.content;
|
||||
|
||||
var mentionData = client.internal.resolver.resolveMentions(data.content, channel);
|
||||
this.cleanContent = mentionData[1];
|
||||
this.mentions = [];
|
||||
|
||||
mentionData[0].forEach(function (mention) {
|
||||
// this is .add and not .get because it allows the bot to cache
|
||||
// users from messages from logs who may have left the server and were
|
||||
// not previously cached.
|
||||
if (mention instanceof _User2["default"]) {
|
||||
_this.mentions.push(mention);
|
||||
} else {
|
||||
_this.mentions.push(client.internal.users.add(new _User2["default"](mention, client)));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Message.prototype.isMentioned = function isMentioned(user) {
|
||||
user = this.client.internal.resolver.resolveUser(user);
|
||||
if (!user) {
|
||||
return false;
|
||||
}
|
||||
for (var _iterator = this.mentions, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
||||
var _ref;
|
||||
|
||||
if (_isArray) {
|
||||
if (_i >= _iterator.length) break;
|
||||
_ref = _iterator[_i++];
|
||||
} else {
|
||||
_i = _iterator.next();
|
||||
if (_i.done) break;
|
||||
_ref = _i.value;
|
||||
}
|
||||
|
||||
var mention = _ref;
|
||||
|
||||
if (mention.id == user.id) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
Message.prototype.toString = function toString() {
|
||||
return this.content;
|
||||
};
|
||||
|
||||
Message.prototype["delete"] = function _delete() {
|
||||
return this.client.deleteMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
Message.prototype.update = function update() {
|
||||
return this.client.updateMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
Message.prototype.edit = function edit() {
|
||||
return this.client.updateMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
Message.prototype.reply = function reply() {
|
||||
return this.client.reply.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
Message.prototype.replyTTS = function replyTTS() {
|
||||
return this.client.replyTTS.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
Message.prototype.pin = function pin() {
|
||||
return this.client.pinMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
Message.prototype.unpin = function unpin() {
|
||||
return this.client.unpinMessage.apply(this.client, req(this, arguments));
|
||||
};
|
||||
|
||||
_createClass(Message, [{
|
||||
key: "sender",
|
||||
get: function get() {
|
||||
return this.author;
|
||||
}
|
||||
}]);
|
||||
|
||||
return Message;
|
||||
})(_UtilEquality2["default"]);
|
||||
|
||||
exports["default"] = Message;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1 +1,94 @@
|
||||
"use strict";exports.__esModule = true;var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if("value" in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _Channel2=require("./Channel");var _Channel3=_interopRequireDefault(_Channel2);var _User=require("./User");var _User2=_interopRequireDefault(_User);var _UtilCache=require("../Util/Cache");var _UtilCache2=_interopRequireDefault(_UtilCache);var _UtilArgumentRegulariser=require("../Util/ArgumentRegulariser");var PMChannel=(function(_Channel){_inherits(PMChannel,_Channel);function PMChannel(data,client){_classCallCheck(this,PMChannel);_Channel.call(this,data,client);this.type = data.type || "text";this.lastMessageID = data.last_message_id || data.lastMessageID;this.messages = new _UtilCache2["default"]("id",client.options.maxCachedMessages);this.recipient = this.client.internal.users.add(new _User2["default"](data.recipient,this.client));} /* warning! may return null */PMChannel.prototype.toString = function toString(){return this.recipient.toString();};PMChannel.prototype.sendMessage = function sendMessage(){return this.client.sendMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};PMChannel.prototype.send = function send(){return this.client.sendMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};PMChannel.prototype.sendTTSMessage = function sendTTSMessage(){return this.client.sendTTSMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};PMChannel.prototype.sendTTS = function sendTTS(){return this.client.sendTTSMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};PMChannel.prototype.sendFile = function sendFile(){return this.client.sendFile.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};PMChannel.prototype.startTyping = function startTyping(){return this.client.startTyping.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};PMChannel.prototype.stopTyping = function stopTyping(){return this.client.stopTyping.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};PMChannel.prototype.getLogs = function getLogs(){return this.client.getChannelLogs.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};PMChannel.prototype.getMessage = function getMessage(){return this.client.getMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};_createClass(PMChannel,[{key:"lastMessage",get:function get(){return this.messages.get("id",this.lastMessageID);}}]);return PMChannel;})(_Channel3["default"]);exports["default"] = PMChannel;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _Channel2 = require("./Channel");
|
||||
|
||||
var _Channel3 = _interopRequireDefault(_Channel2);
|
||||
|
||||
var _User = require("./User");
|
||||
|
||||
var _User2 = _interopRequireDefault(_User);
|
||||
|
||||
var _UtilCache = require("../Util/Cache");
|
||||
|
||||
var _UtilCache2 = _interopRequireDefault(_UtilCache);
|
||||
|
||||
var _UtilArgumentRegulariser = require("../Util/ArgumentRegulariser");
|
||||
|
||||
var PMChannel = (function (_Channel) {
|
||||
_inherits(PMChannel, _Channel);
|
||||
|
||||
function PMChannel(data, client) {
|
||||
_classCallCheck(this, PMChannel);
|
||||
|
||||
_Channel.call(this, data, client);
|
||||
|
||||
this.type = data.type || "text";
|
||||
this.lastMessageID = data.last_message_id || data.lastMessageID;
|
||||
this.messages = new _UtilCache2["default"]("id", client.options.maxCachedMessages);
|
||||
this.recipient = this.client.internal.users.add(new _User2["default"](data.recipient, this.client));
|
||||
}
|
||||
|
||||
/* warning! may return null */
|
||||
|
||||
PMChannel.prototype.toString = function toString() {
|
||||
return this.recipient.toString();
|
||||
};
|
||||
|
||||
PMChannel.prototype.sendMessage = function sendMessage() {
|
||||
return this.client.sendMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
PMChannel.prototype.send = function send() {
|
||||
return this.client.sendMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
PMChannel.prototype.sendTTSMessage = function sendTTSMessage() {
|
||||
return this.client.sendTTSMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
PMChannel.prototype.sendTTS = function sendTTS() {
|
||||
return this.client.sendTTSMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
PMChannel.prototype.sendFile = function sendFile() {
|
||||
return this.client.sendFile.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
PMChannel.prototype.startTyping = function startTyping() {
|
||||
return this.client.startTyping.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
PMChannel.prototype.stopTyping = function stopTyping() {
|
||||
return this.client.stopTyping.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
PMChannel.prototype.getLogs = function getLogs() {
|
||||
return this.client.getChannelLogs.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
PMChannel.prototype.getMessage = function getMessage() {
|
||||
return this.client.getMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
_createClass(PMChannel, [{
|
||||
key: "lastMessage",
|
||||
get: function get() {
|
||||
return this.messages.get("id", this.lastMessageID);
|
||||
}
|
||||
}]);
|
||||
|
||||
return PMChannel;
|
||||
})(_Channel3["default"]);
|
||||
|
||||
exports["default"] = PMChannel;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,6 +1,89 @@
|
||||
"use strict";exports.__esModule = true;var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if("value" in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var _Constants=require("../Constants");var PermissionOverwrite=(function(){function PermissionOverwrite(data){_classCallCheck(this,PermissionOverwrite);this.id = data.id;this.type = data.type; // member or role
|
||||
this.deny = data.deny;this.allow = data.allow;} // returns an array of allowed permissions
|
||||
PermissionOverwrite.prototype.setAllowed = function setAllowed(allowedArray){var _this=this;allowedArray.forEach(function(permission){if(permission instanceof String || typeof permission === "string"){permission = _Constants.Permissions[permission];}if(permission){_this.allow |= 1 << permission;}});};PermissionOverwrite.prototype.setDenied = function setDenied(deniedArray){var _this2=this;deniedArray.forEach(function(permission){if(permission instanceof String || typeof permission === "string"){permission = _Constants.Permissions[permission];}if(permission){_this2.deny |= 1 << permission;}});};_createClass(PermissionOverwrite,[{key:"allowed",get:function get(){var allowed=[];for(var permName in _Constants.Permissions) {if(permName === "manageRoles" || permName === "manageChannels"){ // these permissions do not exist in overwrites.
|
||||
continue;}if(!!(this.allow & _Constants.Permissions[permName])){allowed.push(permName);}}return allowed;} // returns an array of denied permissions
|
||||
},{key:"denied",get:function get(){var denied=[];for(var permName in _Constants.Permissions) {if(permName === "manageRoles" || permName === "manageChannels"){ // these permissions do not exist in overwrites.
|
||||
continue;}if(!!(this.deny & _Constants.Permissions[permName])){denied.push(permName);}}return denied;}}]);return PermissionOverwrite;})();exports["default"] = PermissionOverwrite;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var _Constants = require("../Constants");
|
||||
|
||||
var PermissionOverwrite = (function () {
|
||||
function PermissionOverwrite(data) {
|
||||
_classCallCheck(this, PermissionOverwrite);
|
||||
|
||||
this.id = data.id;
|
||||
this.type = data.type; // member or role
|
||||
this.deny = data.deny;
|
||||
this.allow = data.allow;
|
||||
}
|
||||
|
||||
// returns an array of allowed permissions
|
||||
|
||||
PermissionOverwrite.prototype.setAllowed = function setAllowed(allowedArray) {
|
||||
var _this = this;
|
||||
|
||||
allowedArray.forEach(function (permission) {
|
||||
if (permission instanceof String || typeof permission === "string") {
|
||||
permission = _Constants.Permissions[permission];
|
||||
}
|
||||
if (permission) {
|
||||
_this.allow |= 1 << permission;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
PermissionOverwrite.prototype.setDenied = function setDenied(deniedArray) {
|
||||
var _this2 = this;
|
||||
|
||||
deniedArray.forEach(function (permission) {
|
||||
if (permission instanceof String || typeof permission === "string") {
|
||||
permission = _Constants.Permissions[permission];
|
||||
}
|
||||
if (permission) {
|
||||
_this2.deny |= 1 << permission;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
_createClass(PermissionOverwrite, [{
|
||||
key: "allowed",
|
||||
get: function get() {
|
||||
var allowed = [];
|
||||
for (var permName in _Constants.Permissions) {
|
||||
if (permName === "manageRoles" || permName === "manageChannels") {
|
||||
// these permissions do not exist in overwrites.
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!!(this.allow & _Constants.Permissions[permName])) {
|
||||
allowed.push(permName);
|
||||
}
|
||||
}
|
||||
return allowed;
|
||||
}
|
||||
|
||||
// returns an array of denied permissions
|
||||
}, {
|
||||
key: "denied",
|
||||
get: function get() {
|
||||
var denied = [];
|
||||
for (var permName in _Constants.Permissions) {
|
||||
if (permName === "manageRoles" || permName === "manageChannels") {
|
||||
// these permissions do not exist in overwrites.
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!!(this.deny & _Constants.Permissions[permName])) {
|
||||
denied.push(permName);
|
||||
}
|
||||
}
|
||||
return denied;
|
||||
}
|
||||
}]);
|
||||
|
||||
return PermissionOverwrite;
|
||||
})();
|
||||
|
||||
exports["default"] = PermissionOverwrite;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,4 +1,15 @@
|
||||
"use strict";exports.__esModule = true;var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if("value" in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var _Constants=require("../Constants");var _UtilArgumentRegulariser=require("../Util/ArgumentRegulariser"); /*
|
||||
"use strict";
|
||||
exports.__esModule = true;
|
||||
|
||||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var _Constants = require("../Constants");
|
||||
|
||||
var _UtilArgumentRegulariser = require("../Util/ArgumentRegulariser");
|
||||
|
||||
/*
|
||||
|
||||
example data
|
||||
|
||||
@@ -9,15 +20,172 @@ example data
|
||||
id: '110007368451915776',
|
||||
hoist: false,
|
||||
color: 0 }
|
||||
*/var DefaultRole=[_Constants.Permissions.createInstantInvite,_Constants.Permissions.readMessages,_Constants.Permissions.readMessageHistory,_Constants.Permissions.sendMessages,_Constants.Permissions.sendTTSMessages,_Constants.Permissions.embedLinks,_Constants.Permissions.attachFiles,_Constants.Permissions.readMessageHistory,_Constants.Permissions.mentionEveryone,_Constants.Permissions.voiceConnect,_Constants.Permissions.voiceSpeak,_Constants.Permissions.voiceUseVAD].reduce(function(previous,current){return previous | current;},0);var Role=(function(){function Role(data,server,client){_classCallCheck(this,Role);this.position = data.position || -1;this.permissions = data.permissions || (data.name === "@everyone"?DefaultRole:0);this.name = data.name || "@everyone";this.managed = data.managed || false;this.id = data.id;this.hoist = data.hoist || false;this.color = data.color || 0;this.server = server;this.client = client;this.mentionable = data.mentionable || false;}Role.prototype.serialise = function serialise(explicit){var _this=this;var hp=function hp(perm){return _this.hasPermission(perm,explicit);};return { // general
|
||||
createInstantInvite:hp(_Constants.Permissions.createInstantInvite),kickMembers:hp(_Constants.Permissions.kickMembers),banMembers:hp(_Constants.Permissions.banMembers),manageRoles:hp(_Constants.Permissions.manageRoles),manageChannels:hp(_Constants.Permissions.manageChannels),manageServer:hp(_Constants.Permissions.manageServer), // text
|
||||
readMessages:hp(_Constants.Permissions.readMessages),sendMessages:hp(_Constants.Permissions.sendMessages),sendTTSMessages:hp(_Constants.Permissions.sendTTSMessages),manageMessages:hp(_Constants.Permissions.manageMessages),embedLinks:hp(_Constants.Permissions.embedLinks),attachFiles:hp(_Constants.Permissions.attachFiles),readMessageHistory:hp(_Constants.Permissions.readMessageHistory),mentionEveryone:hp(_Constants.Permissions.mentionEveryone), // voice
|
||||
voiceConnect:hp(_Constants.Permissions.voiceConnect),voiceSpeak:hp(_Constants.Permissions.voiceSpeak),voiceMuteMembers:hp(_Constants.Permissions.voiceMuteMembers),voiceDeafenMembers:hp(_Constants.Permissions.voiceDeafenMembers),voiceMoveMembers:hp(_Constants.Permissions.voiceMoveMembers),voiceUseVAD:hp(_Constants.Permissions.voiceUseVAD)};};Role.prototype.serialize = function serialize(){ // ;n;
|
||||
return this.serialise();};Role.prototype.hasPermission = function hasPermission(perm){var explicit=arguments.length <= 1 || arguments[1] === undefined?false:arguments[1];if(perm instanceof String || typeof perm === "string"){perm = _Constants.Permissions[perm];}if(!perm){return false;}if(!explicit){ // implicit permissions allowed
|
||||
if(!!(this.permissions & _Constants.Permissions.manageRoles)){ // manageRoles allowed, they have all permissions
|
||||
return true;}} // e.g.
|
||||
// !!(36953089 & Permissions.manageRoles) = not allowed to manage roles
|
||||
// !!(36953089 & (1 << 21)) = voice speak allowed
|
||||
return !!(this.permissions & perm);};Role.prototype.setPermission = function setPermission(permission,value){if(permission instanceof String || typeof permission === "string"){permission = _Constants.Permissions[permission];}if(permission){ // valid permission
|
||||
if(value){this.permissions |= permission;}else {this.permissions &= ~permission;}}};Role.prototype.setPermissions = function setPermissions(obj){var _this2=this;obj.forEach(function(value,permission){if(permission instanceof String || typeof permission === "string"){permission = _Constants.Permissions[permission];}if(permission){ // valid permission
|
||||
_this2.setPermission(permission,value);}});};Role.prototype.colorAsHex = function colorAsHex(){var val=this.color.toString(16);while(val.length < 6) {val = "0" + val;}return "#" + val;};Role.prototype["delete"] = function _delete(){return this.client.deleteRole.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};Role.prototype.edit = function edit(){return this.client.updateRole.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};Role.prototype.update = function update(){return this.client.updateRole.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};Role.prototype.addMember = function addMember(member,callback){return this.client.addMemberToRole.apply(this.client,[member,this,callback]);};Role.prototype.addUser = function addUser(member,callback){return this.client.addUserToRole.apply(this.client,[member,this,callback]);};Role.prototype.removeMember = function removeMember(member,callback){return this.client.removeMemberFromRole.apply(this.client,[member,this,callback]);};Role.prototype.removeUser = function removeUser(member,callback){return this.client.removeUserFromRole.apply(this.client,[member,this,callback]);};Role.prototype.mention = function mention(){if(this.mentionable)return "<@&" + this.id + ">";return this.name;};Role.prototype.toString = function toString(){return this.mention();};_createClass(Role,[{key:"createdAt",get:function get(){return new Date(+this.id / 4194304 + 1420070400000);}}]);return Role;})();exports["default"] = Role;module.exports = exports["default"];
|
||||
*/
|
||||
|
||||
var DefaultRole = [_Constants.Permissions.createInstantInvite, _Constants.Permissions.readMessages, _Constants.Permissions.readMessageHistory, _Constants.Permissions.sendMessages, _Constants.Permissions.sendTTSMessages, _Constants.Permissions.embedLinks, _Constants.Permissions.attachFiles, _Constants.Permissions.readMessageHistory, _Constants.Permissions.mentionEveryone, _Constants.Permissions.voiceConnect, _Constants.Permissions.voiceSpeak, _Constants.Permissions.voiceUseVAD].reduce(function (previous, current) {
|
||||
return previous | current;
|
||||
}, 0);
|
||||
|
||||
var Role = (function () {
|
||||
function Role(data, server, client) {
|
||||
_classCallCheck(this, Role);
|
||||
|
||||
this.position = data.position || -1;
|
||||
this.permissions = data.permissions || (data.name === "@everyone" ? DefaultRole : 0);
|
||||
this.name = data.name || "@everyone";
|
||||
this.managed = data.managed || false;
|
||||
this.id = data.id;
|
||||
this.hoist = data.hoist || false;
|
||||
this.color = data.color || 0;
|
||||
this.server = server;
|
||||
this.client = client;
|
||||
this.mentionable = data.mentionable || false;
|
||||
}
|
||||
|
||||
Role.prototype.serialise = function serialise(explicit) {
|
||||
var _this = this;
|
||||
|
||||
var hp = function hp(perm) {
|
||||
return _this.hasPermission(perm, explicit);
|
||||
};
|
||||
|
||||
return {
|
||||
// general
|
||||
createInstantInvite: hp(_Constants.Permissions.createInstantInvite),
|
||||
kickMembers: hp(_Constants.Permissions.kickMembers),
|
||||
banMembers: hp(_Constants.Permissions.banMembers),
|
||||
manageRoles: hp(_Constants.Permissions.manageRoles),
|
||||
manageChannels: hp(_Constants.Permissions.manageChannels),
|
||||
manageServer: hp(_Constants.Permissions.manageServer),
|
||||
// text
|
||||
readMessages: hp(_Constants.Permissions.readMessages),
|
||||
sendMessages: hp(_Constants.Permissions.sendMessages),
|
||||
sendTTSMessages: hp(_Constants.Permissions.sendTTSMessages),
|
||||
manageMessages: hp(_Constants.Permissions.manageMessages),
|
||||
embedLinks: hp(_Constants.Permissions.embedLinks),
|
||||
attachFiles: hp(_Constants.Permissions.attachFiles),
|
||||
readMessageHistory: hp(_Constants.Permissions.readMessageHistory),
|
||||
mentionEveryone: hp(_Constants.Permissions.mentionEveryone),
|
||||
// voice
|
||||
voiceConnect: hp(_Constants.Permissions.voiceConnect),
|
||||
voiceSpeak: hp(_Constants.Permissions.voiceSpeak),
|
||||
voiceMuteMembers: hp(_Constants.Permissions.voiceMuteMembers),
|
||||
voiceDeafenMembers: hp(_Constants.Permissions.voiceDeafenMembers),
|
||||
voiceMoveMembers: hp(_Constants.Permissions.voiceMoveMembers),
|
||||
voiceUseVAD: hp(_Constants.Permissions.voiceUseVAD)
|
||||
};
|
||||
};
|
||||
|
||||
Role.prototype.serialize = function serialize() {
|
||||
// ;n;
|
||||
return this.serialise();
|
||||
};
|
||||
|
||||
Role.prototype.hasPermission = function hasPermission(perm) {
|
||||
var explicit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
|
||||
|
||||
if (perm instanceof String || typeof perm === "string") {
|
||||
perm = _Constants.Permissions[perm];
|
||||
}
|
||||
if (!perm) {
|
||||
return false;
|
||||
}
|
||||
if (!explicit) {
|
||||
// implicit permissions allowed
|
||||
if (!!(this.permissions & _Constants.Permissions.manageRoles)) {
|
||||
// manageRoles allowed, they have all permissions
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// e.g.
|
||||
// !!(36953089 & Permissions.manageRoles) = not allowed to manage roles
|
||||
// !!(36953089 & (1 << 21)) = voice speak allowed
|
||||
|
||||
return !!(this.permissions & perm);
|
||||
};
|
||||
|
||||
Role.prototype.setPermission = function setPermission(permission, value) {
|
||||
if (permission instanceof String || typeof permission === "string") {
|
||||
permission = _Constants.Permissions[permission];
|
||||
}
|
||||
if (permission) {
|
||||
// valid permission
|
||||
if (value) {
|
||||
this.permissions |= permission;
|
||||
} else {
|
||||
this.permissions &= ~permission;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Role.prototype.setPermissions = function setPermissions(obj) {
|
||||
var _this2 = this;
|
||||
|
||||
obj.forEach(function (value, permission) {
|
||||
if (permission instanceof String || typeof permission === "string") {
|
||||
permission = _Constants.Permissions[permission];
|
||||
}
|
||||
if (permission) {
|
||||
// valid permission
|
||||
_this2.setPermission(permission, value);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
Role.prototype.colorAsHex = function colorAsHex() {
|
||||
var val = this.color.toString(16);
|
||||
while (val.length < 6) {
|
||||
val = "0" + val;
|
||||
}
|
||||
return "#" + val;
|
||||
};
|
||||
|
||||
Role.prototype["delete"] = function _delete() {
|
||||
return this.client.deleteRole.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
Role.prototype.edit = function edit() {
|
||||
return this.client.updateRole.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
Role.prototype.update = function update() {
|
||||
return this.client.updateRole.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
Role.prototype.addMember = function addMember(member, callback) {
|
||||
return this.client.addMemberToRole.apply(this.client, [member, this, callback]);
|
||||
};
|
||||
|
||||
Role.prototype.addUser = function addUser(member, callback) {
|
||||
return this.client.addUserToRole.apply(this.client, [member, this, callback]);
|
||||
};
|
||||
|
||||
Role.prototype.removeMember = function removeMember(member, callback) {
|
||||
return this.client.removeMemberFromRole.apply(this.client, [member, this, callback]);
|
||||
};
|
||||
|
||||
Role.prototype.removeUser = function removeUser(member, callback) {
|
||||
return this.client.removeUserFromRole.apply(this.client, [member, this, callback]);
|
||||
};
|
||||
|
||||
Role.prototype.mention = function mention() {
|
||||
if (this.mentionable) return "<@&" + this.id + ">";
|
||||
return this.name;
|
||||
};
|
||||
|
||||
Role.prototype.toString = function toString() {
|
||||
return this.mention();
|
||||
};
|
||||
|
||||
_createClass(Role, [{
|
||||
key: "createdAt",
|
||||
get: function get() {
|
||||
return new Date(+this.id / 4194304 + 1420070400000);
|
||||
}
|
||||
}]);
|
||||
|
||||
return Role;
|
||||
})();
|
||||
|
||||
exports["default"] = Role;
|
||||
module.exports = exports["default"];
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1,162 @@
|
||||
"use strict";exports.__esModule = true;function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _Channel2=require("./Channel");var _Channel3=_interopRequireDefault(_Channel2);var _UtilCache=require("../Util/Cache");var _UtilCache2=_interopRequireDefault(_UtilCache);var _PermissionOverwrite=require("./PermissionOverwrite");var _PermissionOverwrite2=_interopRequireDefault(_PermissionOverwrite);var _ChannelPermissions=require("./ChannelPermissions");var _ChannelPermissions2=_interopRequireDefault(_ChannelPermissions);var _UtilArgumentRegulariser=require("../Util/ArgumentRegulariser");var ServerChannel=(function(_Channel){_inherits(ServerChannel,_Channel);function ServerChannel(data,client,server){var _this=this;_classCallCheck(this,ServerChannel);_Channel.call(this,data,client);this.name = data.name;this.type = data.type;this.position = data.position;this.permissionOverwrites = data.permissionOverwrites || new _UtilCache2["default"]();this.server = server;if(!data.permissionOverwrites){data.permission_overwrites.forEach(function(permission){_this.permissionOverwrites.add(new _PermissionOverwrite2["default"](permission));});}}ServerChannel.prototype.permissionsOf = function permissionsOf(userOrRole){userOrRole = this.client.internal.resolver.resolveUser(userOrRole);if(userOrRole){if(this.server.ownerID === userOrRole.id){return new _ChannelPermissions2["default"](4294967295);}var everyoneRole=this.server.roles.get("id",this.server.id);var userRoles=[everyoneRole].concat(this.server.rolesOf(userOrRole) || []);var userRolesID=userRoles.filter(function(v){return !!v;}).map(function(v){return v.id;});var roleOverwrites=[],memberOverwrites=[];this.permissionOverwrites.forEach(function(overwrite){if(overwrite.type === "member" && overwrite.id === userOrRole.id){memberOverwrites.push(overwrite);}else if(overwrite.type === "role" && ~userRolesID.indexOf(overwrite.id)){roleOverwrites.push(overwrite);}});var permissions=0;for(var _iterator=userRoles,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;) {var _ref;if(_isArray){if(_i >= _iterator.length)break;_ref = _iterator[_i++];}else {_i = _iterator.next();if(_i.done)break;_ref = _i.value;}var serverRole=_ref;if(serverRole){permissions |= serverRole.permissions;}}for(var _iterator2=roleOverwrites.concat(memberOverwrites),_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[Symbol.iterator]();;) {var _ref2;if(_isArray2){if(_i2 >= _iterator2.length)break;_ref2 = _iterator2[_i2++];}else {_i2 = _iterator2.next();if(_i2.done)break;_ref2 = _i2.value;}var overwrite=_ref2;if(overwrite){permissions = permissions & ~overwrite.deny;permissions = permissions | overwrite.allow;}}return new _ChannelPermissions2["default"](permissions);}else {userOrRole = this.client.internal.resolver.resolveRole(userOrRole);if(userOrRole){var permissions=this.server.roles.get("id",this.server.id).permissions | userOrRole.permissions;var overwrite=this.permissionOverwrites.get("id",this.server.id);permissions = permissions & ~overwrite.deny | overwrite.allow;overwrite = this.permissionOverwrites.get("id",userOrRole.id);if(overwrite){permissions = permissions & ~overwrite.deny | overwrite.allow;}return new _ChannelPermissions2["default"](permissions);}else {return null;}}};ServerChannel.prototype.permsOf = function permsOf(user){return this.permissionsOf(user);};ServerChannel.prototype.mention = function mention(){return "<#" + this.id + ">";};ServerChannel.prototype.toString = function toString(){return this.mention();};ServerChannel.prototype.setName = function setName(){return this.client.setChannelName.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};ServerChannel.prototype.setPosition = function setPosition(){return this.client.setChannelPosition.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};ServerChannel.prototype.update = function update(){return this.client.updateChannel.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};return ServerChannel;})(_Channel3["default"]);exports["default"] = ServerChannel;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _Channel2 = require("./Channel");
|
||||
|
||||
var _Channel3 = _interopRequireDefault(_Channel2);
|
||||
|
||||
var _UtilCache = require("../Util/Cache");
|
||||
|
||||
var _UtilCache2 = _interopRequireDefault(_UtilCache);
|
||||
|
||||
var _PermissionOverwrite = require("./PermissionOverwrite");
|
||||
|
||||
var _PermissionOverwrite2 = _interopRequireDefault(_PermissionOverwrite);
|
||||
|
||||
var _ChannelPermissions = require("./ChannelPermissions");
|
||||
|
||||
var _ChannelPermissions2 = _interopRequireDefault(_ChannelPermissions);
|
||||
|
||||
var _UtilArgumentRegulariser = require("../Util/ArgumentRegulariser");
|
||||
|
||||
var ServerChannel = (function (_Channel) {
|
||||
_inherits(ServerChannel, _Channel);
|
||||
|
||||
function ServerChannel(data, client, server) {
|
||||
var _this = this;
|
||||
|
||||
_classCallCheck(this, ServerChannel);
|
||||
|
||||
_Channel.call(this, data, client);
|
||||
this.name = data.name;
|
||||
this.type = data.type;
|
||||
this.position = data.position;
|
||||
this.permissionOverwrites = data.permissionOverwrites || new _UtilCache2["default"]();
|
||||
this.server = server;
|
||||
if (!data.permissionOverwrites) {
|
||||
data.permission_overwrites.forEach(function (permission) {
|
||||
_this.permissionOverwrites.add(new _PermissionOverwrite2["default"](permission));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ServerChannel.prototype.permissionsOf = function permissionsOf(userOrRole) {
|
||||
userOrRole = this.client.internal.resolver.resolveUser(userOrRole);
|
||||
if (userOrRole) {
|
||||
if (this.server.ownerID === userOrRole.id) {
|
||||
return new _ChannelPermissions2["default"](4294967295);
|
||||
}
|
||||
var everyoneRole = this.server.roles.get("id", this.server.id);
|
||||
|
||||
var userRoles = [everyoneRole].concat(this.server.rolesOf(userOrRole) || []);
|
||||
var userRolesID = userRoles.filter(function (v) {
|
||||
return !!v;
|
||||
}).map(function (v) {
|
||||
return v.id;
|
||||
});
|
||||
var roleOverwrites = [],
|
||||
memberOverwrites = [];
|
||||
|
||||
this.permissionOverwrites.forEach(function (overwrite) {
|
||||
if (overwrite.type === "member" && overwrite.id === userOrRole.id) {
|
||||
memberOverwrites.push(overwrite);
|
||||
} else if (overwrite.type === "role" && ~userRolesID.indexOf(overwrite.id)) {
|
||||
roleOverwrites.push(overwrite);
|
||||
}
|
||||
});
|
||||
|
||||
var permissions = 0;
|
||||
|
||||
for (var _iterator = userRoles, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
||||
var _ref;
|
||||
|
||||
if (_isArray) {
|
||||
if (_i >= _iterator.length) break;
|
||||
_ref = _iterator[_i++];
|
||||
} else {
|
||||
_i = _iterator.next();
|
||||
if (_i.done) break;
|
||||
_ref = _i.value;
|
||||
}
|
||||
|
||||
var serverRole = _ref;
|
||||
|
||||
if (serverRole) {
|
||||
permissions |= serverRole.permissions;
|
||||
}
|
||||
}
|
||||
|
||||
for (var _iterator2 = roleOverwrites.concat(memberOverwrites), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
||||
var _ref2;
|
||||
|
||||
if (_isArray2) {
|
||||
if (_i2 >= _iterator2.length) break;
|
||||
_ref2 = _iterator2[_i2++];
|
||||
} else {
|
||||
_i2 = _iterator2.next();
|
||||
if (_i2.done) break;
|
||||
_ref2 = _i2.value;
|
||||
}
|
||||
|
||||
var overwrite = _ref2;
|
||||
|
||||
if (overwrite) {
|
||||
permissions = permissions & ~overwrite.deny;
|
||||
permissions = permissions | overwrite.allow;
|
||||
}
|
||||
}
|
||||
|
||||
return new _ChannelPermissions2["default"](permissions);
|
||||
} else {
|
||||
userOrRole = this.client.internal.resolver.resolveRole(userOrRole);
|
||||
if (userOrRole) {
|
||||
var permissions = this.server.roles.get("id", this.server.id).permissions | userOrRole.permissions;
|
||||
var overwrite = this.permissionOverwrites.get("id", this.server.id);
|
||||
permissions = permissions & ~overwrite.deny | overwrite.allow;
|
||||
overwrite = this.permissionOverwrites.get("id", userOrRole.id);
|
||||
if (overwrite) {
|
||||
permissions = permissions & ~overwrite.deny | overwrite.allow;
|
||||
}
|
||||
return new _ChannelPermissions2["default"](permissions);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
ServerChannel.prototype.permsOf = function permsOf(user) {
|
||||
return this.permissionsOf(user);
|
||||
};
|
||||
|
||||
ServerChannel.prototype.mention = function mention() {
|
||||
return "<#" + this.id + ">";
|
||||
};
|
||||
|
||||
ServerChannel.prototype.toString = function toString() {
|
||||
return this.mention();
|
||||
};
|
||||
|
||||
ServerChannel.prototype.setName = function setName() {
|
||||
return this.client.setChannelName.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
ServerChannel.prototype.setPosition = function setPosition() {
|
||||
return this.client.setChannelPosition.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
ServerChannel.prototype.update = function update() {
|
||||
return this.client.updateChannel.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
return ServerChannel;
|
||||
})(_Channel3["default"]);
|
||||
|
||||
exports["default"] = ServerChannel;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1 +1,89 @@
|
||||
"use strict";exports.__esModule = true;var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if("value" in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _ServerChannel2=require("./ServerChannel");var _ServerChannel3=_interopRequireDefault(_ServerChannel2);var _UtilCache=require("../Util/Cache");var _UtilCache2=_interopRequireDefault(_UtilCache);var _UtilArgumentRegulariser=require("../Util/ArgumentRegulariser");var TextChannel=(function(_ServerChannel){_inherits(TextChannel,_ServerChannel);function TextChannel(data,client,server){_classCallCheck(this,TextChannel);_ServerChannel.call(this,data,client,server);this.topic = data.topic;this.lastMessageID = data.last_message_id || data.lastMessageID;this.messages = new _UtilCache2["default"]("id",client.options.maxCachedMessages);} /* warning! may return null */TextChannel.prototype.setTopic = function setTopic(){return this.client.setChannelTopic.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};TextChannel.prototype.sendMessage = function sendMessage(){return this.client.sendMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};TextChannel.prototype.send = function send(){return this.client.sendMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};TextChannel.prototype.sendTTSMessage = function sendTTSMessage(){return this.client.sendTTSMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};TextChannel.prototype.sendTTS = function sendTTS(){return this.client.sendTTSMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};TextChannel.prototype.sendFile = function sendFile(){return this.client.sendFile.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};TextChannel.prototype.getLogs = function getLogs(){return this.client.getChannelLogs.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};TextChannel.prototype.getMessage = function getMessage(){return this.client.getMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};TextChannel.prototype.startTyping = function startTyping(){return this.client.startTyping.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};TextChannel.prototype.stopTyping = function stopTyping(){return this.client.stopTyping.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};_createClass(TextChannel,[{key:"lastMessage",get:function get(){return this.messages.get("id",this.lastMessageID);}}]);return TextChannel;})(_ServerChannel3["default"]);exports["default"] = TextChannel;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _ServerChannel2 = require("./ServerChannel");
|
||||
|
||||
var _ServerChannel3 = _interopRequireDefault(_ServerChannel2);
|
||||
|
||||
var _UtilCache = require("../Util/Cache");
|
||||
|
||||
var _UtilCache2 = _interopRequireDefault(_UtilCache);
|
||||
|
||||
var _UtilArgumentRegulariser = require("../Util/ArgumentRegulariser");
|
||||
|
||||
var TextChannel = (function (_ServerChannel) {
|
||||
_inherits(TextChannel, _ServerChannel);
|
||||
|
||||
function TextChannel(data, client, server) {
|
||||
_classCallCheck(this, TextChannel);
|
||||
|
||||
_ServerChannel.call(this, data, client, server);
|
||||
|
||||
this.topic = data.topic;
|
||||
this.lastMessageID = data.last_message_id || data.lastMessageID;
|
||||
this.messages = new _UtilCache2["default"]("id", client.options.maxCachedMessages);
|
||||
}
|
||||
|
||||
/* warning! may return null */
|
||||
|
||||
TextChannel.prototype.setTopic = function setTopic() {
|
||||
return this.client.setChannelTopic.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
TextChannel.prototype.sendMessage = function sendMessage() {
|
||||
return this.client.sendMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
TextChannel.prototype.send = function send() {
|
||||
return this.client.sendMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
TextChannel.prototype.sendTTSMessage = function sendTTSMessage() {
|
||||
return this.client.sendTTSMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
TextChannel.prototype.sendTTS = function sendTTS() {
|
||||
return this.client.sendTTSMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
TextChannel.prototype.sendFile = function sendFile() {
|
||||
return this.client.sendFile.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
TextChannel.prototype.getLogs = function getLogs() {
|
||||
return this.client.getChannelLogs.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
TextChannel.prototype.getMessage = function getMessage() {
|
||||
return this.client.getMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
TextChannel.prototype.startTyping = function startTyping() {
|
||||
return this.client.startTyping.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
TextChannel.prototype.stopTyping = function stopTyping() {
|
||||
return this.client.stopTyping.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
_createClass(TextChannel, [{
|
||||
key: "lastMessage",
|
||||
get: function get() {
|
||||
return this.messages.get("id", this.lastMessageID);
|
||||
}
|
||||
}]);
|
||||
|
||||
return TextChannel;
|
||||
})(_ServerChannel3["default"]);
|
||||
|
||||
exports["default"] = TextChannel;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1 +1,135 @@
|
||||
"use strict";exports.__esModule = true;var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if("value" in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _UtilEquality=require("../Util/Equality");var _UtilEquality2=_interopRequireDefault(_UtilEquality);var _Constants=require("../Constants");var _UtilArgumentRegulariser=require("../Util/ArgumentRegulariser");var User=(function(_Equality){_inherits(User,_Equality);function User(data,client){_classCallCheck(this,User);_Equality.call(this);this.client = client;this.username = data.username;this.discriminator = data.discriminator;this.id = data.id;this.avatar = data.avatar;this.bot = !!data.bot;this.status = data.status || "offline";this.game = data.game || null;this.typing = {since:null,channel:null};this.note = data.note || null;this.voiceChannel = null;this.voiceState = {};this.speaking = false;}User.prototype.mention = function mention(){return "<@" + this.id + ">";};User.prototype.toString = function toString(){return this.mention();};User.prototype.equalsStrict = function equalsStrict(obj){if(obj instanceof User)return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar && this.status === obj.status && (this.game === obj.game || this.game && obj.game && this.game.name === obj.game.name);else return false;};User.prototype.equals = function equals(obj){if(obj instanceof User)return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar;else return false;};User.prototype.sendMessage = function sendMessage(){return this.client.sendMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};User.prototype.send = function send(){return this.client.sendMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};User.prototype.sendTTSMessage = function sendTTSMessage(){return this.client.sendTTSMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};User.prototype.sendTTS = function sendTTS(){return this.client.sendTTSMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};User.prototype.sendFile = function sendFile(){return this.client.sendFile.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};User.prototype.startTyping = function startTyping(){return this.client.startTyping.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};User.prototype.stopTyping = function stopTyping(){return this.client.stopTyping.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};User.prototype.addTo = function addTo(role,callback){return this.client.addMemberToRole.apply(this.client,[this,role,callback]);};User.prototype.removeFrom = function removeFrom(role,callback){return this.client.removeMemberFromRole.apply(this.client,[this,role,callback]);};User.prototype.getLogs = function getLogs(){return this.client.getChannelLogs.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};User.prototype.getMessage = function getMessage(){return this.client.getMessage.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};User.prototype.hasRole = function hasRole(role){return this.client.memberHasRole.apply(this.client,[this,role]);};_createClass(User,[{key:"createdAt",get:function get(){return new Date(+this.id / 4194304 + 1420070400000);}},{key:"avatarURL",get:function get(){if(!this.avatar){return null;}else {return _Constants.Endpoints.AVATAR(this.id,this.avatar);}}},{key:"name",get:function get(){return this.username;}}]);return User;})(_UtilEquality2["default"]);exports["default"] = User;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _UtilEquality = require("../Util/Equality");
|
||||
|
||||
var _UtilEquality2 = _interopRequireDefault(_UtilEquality);
|
||||
|
||||
var _Constants = require("../Constants");
|
||||
|
||||
var _UtilArgumentRegulariser = require("../Util/ArgumentRegulariser");
|
||||
|
||||
var User = (function (_Equality) {
|
||||
_inherits(User, _Equality);
|
||||
|
||||
function User(data, client) {
|
||||
_classCallCheck(this, User);
|
||||
|
||||
_Equality.call(this);
|
||||
this.client = client;
|
||||
this.username = data.username;
|
||||
this.discriminator = data.discriminator;
|
||||
this.id = data.id;
|
||||
this.avatar = data.avatar;
|
||||
this.bot = !!data.bot;
|
||||
this.status = data.status || "offline";
|
||||
this.game = data.game || null;
|
||||
this.typing = {
|
||||
since: null,
|
||||
channel: null
|
||||
};
|
||||
this.note = data.note || null;
|
||||
this.voiceChannel = null;
|
||||
this.voiceState = {};
|
||||
this.speaking = false;
|
||||
}
|
||||
|
||||
User.prototype.mention = function mention() {
|
||||
return "<@" + this.id + ">";
|
||||
};
|
||||
|
||||
User.prototype.toString = function toString() {
|
||||
return this.mention();
|
||||
};
|
||||
|
||||
User.prototype.equalsStrict = function equalsStrict(obj) {
|
||||
if (obj instanceof User) return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar && this.status === obj.status && (this.game === obj.game || this.game && obj.game && this.game.name === obj.game.name);else return false;
|
||||
};
|
||||
|
||||
User.prototype.equals = function equals(obj) {
|
||||
if (obj instanceof User) return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar;else return false;
|
||||
};
|
||||
|
||||
User.prototype.sendMessage = function sendMessage() {
|
||||
return this.client.sendMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
User.prototype.send = function send() {
|
||||
return this.client.sendMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
User.prototype.sendTTSMessage = function sendTTSMessage() {
|
||||
return this.client.sendTTSMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
User.prototype.sendTTS = function sendTTS() {
|
||||
return this.client.sendTTSMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
User.prototype.sendFile = function sendFile() {
|
||||
return this.client.sendFile.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
User.prototype.startTyping = function startTyping() {
|
||||
return this.client.startTyping.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
User.prototype.stopTyping = function stopTyping() {
|
||||
return this.client.stopTyping.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
User.prototype.addTo = function addTo(role, callback) {
|
||||
return this.client.addMemberToRole.apply(this.client, [this, role, callback]);
|
||||
};
|
||||
|
||||
User.prototype.removeFrom = function removeFrom(role, callback) {
|
||||
return this.client.removeMemberFromRole.apply(this.client, [this, role, callback]);
|
||||
};
|
||||
|
||||
User.prototype.getLogs = function getLogs() {
|
||||
return this.client.getChannelLogs.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
User.prototype.getMessage = function getMessage() {
|
||||
return this.client.getMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
User.prototype.hasRole = function hasRole(role) {
|
||||
return this.client.memberHasRole.apply(this.client, [this, role]);
|
||||
};
|
||||
|
||||
_createClass(User, [{
|
||||
key: "createdAt",
|
||||
get: function get() {
|
||||
return new Date(+this.id / 4194304 + 1420070400000);
|
||||
}
|
||||
}, {
|
||||
key: "avatarURL",
|
||||
get: function get() {
|
||||
if (!this.avatar) {
|
||||
return null;
|
||||
} else {
|
||||
return _Constants.Endpoints.AVATAR(this.id, this.avatar);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "name",
|
||||
get: function get() {
|
||||
return this.username;
|
||||
}
|
||||
}]);
|
||||
|
||||
return User;
|
||||
})(_UtilEquality2["default"]);
|
||||
|
||||
exports["default"] = User;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,3 +1,52 @@
|
||||
"use strict";exports.__esModule = true;function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _ServerChannel2=require("./ServerChannel");var _ServerChannel3=_interopRequireDefault(_ServerChannel2);var _UtilCache=require("../Util/Cache");var _UtilCache2=_interopRequireDefault(_UtilCache);var _UtilArgumentRegulariser=require("../Util/ArgumentRegulariser");var VoiceChannel=(function(_ServerChannel){_inherits(VoiceChannel,_ServerChannel);function VoiceChannel(data,client,server){_classCallCheck(this,VoiceChannel);_ServerChannel.call(this,data,client,server);this.members = data.members || new _UtilCache2["default"]();this.userLimit = data.user_limit || 0;this._bitrate = data.bitrate || 64000; // incase somebody wants to access the bps value???
|
||||
this.bitrate = Math.round(this._bitrate / 1000); // store as kbps
|
||||
}VoiceChannel.prototype.join = function join(){var callback=arguments.length <= 0 || arguments[0] === undefined?function(){}:arguments[0];return this.client.joinVoiceChannel.apply(this.client,[this,callback]);};VoiceChannel.prototype.setUserLimit = function setUserLimit(){return this.client.setChannelUserLimit.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};VoiceChannel.prototype.setBitrate = function setBitrate(){return this.client.setChannelBitrate.apply(this.client,_UtilArgumentRegulariser.reg(this,arguments));};return VoiceChannel;})(_ServerChannel3["default"]);exports["default"] = VoiceChannel;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _ServerChannel2 = require("./ServerChannel");
|
||||
|
||||
var _ServerChannel3 = _interopRequireDefault(_ServerChannel2);
|
||||
|
||||
var _UtilCache = require("../Util/Cache");
|
||||
|
||||
var _UtilCache2 = _interopRequireDefault(_UtilCache);
|
||||
|
||||
var _UtilArgumentRegulariser = require("../Util/ArgumentRegulariser");
|
||||
|
||||
var VoiceChannel = (function (_ServerChannel) {
|
||||
_inherits(VoiceChannel, _ServerChannel);
|
||||
|
||||
function VoiceChannel(data, client, server) {
|
||||
_classCallCheck(this, VoiceChannel);
|
||||
|
||||
_ServerChannel.call(this, data, client, server);
|
||||
this.members = data.members || new _UtilCache2["default"]();
|
||||
this.userLimit = data.user_limit || 0;
|
||||
this._bitrate = data.bitrate || 64000; // incase somebody wants to access the bps value???
|
||||
this.bitrate = Math.round(this._bitrate / 1000); // store as kbps
|
||||
}
|
||||
|
||||
VoiceChannel.prototype.join = function join() {
|
||||
var callback = arguments.length <= 0 || arguments[0] === undefined ? function () {} : arguments[0];
|
||||
|
||||
return this.client.joinVoiceChannel.apply(this.client, [this, callback]);
|
||||
};
|
||||
|
||||
VoiceChannel.prototype.setUserLimit = function setUserLimit() {
|
||||
return this.client.setChannelUserLimit.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
VoiceChannel.prototype.setBitrate = function setBitrate() {
|
||||
return this.client.setChannelBitrate.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
|
||||
};
|
||||
|
||||
return VoiceChannel;
|
||||
})(_ServerChannel3["default"]);
|
||||
|
||||
exports["default"] = VoiceChannel;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1 +1,8 @@
|
||||
"use strict";exports.__esModule = true;exports.reg = reg;function reg(c,a){return [c].concat(Array.prototype.slice.call(a));}
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.reg = reg;
|
||||
|
||||
function reg(c, a) {
|
||||
return [c].concat(Array.prototype.slice.call(a));
|
||||
}
|
||||
|
||||
@@ -1,2 +1,55 @@
|
||||
"use strict";exports.__esModule = true;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Bucket=(function(){ // Adapted from Eris
|
||||
function Bucket(tokenLimit,interval){_classCallCheck(this,Bucket);this.tokenLimit = tokenLimit;this.interval = interval;this.extraTime = 500;this.lastReset = this.tokens = this.lastSend = 0;this._queue = [];}Bucket.prototype.queue = function queue(func){this._queue.push(func);this.check();};Bucket.prototype.check = function check(){var _this=this;if(this.timeout || this._queue.length === 0){return;}if(this.lastReset + this.interval + this.extraTime < Date.now()){this.lastReset = Date.now();this.tokens = Math.max(0,this.tokens - this.tokenLimit);}var val;while(this._queue.length > 0 && this.tokens < this.tokenLimit) {this.tokens++;this._queue.shift()();this.lastSend = Date.now();}if(this._queue.length > 0 && !this.timeout){this.timeout = setTimeout(function(){_this.timeout = null;_this.check();},this.tokens < this.tokenLimit?1:Math.max(0,this.lastReset + this.interval + this.extraTime - Date.now()));}};return Bucket;})();exports["default"] = Bucket;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var Bucket = (function () {
|
||||
// Adapted from Eris
|
||||
|
||||
function Bucket(tokenLimit, interval) {
|
||||
_classCallCheck(this, Bucket);
|
||||
|
||||
this.tokenLimit = tokenLimit;
|
||||
this.interval = interval;
|
||||
this.extraTime = 500;
|
||||
this.lastReset = this.tokens = this.lastSend = 0;
|
||||
this._queue = [];
|
||||
}
|
||||
|
||||
Bucket.prototype.queue = function queue(func) {
|
||||
this._queue.push(func);
|
||||
this.check();
|
||||
};
|
||||
|
||||
Bucket.prototype.check = function check() {
|
||||
var _this = this;
|
||||
|
||||
if (this.timeout || this._queue.length === 0) {
|
||||
return;
|
||||
}
|
||||
if (this.lastReset + this.interval + this.extraTime < Date.now()) {
|
||||
this.lastReset = Date.now();
|
||||
this.tokens = Math.max(0, this.tokens - this.tokenLimit);
|
||||
}
|
||||
|
||||
var val;
|
||||
while (this._queue.length > 0 && this.tokens < this.tokenLimit) {
|
||||
this.tokens++;
|
||||
this._queue.shift()();
|
||||
this.lastSend = Date.now();
|
||||
}
|
||||
|
||||
if (this._queue.length > 0 && !this.timeout) {
|
||||
this.timeout = setTimeout(function () {
|
||||
_this.timeout = null;
|
||||
_this.check();
|
||||
}, this.tokens < this.tokenLimit ? 1 : Math.max(0, this.lastReset + this.interval + this.extraTime - Date.now()));
|
||||
}
|
||||
};
|
||||
|
||||
return Bucket;
|
||||
})();
|
||||
|
||||
exports["default"] = Bucket;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1 +1,153 @@
|
||||
"use strict";exports.__esModule = true;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var discrimS=Symbol();var discrimCacheS=Symbol();var Cache=(function(_Array){_inherits(Cache,_Array);function Cache(discrim,limit){_classCallCheck(this,Cache);_Array.call(this);this[discrimS] = discrim || "id";this[discrimCacheS] = {};this.limit = limit;}Cache.prototype.get = function get(key,value){if(typeof key === 'function'){var valid=key;key = null;}else if(key && !value){return this[discrimCacheS][key] || null;}else if(key === this[discrimS] && typeof value === "string"){return this[discrimCacheS][value] || null;}else if(value && value.constructor.name === 'RegExp'){var valid=function valid(item){return value.test(item);};}else if(typeof value !== 'function'){var valid=function valid(item){return item == value;};}for(var _iterator=this,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;) {var _ref;if(_isArray){if(_i >= _iterator.length)break;_ref = _iterator[_i++];}else {_i = _iterator.next();if(_i.done)break;_ref = _i.value;}var item=_ref;if(valid(key == null?item:item[key])){return item;}}return null;};Cache.prototype.has = function has(key,value){return !!this.get(key,value);};Cache.prototype.getAll = function getAll(key,value){var found=new Cache(this[discrimS]);if(typeof key === 'function'){var valid=key;key = null;}else if(value && value.constructor.name === 'RegExp'){var valid=function valid(item){return value.test(item);};}else if(typeof value !== 'function'){var valid=function valid(item){return item == value;};}for(var _iterator2=this,_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[Symbol.iterator]();;) {var _ref2;if(_isArray2){if(_i2 >= _iterator2.length)break;_ref2 = _iterator2[_i2++];}else {_i2 = _iterator2.next();if(_i2.done)break;_ref2 = _i2.value;}var item=_ref2;if(valid(key == null?item:item[key])){found.add(item);}}return found;};Cache.prototype.add = function add(data){var cacheKey=data[this[discrimS]];if(this[discrimCacheS][cacheKey]){return this[discrimCacheS][cacheKey];}if(this.limit && this.length >= this.limit){this.splice(0,1);}this.push(data);this[discrimCacheS][cacheKey] = data;return data;};Cache.prototype.update = function update(old,data){var obj=this[discrimCacheS][old[this[discrimS]]];if(obj){for(var key in data) {if(data.hasOwnProperty(key)){obj[key] = data[key];}}return obj;}return false;};Cache.prototype.random = function random(){return this[Math.floor(Math.random() * this.length)];};Cache.prototype.remove = function remove(data){if(!this[discrimCacheS][data[this[discrimS]]])return false;delete this[discrimCacheS][data[this[discrimS]]];for(var i in this) {if(this[i] && this[i][this[discrimS]] === data[this[discrimS]]){this.splice(i,1);return true;}}return false;};return Cache;})(Array);exports["default"] = Cache;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var discrimS = Symbol();
|
||||
var discrimCacheS = Symbol();
|
||||
|
||||
var Cache = (function (_Array) {
|
||||
_inherits(Cache, _Array);
|
||||
|
||||
function Cache(discrim, limit) {
|
||||
_classCallCheck(this, Cache);
|
||||
|
||||
_Array.call(this);
|
||||
this[discrimS] = discrim || "id";
|
||||
this[discrimCacheS] = {};
|
||||
this.limit = limit;
|
||||
}
|
||||
|
||||
Cache.prototype.get = function get(key, value) {
|
||||
if (typeof key === 'function') {
|
||||
var valid = key;
|
||||
key = null;
|
||||
} else if (key && !value) {
|
||||
return this[discrimCacheS][key] || null;
|
||||
} else if (key === this[discrimS] && typeof value === "string") {
|
||||
return this[discrimCacheS][value] || null;
|
||||
} else if (value && value.constructor.name === 'RegExp') {
|
||||
var valid = function valid(item) {
|
||||
return value.test(item);
|
||||
};
|
||||
} else if (typeof value !== 'function') {
|
||||
var valid = function valid(item) {
|
||||
return item == value;
|
||||
};
|
||||
}
|
||||
|
||||
for (var _iterator = this, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
||||
var _ref;
|
||||
|
||||
if (_isArray) {
|
||||
if (_i >= _iterator.length) break;
|
||||
_ref = _iterator[_i++];
|
||||
} else {
|
||||
_i = _iterator.next();
|
||||
if (_i.done) break;
|
||||
_ref = _i.value;
|
||||
}
|
||||
|
||||
var item = _ref;
|
||||
|
||||
if (valid(key == null ? item : item[key])) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
Cache.prototype.has = function has(key, value) {
|
||||
return !!this.get(key, value);
|
||||
};
|
||||
|
||||
Cache.prototype.getAll = function getAll(key, value) {
|
||||
var found = new Cache(this[discrimS]);
|
||||
|
||||
if (typeof key === 'function') {
|
||||
var valid = key;
|
||||
key = null;
|
||||
} else if (value && value.constructor.name === 'RegExp') {
|
||||
var valid = function valid(item) {
|
||||
return value.test(item);
|
||||
};
|
||||
} else if (typeof value !== 'function') {
|
||||
var valid = function valid(item) {
|
||||
return item == value;
|
||||
};
|
||||
}
|
||||
|
||||
for (var _iterator2 = this, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
||||
var _ref2;
|
||||
|
||||
if (_isArray2) {
|
||||
if (_i2 >= _iterator2.length) break;
|
||||
_ref2 = _iterator2[_i2++];
|
||||
} else {
|
||||
_i2 = _iterator2.next();
|
||||
if (_i2.done) break;
|
||||
_ref2 = _i2.value;
|
||||
}
|
||||
|
||||
var item = _ref2;
|
||||
|
||||
if (valid(key == null ? item : item[key])) {
|
||||
found.add(item);
|
||||
}
|
||||
}
|
||||
|
||||
return found;
|
||||
};
|
||||
|
||||
Cache.prototype.add = function add(data) {
|
||||
var cacheKey = data[this[discrimS]];
|
||||
if (this[discrimCacheS][cacheKey]) {
|
||||
return this[discrimCacheS][cacheKey];
|
||||
}
|
||||
if (this.limit && this.length >= this.limit) {
|
||||
this.splice(0, 1);
|
||||
}
|
||||
this.push(data);
|
||||
this[discrimCacheS][cacheKey] = data;
|
||||
return data;
|
||||
};
|
||||
|
||||
Cache.prototype.update = function update(old, data) {
|
||||
var obj = this[discrimCacheS][old[this[discrimS]]];
|
||||
if (obj) {
|
||||
for (var key in data) {
|
||||
if (data.hasOwnProperty(key)) {
|
||||
obj[key] = data[key];
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
Cache.prototype.random = function random() {
|
||||
return this[Math.floor(Math.random() * this.length)];
|
||||
};
|
||||
|
||||
Cache.prototype.remove = function remove(data) {
|
||||
if (!this[discrimCacheS][data[this[discrimS]]]) return false;
|
||||
|
||||
delete this[discrimCacheS][data[this[discrimS]]];
|
||||
for (var i in this) {
|
||||
if (this[i] && this[i][this[discrimS]] === data[this[discrimS]]) {
|
||||
this.splice(i, 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
return Cache;
|
||||
})(Array);
|
||||
|
||||
exports["default"] = Cache;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -8,5 +8,38 @@
|
||||
instances sometimes.
|
||||
|
||||
Instead, use objectThatExtendsEquality.equals()
|
||||
*/"use strict";exports.__esModule = true;var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if("value" in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Equality=(function(){function Equality(){_classCallCheck(this,Equality);}Equality.prototype.equals = function equals(object){return object && object[this.eqDiscriminator] === this[this.eqDiscriminator];};Equality.prototype.equalsStrict = function equalsStrict(object){ // override per class type
|
||||
return;};_createClass(Equality,[{key:"eqDiscriminator",get:function get(){return "id";}}]);return Equality;})();exports["default"] = Equality;module.exports = exports["default"];
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var Equality = (function () {
|
||||
function Equality() {
|
||||
_classCallCheck(this, Equality);
|
||||
}
|
||||
|
||||
Equality.prototype.equals = function equals(object) {
|
||||
return object && object[this.eqDiscriminator] === this[this.eqDiscriminator];
|
||||
};
|
||||
|
||||
Equality.prototype.equalsStrict = function equalsStrict(object) {
|
||||
// override per class type
|
||||
return;
|
||||
};
|
||||
|
||||
_createClass(Equality, [{
|
||||
key: "eqDiscriminator",
|
||||
get: function get() {
|
||||
return "id";
|
||||
}
|
||||
}]);
|
||||
|
||||
return Equality;
|
||||
})();
|
||||
|
||||
exports["default"] = Equality;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,2 +1,29 @@
|
||||
// Shim for the token cacher in the browser.
|
||||
"use strict";exports.__esModule = true;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var TokenCacher=(function(){function TokenCacher(){_classCallCheck(this,TokenCacher);}TokenCacher.prototype.setToken = function setToken(){};TokenCacher.prototype.save = function save(){};TokenCacher.prototype.getToken = function getToken(){return null;};TokenCacher.prototype.init = function init(ind){this.done = true;};return TokenCacher;})();exports["default"] = TokenCacher;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var TokenCacher = (function () {
|
||||
function TokenCacher() {
|
||||
_classCallCheck(this, TokenCacher);
|
||||
}
|
||||
|
||||
TokenCacher.prototype.setToken = function setToken() {};
|
||||
|
||||
TokenCacher.prototype.save = function save() {};
|
||||
|
||||
TokenCacher.prototype.getToken = function getToken() {
|
||||
return null;
|
||||
};
|
||||
|
||||
TokenCacher.prototype.init = function init(ind) {
|
||||
this.done = true;
|
||||
};
|
||||
|
||||
return TokenCacher;
|
||||
})();
|
||||
|
||||
exports["default"] = TokenCacher;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,12 +1,157 @@
|
||||
"use strict"; /* global process */exports.__esModule = true;function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _fs=require("fs");var _fs2=_interopRequireDefault(_fs);var _events=require("events");var _events2=_interopRequireDefault(_events);var _crypto=require("crypto");var _crypto2=_interopRequireDefault(_crypto);var savePaths=[process.env.APPDATA || (process.platform == "darwin"?process.env.HOME + "Library/Preferences":"/var/local"),process.env[process.platform == "win32"?"USERPROFILE":"HOME"],process.cwd(),"/tmp"];var algo="aes-256-ctr";function secureEmail(email,password){return new Buffer(_crypto2["default"].createHash("sha256").update(email + password,"utf8").digest()).toString("hex");}function exists(path){ // Node deprecated the `fs.exists` method apparently...
|
||||
try{_fs2["default"].accessSync(path);return true;}catch(e) {return false;}}var TokenCacher=(function(_EventEmitter){_inherits(TokenCacher,_EventEmitter);function TokenCacher(client,options){_classCallCheck(this,TokenCacher);_EventEmitter.call(this);this.client = client;this.savePath = null;this.error = false;this.done = false;this.data = {};}TokenCacher.prototype.setToken = function setToken(){var email=arguments.length <= 0 || arguments[0] === undefined?"":arguments[0];var password=arguments.length <= 1 || arguments[1] === undefined?"":arguments[1];var token=arguments.length <= 2 || arguments[2] === undefined?"":arguments[2];email = secureEmail(email,password);var cipher=_crypto2["default"].createCipher(algo,password);var crypted=cipher.update("valid" + token,"utf8","hex");crypted += cipher.final("hex");this.data[email] = crypted;this.save();};TokenCacher.prototype.save = function save(){_fs2["default"].writeFile(this.savePath,JSON.stringify(this.data));};TokenCacher.prototype.getToken = function getToken(){var email=arguments.length <= 0 || arguments[0] === undefined?"":arguments[0];var password=arguments.length <= 1 || arguments[1] === undefined?"":arguments[1];email = secureEmail(email,password);if(this.data[email]){try{var decipher=_crypto2["default"].createDecipher(algo,password);var dec=decipher.update(this.data[email],"hex","utf8");dec += decipher.final("utf8");return dec.indexOf("valid") === 0?dec.substr(5):false;}catch(e) { // not a valid token
|
||||
return null;}}else {return null;}};TokenCacher.prototype.init = function init(ind){var _this=this;var self=this;var savePath=savePaths[ind]; // Use one async function at the beginning, so the entire function is async,
|
||||
// then later use only sync functions to increase readability
|
||||
_fs2["default"].stat(savePath,function(err,dirStats){ // Directory does not exist.
|
||||
if(err)error(err);else {try{var storeDirPath=savePath + "/.discordjs";var filePath=storeDirPath + "/tokens.json";if(!exists(storeDirPath)){ // First, make sure the directory exists, otherwise the next
|
||||
// call will fail.
|
||||
_fs2["default"].mkdirSync(storeDirPath);}if(!exists(filePath)){ // This will create an empty file if the file doesn't exist, and error
|
||||
// if it does exist. We previously checked that it doesn't exist so we
|
||||
// can do this safely.
|
||||
_fs2["default"].closeSync(_fs2["default"].openSync(filePath,'wx'));}var data=_fs2["default"].readFileSync(filePath);try{_this.data = JSON.parse(data);_this.savePath = filePath;_this.emit('ready');_this.done = true;}catch(e) { // not valid JSON, make it valid and then write
|
||||
_fs2["default"].writeFileSync(filePath,'{}');_this.savePath = filePath;_this.emit("ready");_this.done = true;}}catch(e) {error(e);}}});function error(e){ind++;if(!savePaths[ind]){self.emit("error");self.error = e;self.done = true;}else {self.init(ind);}}};return TokenCacher;})(_events2["default"]);exports["default"] = TokenCacher;module.exports = exports["default"];
|
||||
"use strict";
|
||||
/* global process */
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _fs = require("fs");
|
||||
|
||||
var _fs2 = _interopRequireDefault(_fs);
|
||||
|
||||
var _events = require("events");
|
||||
|
||||
var _events2 = _interopRequireDefault(_events);
|
||||
|
||||
var _crypto = require("crypto");
|
||||
|
||||
var _crypto2 = _interopRequireDefault(_crypto);
|
||||
|
||||
var savePaths = [process.env.APPDATA || (process.platform == "darwin" ? process.env.HOME + "Library/Preferences" : "/var/local"), process.env[process.platform == "win32" ? "USERPROFILE" : "HOME"], process.cwd(), "/tmp"];
|
||||
|
||||
var algo = "aes-256-ctr";
|
||||
|
||||
function secureEmail(email, password) {
|
||||
return new Buffer(_crypto2["default"].createHash("sha256").update(email + password, "utf8").digest()).toString("hex");
|
||||
}
|
||||
|
||||
function exists(path) {
|
||||
// Node deprecated the `fs.exists` method apparently...
|
||||
try {
|
||||
_fs2["default"].accessSync(path);
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
var TokenCacher = (function (_EventEmitter) {
|
||||
_inherits(TokenCacher, _EventEmitter);
|
||||
|
||||
function TokenCacher(client, options) {
|
||||
_classCallCheck(this, TokenCacher);
|
||||
|
||||
_EventEmitter.call(this);
|
||||
this.client = client;
|
||||
this.savePath = null;
|
||||
this.error = false;
|
||||
this.done = false;
|
||||
this.data = {};
|
||||
}
|
||||
|
||||
TokenCacher.prototype.setToken = function setToken() {
|
||||
var email = arguments.length <= 0 || arguments[0] === undefined ? "" : arguments[0];
|
||||
var password = arguments.length <= 1 || arguments[1] === undefined ? "" : arguments[1];
|
||||
var token = arguments.length <= 2 || arguments[2] === undefined ? "" : arguments[2];
|
||||
|
||||
email = secureEmail(email, password);
|
||||
var cipher = _crypto2["default"].createCipher(algo, password);
|
||||
var crypted = cipher.update("valid" + token, "utf8", "hex");
|
||||
crypted += cipher.final("hex");
|
||||
this.data[email] = crypted;
|
||||
this.save();
|
||||
};
|
||||
|
||||
TokenCacher.prototype.save = function save() {
|
||||
_fs2["default"].writeFile(this.savePath, JSON.stringify(this.data));
|
||||
};
|
||||
|
||||
TokenCacher.prototype.getToken = function getToken() {
|
||||
var email = arguments.length <= 0 || arguments[0] === undefined ? "" : arguments[0];
|
||||
var password = arguments.length <= 1 || arguments[1] === undefined ? "" : arguments[1];
|
||||
|
||||
email = secureEmail(email, password);
|
||||
|
||||
if (this.data[email]) {
|
||||
|
||||
try {
|
||||
var decipher = _crypto2["default"].createDecipher(algo, password);
|
||||
var dec = decipher.update(this.data[email], "hex", "utf8");
|
||||
dec += decipher.final("utf8");
|
||||
return dec.indexOf("valid") === 0 ? dec.substr(5) : false;
|
||||
} catch (e) {
|
||||
// not a valid token
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
TokenCacher.prototype.init = function init(ind) {
|
||||
var _this = this;
|
||||
|
||||
var self = this;
|
||||
var savePath = savePaths[ind];
|
||||
|
||||
// Use one async function at the beginning, so the entire function is async,
|
||||
// then later use only sync functions to increase readability
|
||||
_fs2["default"].stat(savePath, function (err, dirStats) {
|
||||
// Directory does not exist.
|
||||
if (err) error(err);else {
|
||||
try {
|
||||
var storeDirPath = savePath + "/.discordjs";
|
||||
var filePath = storeDirPath + "/tokens.json";
|
||||
|
||||
if (!exists(storeDirPath)) {
|
||||
// First, make sure the directory exists, otherwise the next
|
||||
// call will fail.
|
||||
_fs2["default"].mkdirSync(storeDirPath);
|
||||
}
|
||||
if (!exists(filePath)) {
|
||||
// This will create an empty file if the file doesn't exist, and error
|
||||
// if it does exist. We previously checked that it doesn't exist so we
|
||||
// can do this safely.
|
||||
_fs2["default"].closeSync(_fs2["default"].openSync(filePath, 'wx'));
|
||||
}
|
||||
|
||||
var data = _fs2["default"].readFileSync(filePath);
|
||||
try {
|
||||
_this.data = JSON.parse(data);
|
||||
_this.savePath = filePath;
|
||||
_this.emit('ready');
|
||||
_this.done = true;
|
||||
} catch (e) {
|
||||
// not valid JSON, make it valid and then write
|
||||
_fs2["default"].writeFileSync(filePath, '{}');
|
||||
_this.savePath = filePath;
|
||||
_this.emit("ready");
|
||||
_this.done = true;
|
||||
}
|
||||
} catch (e) {
|
||||
error(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function error(e) {
|
||||
ind++;
|
||||
if (!savePaths[ind]) {
|
||||
self.emit("error");
|
||||
self.error = e;
|
||||
self.done = true;
|
||||
} else {
|
||||
self.init(ind);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return TokenCacher;
|
||||
})(_events2["default"]);
|
||||
|
||||
exports["default"] = TokenCacher;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,3 +1,204 @@
|
||||
"use strict";exports.__esModule = true;function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var _child_process=require("child_process");var _child_process2=_interopRequireDefault(_child_process); // no opus!
|
||||
var _VolumeTransformer=require("./VolumeTransformer");var _VolumeTransformer2=_interopRequireDefault(_VolumeTransformer);var opus;try{opus = require("node-opus");}catch(e) {}var AudioEncoder=(function(){function AudioEncoder(){_classCallCheck(this,AudioEncoder);if(opus){this.opus = new opus.OpusEncoder(48000,2);}this.choice = false;this.sanityCheckPassed = undefined;}AudioEncoder.prototype.sanityCheck = function sanityCheck(){var _opus=this.opus;var encodeZeroes=function encodeZeroes(){try{var zeroes=new Buffer(1920);zeroes.fill(0);return _opus.encode(zeroes,1920).readUIntBE(0,3);}catch(err) {return false;}};if(this.sanityCheckPassed === undefined)this.sanityCheckPassed = encodeZeroes() === 16056318;return this.sanityCheckPassed;};AudioEncoder.prototype.opusBuffer = function opusBuffer(buffer){return this.opus.encode(buffer,1920);};AudioEncoder.prototype.getCommand = function getCommand(force){if(this.choice && force)return choice;var choices=["avconv","ffmpeg"];for(var _iterator=choices,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;) {var _ref;if(_isArray){if(_i >= _iterator.length)break;_ref = _iterator[_i++];}else {_i = _iterator.next();if(_i.done)break;_ref = _i.value;}var choice=_ref;var p=_child_process2["default"].spawnSync(choice);if(!p.error){this.choice = choice;return choice;}}return "help";};AudioEncoder.prototype.encodeStream = function encodeStream(stream,options){var _this=this;return new Promise(function(resolve,reject){_this.volume = new _VolumeTransformer2["default"](options.volume);var enc=_child_process2["default"].spawn(_this.getCommand(),['-i','-','-f','s16le','-ar','48000','-ss',options.seek || 0,'-ac',2,'pipe:1']);var dest=stream.pipe(enc.stdin);dest.on('unpipe',function(){return dest.destroy();});dest.on('error',function(err){return dest.destroy();});_this.hookEncodingProcess(resolve,reject,enc,stream);});};AudioEncoder.prototype.encodeFile = function encodeFile(file,options){var _this2=this;return new Promise(function(resolve,reject){_this2.volume = new _VolumeTransformer2["default"](options.volume);var enc=_child_process2["default"].spawn(_this2.getCommand(),['-i',file,'-f','s16le','-ar','48000','-ss',options.seek || 0,'-ac',2,'pipe:1']);_this2.hookEncodingProcess(resolve,reject,enc);});};AudioEncoder.prototype.encodeArbitraryFFmpeg = function encodeArbitraryFFmpeg(ffmpegOptions,volume){var _this3=this;return new Promise(function(resolve,reject){_this3.volume = new _VolumeTransformer2["default"](volume); // add options discord.js needs
|
||||
var options=ffmpegOptions.concat(['-f','s16le','-ar','48000','-ac',2,'pipe:1']);var enc=_child_process2["default"].spawn(_this3.getCommand(),options);_this3.hookEncodingProcess(resolve,reject,enc);});};AudioEncoder.prototype.hookEncodingProcess = function hookEncodingProcess(resolve,reject,enc,stream){var _this4=this;var processKilled=false;function killProcess(cause){if(processKilled)return;enc.stdin.pause();enc.kill("SIGKILL");processKilled = true;reject(cause);}var ffmpegErrors="";enc.stdout.pipe(this.volume);enc.stderr.on("data",function(data){ffmpegErrors += "\n" + new Buffer(data).toString().trim();});enc.stdout.once("end",function(){killProcess("end");});enc.stdout.once("error",function(){enc.stdout.emit("end");});enc.once("exit",function(code,signal){if(code){reject(new Error("FFMPEG: " + ffmpegErrors));}});this.volume.once("readable",function(){var data={proc:enc,stream:_this4.volume,channels:2};if(stream){data.instream = stream;}resolve(data);});this.volume.once("end",function(){killProcess("end");});this.volume.once("error",function(){killProcess("end");});this.volume.on("end",function(){killProcess("end");});this.volume.on("close",function(){killProcess("close");});};return AudioEncoder;})();exports["default"] = AudioEncoder;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var _child_process = require("child_process");
|
||||
|
||||
var _child_process2 = _interopRequireDefault(_child_process);
|
||||
|
||||
// no opus!
|
||||
|
||||
var _VolumeTransformer = require("./VolumeTransformer");
|
||||
|
||||
var _VolumeTransformer2 = _interopRequireDefault(_VolumeTransformer);
|
||||
|
||||
var opus;
|
||||
try {
|
||||
opus = require("node-opus");
|
||||
} catch (e) {}
|
||||
|
||||
var AudioEncoder = (function () {
|
||||
function AudioEncoder() {
|
||||
_classCallCheck(this, AudioEncoder);
|
||||
|
||||
if (opus) {
|
||||
this.opus = new opus.OpusEncoder(48000, 2);
|
||||
}
|
||||
this.choice = false;
|
||||
this.sanityCheckPassed = undefined;
|
||||
}
|
||||
|
||||
AudioEncoder.prototype.sanityCheck = function sanityCheck() {
|
||||
var _opus = this.opus;
|
||||
var encodeZeroes = function encodeZeroes() {
|
||||
try {
|
||||
var zeroes = new Buffer(1920);
|
||||
zeroes.fill(0);
|
||||
return _opus.encode(zeroes, 1920).readUIntBE(0, 3);
|
||||
} catch (err) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
if (this.sanityCheckPassed === undefined) this.sanityCheckPassed = encodeZeroes() === 16056318;
|
||||
return this.sanityCheckPassed;
|
||||
};
|
||||
|
||||
AudioEncoder.prototype.opusBuffer = function opusBuffer(buffer) {
|
||||
|
||||
return this.opus.encode(buffer, 1920);
|
||||
};
|
||||
|
||||
AudioEncoder.prototype.getCommand = function getCommand(force) {
|
||||
if (this.choice && force) return choice;
|
||||
|
||||
var choices = ["avconv", "ffmpeg"];
|
||||
|
||||
for (var _iterator = choices, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
||||
var _ref;
|
||||
|
||||
if (_isArray) {
|
||||
if (_i >= _iterator.length) break;
|
||||
_ref = _iterator[_i++];
|
||||
} else {
|
||||
_i = _iterator.next();
|
||||
if (_i.done) break;
|
||||
_ref = _i.value;
|
||||
}
|
||||
|
||||
var choice = _ref;
|
||||
|
||||
var p = _child_process2["default"].spawnSync(choice);
|
||||
if (!p.error) {
|
||||
this.choice = choice;
|
||||
return choice;
|
||||
}
|
||||
}
|
||||
|
||||
return "help";
|
||||
};
|
||||
|
||||
AudioEncoder.prototype.encodeStream = function encodeStream(stream, options) {
|
||||
var _this = this;
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this.volume = new _VolumeTransformer2["default"](options.volume);
|
||||
|
||||
var enc = _child_process2["default"].spawn(_this.getCommand(), ['-i', '-', '-f', 's16le', '-ar', '48000', '-ss', options.seek || 0, '-ac', 2, 'pipe:1']);
|
||||
|
||||
var dest = stream.pipe(enc.stdin);
|
||||
|
||||
dest.on('unpipe', function () {
|
||||
return dest.destroy();
|
||||
});
|
||||
dest.on('error', function (err) {
|
||||
return dest.destroy();
|
||||
});
|
||||
|
||||
_this.hookEncodingProcess(resolve, reject, enc, stream);
|
||||
});
|
||||
};
|
||||
|
||||
AudioEncoder.prototype.encodeFile = function encodeFile(file, options) {
|
||||
var _this2 = this;
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this2.volume = new _VolumeTransformer2["default"](options.volume);
|
||||
|
||||
var enc = _child_process2["default"].spawn(_this2.getCommand(), ['-i', file, '-f', 's16le', '-ar', '48000', '-ss', options.seek || 0, '-ac', 2, 'pipe:1']);
|
||||
|
||||
_this2.hookEncodingProcess(resolve, reject, enc);
|
||||
});
|
||||
};
|
||||
|
||||
AudioEncoder.prototype.encodeArbitraryFFmpeg = function encodeArbitraryFFmpeg(ffmpegOptions, volume) {
|
||||
var _this3 = this;
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this3.volume = new _VolumeTransformer2["default"](volume);
|
||||
|
||||
// add options discord.js needs
|
||||
var options = ffmpegOptions.concat(['-f', 's16le', '-ar', '48000', '-ac', 2, 'pipe:1']);
|
||||
var enc = _child_process2["default"].spawn(_this3.getCommand(), options);
|
||||
|
||||
_this3.hookEncodingProcess(resolve, reject, enc);
|
||||
});
|
||||
};
|
||||
|
||||
AudioEncoder.prototype.hookEncodingProcess = function hookEncodingProcess(resolve, reject, enc, stream) {
|
||||
var _this4 = this;
|
||||
|
||||
var processKilled = false;
|
||||
|
||||
function killProcess(cause) {
|
||||
if (processKilled) return;
|
||||
|
||||
enc.stdin.pause();
|
||||
enc.kill("SIGKILL");
|
||||
|
||||
processKilled = true;
|
||||
|
||||
reject(cause);
|
||||
}
|
||||
|
||||
var ffmpegErrors = "";
|
||||
|
||||
enc.stdout.pipe(this.volume);
|
||||
|
||||
enc.stderr.on("data", function (data) {
|
||||
ffmpegErrors += "\n" + new Buffer(data).toString().trim();
|
||||
});
|
||||
|
||||
enc.stdout.once("end", function () {
|
||||
killProcess("end");
|
||||
});
|
||||
|
||||
enc.stdout.once("error", function () {
|
||||
enc.stdout.emit("end");
|
||||
});
|
||||
|
||||
enc.once("exit", function (code, signal) {
|
||||
if (code) {
|
||||
reject(new Error("FFMPEG: " + ffmpegErrors));
|
||||
}
|
||||
});
|
||||
|
||||
this.volume.once("readable", function () {
|
||||
var data = {
|
||||
proc: enc,
|
||||
stream: _this4.volume,
|
||||
channels: 2
|
||||
};
|
||||
|
||||
if (stream) {
|
||||
data.instream = stream;
|
||||
}
|
||||
|
||||
resolve(data);
|
||||
});
|
||||
|
||||
this.volume.once("end", function () {
|
||||
killProcess("end");
|
||||
});
|
||||
|
||||
this.volume.once("error", function () {
|
||||
killProcess("end");
|
||||
});
|
||||
|
||||
this.volume.on("end", function () {
|
||||
killProcess("end");
|
||||
});
|
||||
|
||||
this.volume.on("close", function () {
|
||||
killProcess("close");
|
||||
});
|
||||
};
|
||||
|
||||
return AudioEncoder;
|
||||
})();
|
||||
|
||||
exports["default"] = AudioEncoder;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,2 +1,28 @@
|
||||
"use strict"; // represents an intent of streaming music
|
||||
exports.__esModule = true;function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _events=require("events");var _events2=_interopRequireDefault(_events);var StreamIntent=(function(_EventEmitter){_inherits(StreamIntent,_EventEmitter);function StreamIntent(){_classCallCheck(this,StreamIntent);_EventEmitter.call(this);}return StreamIntent;})(_events2["default"]);exports["default"] = StreamIntent;module.exports = exports["default"];
|
||||
"use strict";
|
||||
// represents an intent of streaming music
|
||||
exports.__esModule = true;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _events = require("events");
|
||||
|
||||
var _events2 = _interopRequireDefault(_events);
|
||||
|
||||
var StreamIntent = (function (_EventEmitter) {
|
||||
_inherits(StreamIntent, _EventEmitter);
|
||||
|
||||
function StreamIntent() {
|
||||
_classCallCheck(this, StreamIntent);
|
||||
|
||||
_EventEmitter.call(this);
|
||||
}
|
||||
|
||||
return StreamIntent;
|
||||
})(_events2["default"]);
|
||||
|
||||
exports["default"] = StreamIntent;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,14 +1,522 @@
|
||||
"use strict"; /*
|
||||
"use strict";
|
||||
/*
|
||||
Major credit to izy521 who is the creator of
|
||||
https://github.com/izy521/discord.io,
|
||||
|
||||
without his help voice chat in discord.js would not have
|
||||
been possible!
|
||||
*/exports.__esModule = true;function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass,superClass){if(typeof superClass !== "function" && superClass !== null){throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var _ws=require("ws");var _ws2=_interopRequireDefault(_ws);var _dns=require("dns");var _dns2=_interopRequireDefault(_dns);var _dgram=require("dgram");var _dgram2=_interopRequireDefault(_dgram);var _AudioEncoder=require("./AudioEncoder");var _AudioEncoder2=_interopRequireDefault(_AudioEncoder);var _VoicePacket=require("./VoicePacket");var _VoicePacket2=_interopRequireDefault(_VoicePacket);var _VolumeTransformer=require("./VolumeTransformer");var _VolumeTransformer2=_interopRequireDefault(_VolumeTransformer);var _StreamIntent=require("./StreamIntent");var _StreamIntent2=_interopRequireDefault(_StreamIntent);var _events=require("events");var _events2=_interopRequireDefault(_events);var _unpipe=require("unpipe");var _unpipe2=_interopRequireDefault(_unpipe);var MODE_xsalsa20_poly1305="xsalsa20_poly1305";var MODE_plain="plain";var VoiceConnection=(function(_EventEmitter){_inherits(VoiceConnection,_EventEmitter);function VoiceConnection(channel,client,session,token,server,endpoint){_classCallCheck(this,VoiceConnection);_EventEmitter.call(this);this.id = channel.id;this.voiceChannel = channel;this.client = client;this.session = session;this.token = token;this.server = server;this.endpoint = endpoint.split(":")[0];this.vWS = null; // vWS means voice websocket
|
||||
this.ready = false;this.vWSData = {};this.encoder = new _AudioEncoder2["default"]();this.udp = null;this.playingIntent = null;this.playing = false;this.streamTime = 0;this.streamProc = null;this.KAI = null;this.timestamp = 0;this.sequence = 0;this.mode = null;this.secret = null;this.volume = new _VolumeTransformer2["default"]();this.paused = false;this.init();}VoiceConnection.prototype.destroy = function destroy(){this.stopPlaying();if(this.KAI){clearInterval(this.KAI);}this.client.internal.sendWS({op:4,d:{guild_id:this.server.id,channel_id:null,self_mute:true,self_deaf:false}});this.client.internal.voiceConnections.remove(this);try{this.vWS.close();}catch(e) {}try{this.udp.close();}catch(e) {}};VoiceConnection.prototype.stopPlaying = function stopPlaying(){this.playing = false;this.playingIntent = null;if(this.instream){ //not all streams implement these...
|
||||
//and even file stream don't seem to implement them properly...
|
||||
_unpipe2["default"](this.instream);if(this.instream.end){this.instream.end();}if(this.instream.destroy){this.instream.destroy();}this.instream = null;}if(this.streamProc){this.streamProc.stdin.pause();this.streamProc.kill("SIGKILL");this.streamProc = null;}};VoiceConnection.prototype.playStream = function playStream(stream){var channels=arguments.length <= 1 || arguments[1] === undefined?2:arguments[1];var self=this,startTime=Date.now(),count=0,length=20,retStream=new _StreamIntent2["default"](),onWarning=false;this.volume = stream;this.playing = true;this.playingIntent = retStream;function send(){if(self.paused){startTime += Date.now() - (startTime + count * length);setTimeout(send,length);return;}if(!self.playingIntent || !self.playing){self.setSpeaking(false);self.stopPlaying();retStream.emit("end");return;}try{var buffer=stream.read(1920 * channels);if(!buffer){if(onWarning){self.setSpeaking(false);self.stopPlaying();retStream.emit("end");return;}else {onWarning = true;setTimeout(send,length * 10); // give chance for some data in 200ms to appear
|
||||
return;}}if(buffer.length !== 1920 * channels){var newBuffer=new Buffer(1920 * channels).fill(0);buffer.copy(newBuffer);buffer = newBuffer;}count++;self.sequence + 1 < 65535?self.sequence += 1:self.sequence = 0;self.timestamp + 960 < 4294967295?self.timestamp += 960:self.timestamp = 0;self.sendBuffer(buffer,self.sequence,self.timestamp,function(e){});var nextTime=startTime + count * length;self.streamTime = count * length;setTimeout(send,length + (nextTime - Date.now()));if(!self.playing)self.setSpeaking(true);retStream.emit("time",self.streamTime);}catch(e) {retStream.emit("error",e);}}self.setSpeaking(true);send();return retStream;};VoiceConnection.prototype.setSpeaking = function setSpeaking(value){this.playing = value;if(this.vWS.readyState === _ws2["default"].OPEN)this.vWS.send(JSON.stringify({op:5,d:{speaking:value,delay:0}}));};VoiceConnection.prototype.sendPacket = function sendPacket(packet){var callback=arguments.length <= 1 || arguments[1] === undefined?function(err){}:arguments[1];var self=this;self.playing = true;try{if(self.vWS.readyState === _ws2["default"].OPEN)self.udp.send(packet,0,packet.length,self.vWSData.port,self.endpoint,callback);}catch(e) {self.playing = false;callback(e);return false;}};VoiceConnection.prototype.sendBuffer = function sendBuffer(rawbuffer,sequence,timestamp,callback){var self=this;self.playing = true;try{if(!self.encoder.opus){self.playing = false;throw new Error("node-opus not found! Perhaps you didn't install it.");return;}if(!self.encoder.sanityCheck()){self.playing = false;throw new Error("node-opus sanity check failed! Try re-installing node-opus.");return;}var buffer=self.encoder.opusBuffer(rawbuffer);var packet=new _VoicePacket2["default"](buffer,sequence,timestamp,self.vWSData.ssrc,self.secret);return self.sendPacket(packet,callback);}catch(e) {self.playing = false;self.emit("error",e);return false;}};VoiceConnection.prototype.playFile = function playFile(stream){var _this=this;var options=arguments.length <= 1 || arguments[1] === undefined?false:arguments[1];var callback=arguments.length <= 2 || arguments[2] === undefined?function(err,str){}:arguments[2];var self=this;self.stopPlaying();if(typeof options === "function"){ // options is the callback
|
||||
callback = options;}if(typeof options !== "object"){options = {};}options.volume = options.volume !== undefined?options.volume:this.getVolume();return new Promise(function(resolve,reject){_this.encoder.encodeFile(stream,options)["catch"](error).then(function(data){self.streamProc = data.proc;var intent=self.playStream(data.stream,2);resolve(intent);callback(null,intent);});function error(){var e=arguments.length <= 0 || arguments[0] === undefined?true:arguments[0];reject(e);callback(e);}});};VoiceConnection.prototype.playRawStream = function playRawStream(stream){var _this2=this;var options=arguments.length <= 1 || arguments[1] === undefined?false:arguments[1];var callback=arguments.length <= 2 || arguments[2] === undefined?function(err,str){}:arguments[2];var self=this;self.stopPlaying();if(typeof options === "function"){ // options is the callback
|
||||
callback = options;}if(typeof options !== "object"){options = {};}options.volume = options.volume !== undefined?options.volume:this.getVolume();return new Promise(function(resolve,reject){_this2.encoder.encodeStream(stream,options)["catch"](error).then(function(data){self.streamProc = data.proc;self.instream = data.instream;var intent=self.playStream(data.stream);resolve(intent);callback(null,intent);});function error(){var e=arguments.length <= 0 || arguments[0] === undefined?true:arguments[0];reject(e);callback(e);}});};VoiceConnection.prototype.playArbitraryFFmpeg = function playArbitraryFFmpeg(ffmpegOptions,volume){var _this3=this;var callback=arguments.length <= 2 || arguments[2] === undefined?function(err,str){}:arguments[2];var self=this;self.stopPlaying();if(typeof volume === "function"){ // volume is the callback
|
||||
callback = volume;}if(!ffmpegOptions instanceof Array){ffmpegOptions = [];}var volume=volume !== undefined?volume:this.getVolume();return new Promise(function(resolve,reject){_this3.encoder.encodeArbitraryFFmpeg(ffmpegOptions,volume)["catch"](error).then(function(data){self.streamProc = data.proc;self.instream = data.instream;var intent=self.playStream(data.stream);resolve(intent);callback(null,intent);});function error(){var e=arguments.length <= 0 || arguments[0] === undefined?true:arguments[0];reject(e);callback(e);}});};VoiceConnection.prototype.init = function init(){var _this4=this;var self=this;_dns2["default"].lookup(this.endpoint,function(err,address,family){var vWS=self.vWS = new _ws2["default"]("wss://" + _this4.endpoint,null,{rejectUnauthorized:false});_this4.endpoint = address;var udpClient=self.udp = _dgram2["default"].createSocket("udp4");var firstPacket=true;var discordIP="",discordPort="";udpClient.bind({exclusive:true});udpClient.on('message',function(msg,rinfo){var buffArr=JSON.parse(JSON.stringify(msg)).data;if(firstPacket === true){for(var i=4;i < buffArr.indexOf(0,i);i++) {discordIP += String.fromCharCode(buffArr[i]);}discordPort = msg.readUIntLE(msg.length - 2,2).toString(10);var modes=self.vWSData.modes;var mode=MODE_xsalsa20_poly1305;if(modes.indexOf(MODE_xsalsa20_poly1305) < 0){mode = MODE_plain;self.client.emit("debug","Encrypted mode not reported as supported by the server, using 'plain'");}vWS.send(JSON.stringify({"op":1,"d":{"protocol":"udp","data":{"address":discordIP,"port":Number(discordPort),"mode":mode}}}));firstPacket = false;}});vWS.on("open",function(){vWS.send(JSON.stringify({op:0,d:{server_id:self.server.id,user_id:self.client.internal.user.id,session_id:self.session,token:self.token}}));});var KAI;vWS.on("message",function(msg){var data=JSON.parse(msg);switch(data.op){case 2:self.vWSData = data.d;self.KAI = KAI = self.client.internal.intervals.misc["voiceKAI"] = setInterval(function(){if(vWS && vWS.readyState === _ws2["default"].OPEN)vWS.send(JSON.stringify({op:3,d:null}));},data.d.heartbeat_interval);var udpPacket=new Buffer(70);udpPacket.writeUIntBE(data.d.ssrc,0,4);udpClient.send(udpPacket,0,udpPacket.length,data.d.port,self.endpoint,function(err){if(err)self.emit("error",err);});break;case 4:if(data.d.secret_key && data.d.secret_key.length > 0){var buffer=new ArrayBuffer(data.d.secret_key.length);self.secret = new Uint8Array(buffer);for(var i=0;i < _this4.secret.length;i++) {self.secret[i] = data.d.secret_key[i];}}self.ready = true;self.mode = data.d.mode;self.emit("ready",self);break;case 5:var user=self.server.members.get("id",data.d.user_id);if(user){var speaking=data.d.speaking;var channel=user.voiceChannel;if(channel){user.speaking = speaking;self.client.emit("voiceSpeaking",channel,user);}else {self.client.emit("warn","channel doesn't exist even though SPEAKING expects them to");}}else {self.client.emit("warn","user doesn't exist even though SPEAKING expects them to");}break;}});vWS.on("error",function(err,msg){self.emit("error",err,msg);});vWS.on("close",function(code){self.emit("close",code);});});};VoiceConnection.prototype.wrapVolume = function wrapVolume(stream){stream.pipe(this.volume);return this.volume;};VoiceConnection.prototype.setVolume = function setVolume(volume){this.volume.set(volume);};VoiceConnection.prototype.getVolume = function getVolume(){return this.volume.get();};VoiceConnection.prototype.mute = function mute(){this.lastVolume = this.volume.get();this.setVolume(0);};VoiceConnection.prototype.unmute = function unmute(){this.setVolume(this.lastVolume);this.lastVolume = undefined;};VoiceConnection.prototype.pause = function pause(){this.paused = true;this.setSpeaking(false);this.playingIntent.emit("pause");};VoiceConnection.prototype.resume = function resume(){this.paused = false;this.setSpeaking(true);this.playingIntent.emit("resume");};return VoiceConnection;})(_events2["default"]);exports["default"] = VoiceConnection;module.exports = exports["default"];
|
||||
*/
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var _ws = require("ws");
|
||||
|
||||
var _ws2 = _interopRequireDefault(_ws);
|
||||
|
||||
var _dns = require("dns");
|
||||
|
||||
var _dns2 = _interopRequireDefault(_dns);
|
||||
|
||||
var _dgram = require("dgram");
|
||||
|
||||
var _dgram2 = _interopRequireDefault(_dgram);
|
||||
|
||||
var _AudioEncoder = require("./AudioEncoder");
|
||||
|
||||
var _AudioEncoder2 = _interopRequireDefault(_AudioEncoder);
|
||||
|
||||
var _VoicePacket = require("./VoicePacket");
|
||||
|
||||
var _VoicePacket2 = _interopRequireDefault(_VoicePacket);
|
||||
|
||||
var _VolumeTransformer = require("./VolumeTransformer");
|
||||
|
||||
var _VolumeTransformer2 = _interopRequireDefault(_VolumeTransformer);
|
||||
|
||||
var _StreamIntent = require("./StreamIntent");
|
||||
|
||||
var _StreamIntent2 = _interopRequireDefault(_StreamIntent);
|
||||
|
||||
var _events = require("events");
|
||||
|
||||
var _events2 = _interopRequireDefault(_events);
|
||||
|
||||
var _unpipe = require("unpipe");
|
||||
|
||||
var _unpipe2 = _interopRequireDefault(_unpipe);
|
||||
|
||||
var MODE_xsalsa20_poly1305 = "xsalsa20_poly1305";
|
||||
var MODE_plain = "plain";
|
||||
|
||||
var VoiceConnection = (function (_EventEmitter) {
|
||||
_inherits(VoiceConnection, _EventEmitter);
|
||||
|
||||
function VoiceConnection(channel, client, session, token, server, endpoint) {
|
||||
_classCallCheck(this, VoiceConnection);
|
||||
|
||||
_EventEmitter.call(this);
|
||||
this.id = channel.id;
|
||||
this.voiceChannel = channel;
|
||||
this.client = client;
|
||||
this.session = session;
|
||||
this.token = token;
|
||||
this.server = server;
|
||||
this.endpoint = endpoint.split(":")[0];
|
||||
this.vWS = null; // vWS means voice websocket
|
||||
this.ready = false;
|
||||
this.vWSData = {};
|
||||
this.encoder = new _AudioEncoder2["default"]();
|
||||
this.udp = null;
|
||||
this.playingIntent = null;
|
||||
this.playing = false;
|
||||
this.streamTime = 0;
|
||||
this.streamProc = null;
|
||||
this.KAI = null;
|
||||
this.timestamp = 0;
|
||||
this.sequence = 0;
|
||||
|
||||
this.mode = null;
|
||||
this.secret = null;
|
||||
|
||||
this.volume = new _VolumeTransformer2["default"]();
|
||||
this.paused = false;
|
||||
this.init();
|
||||
}
|
||||
|
||||
VoiceConnection.prototype.destroy = function destroy() {
|
||||
this.stopPlaying();
|
||||
if (this.KAI) {
|
||||
clearInterval(this.KAI);
|
||||
}
|
||||
this.client.internal.sendWS({
|
||||
op: 4,
|
||||
d: {
|
||||
guild_id: this.server.id,
|
||||
channel_id: null,
|
||||
self_mute: true,
|
||||
self_deaf: false
|
||||
}
|
||||
});
|
||||
this.client.internal.voiceConnections.remove(this);
|
||||
try {
|
||||
this.vWS.close();
|
||||
} catch (e) {}
|
||||
try {
|
||||
this.udp.close();
|
||||
} catch (e) {}
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.stopPlaying = function stopPlaying() {
|
||||
this.playing = false;
|
||||
this.playingIntent = null;
|
||||
if (this.instream) {
|
||||
//not all streams implement these...
|
||||
//and even file stream don't seem to implement them properly...
|
||||
_unpipe2["default"](this.instream);
|
||||
if (this.instream.end) {
|
||||
this.instream.end();
|
||||
}
|
||||
if (this.instream.destroy) {
|
||||
this.instream.destroy();
|
||||
}
|
||||
this.instream = null;
|
||||
}
|
||||
if (this.streamProc) {
|
||||
this.streamProc.stdin.pause();
|
||||
this.streamProc.kill("SIGKILL");
|
||||
this.streamProc = null;
|
||||
}
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.playStream = function playStream(stream) {
|
||||
var channels = arguments.length <= 1 || arguments[1] === undefined ? 2 : arguments[1];
|
||||
|
||||
var self = this,
|
||||
startTime = Date.now(),
|
||||
count = 0,
|
||||
length = 20,
|
||||
retStream = new _StreamIntent2["default"](),
|
||||
onWarning = false;
|
||||
|
||||
this.volume = stream;
|
||||
this.playing = true;
|
||||
this.playingIntent = retStream;
|
||||
|
||||
function send() {
|
||||
if (self.paused) {
|
||||
startTime += Date.now() - (startTime + count * length);
|
||||
setTimeout(send, length);
|
||||
return;
|
||||
}
|
||||
if (!self.playingIntent || !self.playing) {
|
||||
self.setSpeaking(false);
|
||||
self.stopPlaying();
|
||||
retStream.emit("end");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
|
||||
var buffer = stream.read(1920 * channels);
|
||||
|
||||
if (!buffer) {
|
||||
if (onWarning) {
|
||||
self.setSpeaking(false);
|
||||
self.stopPlaying();
|
||||
retStream.emit("end");
|
||||
return;
|
||||
} else {
|
||||
onWarning = true;
|
||||
setTimeout(send, length * 10); // give chance for some data in 200ms to appear
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (buffer.length !== 1920 * channels) {
|
||||
var newBuffer = new Buffer(1920 * channels).fill(0);
|
||||
buffer.copy(newBuffer);
|
||||
buffer = newBuffer;
|
||||
}
|
||||
|
||||
count++;
|
||||
self.sequence + 1 < 65535 ? self.sequence += 1 : self.sequence = 0;
|
||||
self.timestamp + 960 < 4294967295 ? self.timestamp += 960 : self.timestamp = 0;
|
||||
|
||||
self.sendBuffer(buffer, self.sequence, self.timestamp, function (e) {});
|
||||
|
||||
var nextTime = startTime + count * length;
|
||||
|
||||
self.streamTime = count * length;
|
||||
|
||||
setTimeout(send, length + (nextTime - Date.now()));
|
||||
|
||||
if (!self.playing) self.setSpeaking(true);
|
||||
|
||||
retStream.emit("time", self.streamTime);
|
||||
} catch (e) {
|
||||
retStream.emit("error", e);
|
||||
}
|
||||
}
|
||||
self.setSpeaking(true);
|
||||
send();
|
||||
|
||||
return retStream;
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.setSpeaking = function setSpeaking(value) {
|
||||
this.playing = value;
|
||||
if (this.vWS.readyState === _ws2["default"].OPEN) this.vWS.send(JSON.stringify({
|
||||
op: 5,
|
||||
d: {
|
||||
speaking: value,
|
||||
delay: 0
|
||||
}
|
||||
}));
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.sendPacket = function sendPacket(packet) {
|
||||
var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err) {} : arguments[1];
|
||||
|
||||
var self = this;
|
||||
self.playing = true;
|
||||
try {
|
||||
if (self.vWS.readyState === _ws2["default"].OPEN) self.udp.send(packet, 0, packet.length, self.vWSData.port, self.endpoint, callback);
|
||||
} catch (e) {
|
||||
self.playing = false;
|
||||
callback(e);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.sendBuffer = function sendBuffer(rawbuffer, sequence, timestamp, callback) {
|
||||
var self = this;
|
||||
self.playing = true;
|
||||
try {
|
||||
if (!self.encoder.opus) {
|
||||
self.playing = false;
|
||||
throw new Error("node-opus not found! Perhaps you didn't install it.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!self.encoder.sanityCheck()) {
|
||||
self.playing = false;
|
||||
throw new Error("node-opus sanity check failed! Try re-installing node-opus.");
|
||||
return;
|
||||
}
|
||||
|
||||
var buffer = self.encoder.opusBuffer(rawbuffer);
|
||||
var packet = new _VoicePacket2["default"](buffer, sequence, timestamp, self.vWSData.ssrc, self.secret);
|
||||
return self.sendPacket(packet, callback);
|
||||
} catch (e) {
|
||||
self.playing = false;
|
||||
self.emit("error", e);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.playFile = function playFile(stream) {
|
||||
var _this = this;
|
||||
|
||||
var options = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
|
||||
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, str) {} : arguments[2];
|
||||
|
||||
var self = this;
|
||||
self.stopPlaying();
|
||||
if (typeof options === "function") {
|
||||
// options is the callback
|
||||
callback = options;
|
||||
}
|
||||
if (typeof options !== "object") {
|
||||
options = {};
|
||||
}
|
||||
options.volume = options.volume !== undefined ? options.volume : this.getVolume();
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this.encoder.encodeFile(stream, options)["catch"](error).then(function (data) {
|
||||
self.streamProc = data.proc;
|
||||
var intent = self.playStream(data.stream, 2);
|
||||
resolve(intent);
|
||||
callback(null, intent);
|
||||
});
|
||||
function error() {
|
||||
var e = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
|
||||
|
||||
reject(e);
|
||||
callback(e);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.playRawStream = function playRawStream(stream) {
|
||||
var _this2 = this;
|
||||
|
||||
var options = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
|
||||
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, str) {} : arguments[2];
|
||||
|
||||
var self = this;
|
||||
self.stopPlaying();
|
||||
if (typeof options === "function") {
|
||||
// options is the callback
|
||||
callback = options;
|
||||
}
|
||||
if (typeof options !== "object") {
|
||||
options = {};
|
||||
}
|
||||
options.volume = options.volume !== undefined ? options.volume : this.getVolume();
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this2.encoder.encodeStream(stream, options)["catch"](error).then(function (data) {
|
||||
self.streamProc = data.proc;
|
||||
self.instream = data.instream;
|
||||
var intent = self.playStream(data.stream);
|
||||
resolve(intent);
|
||||
callback(null, intent);
|
||||
});
|
||||
function error() {
|
||||
var e = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
|
||||
|
||||
reject(e);
|
||||
callback(e);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.playArbitraryFFmpeg = function playArbitraryFFmpeg(ffmpegOptions, volume) {
|
||||
var _this3 = this;
|
||||
|
||||
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, str) {} : arguments[2];
|
||||
|
||||
var self = this;
|
||||
self.stopPlaying();
|
||||
if (typeof volume === "function") {
|
||||
// volume is the callback
|
||||
callback = volume;
|
||||
}
|
||||
if (!ffmpegOptions instanceof Array) {
|
||||
ffmpegOptions = [];
|
||||
}
|
||||
var volume = volume !== undefined ? volume : this.getVolume();
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this3.encoder.encodeArbitraryFFmpeg(ffmpegOptions, volume)["catch"](error).then(function (data) {
|
||||
self.streamProc = data.proc;
|
||||
self.instream = data.instream;
|
||||
var intent = self.playStream(data.stream);
|
||||
resolve(intent);
|
||||
callback(null, intent);
|
||||
});
|
||||
function error() {
|
||||
var e = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
|
||||
|
||||
reject(e);
|
||||
callback(e);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.init = function init() {
|
||||
var _this4 = this;
|
||||
|
||||
var self = this;
|
||||
_dns2["default"].lookup(this.endpoint, function (err, address, family) {
|
||||
var vWS = self.vWS = new _ws2["default"]("wss://" + _this4.endpoint, null, { rejectUnauthorized: false });
|
||||
_this4.endpoint = address;
|
||||
var udpClient = self.udp = _dgram2["default"].createSocket("udp4");
|
||||
|
||||
var firstPacket = true;
|
||||
|
||||
var discordIP = "",
|
||||
discordPort = "";
|
||||
|
||||
udpClient.bind({ exclusive: true });
|
||||
udpClient.on('message', function (msg, rinfo) {
|
||||
var buffArr = JSON.parse(JSON.stringify(msg)).data;
|
||||
if (firstPacket === true) {
|
||||
for (var i = 4; i < buffArr.indexOf(0, i); i++) {
|
||||
discordIP += String.fromCharCode(buffArr[i]);
|
||||
}
|
||||
discordPort = msg.readUIntLE(msg.length - 2, 2).toString(10);
|
||||
|
||||
var modes = self.vWSData.modes;
|
||||
var mode = MODE_xsalsa20_poly1305;
|
||||
if (modes.indexOf(MODE_xsalsa20_poly1305) < 0) {
|
||||
mode = MODE_plain;
|
||||
self.client.emit("debug", "Encrypted mode not reported as supported by the server, using 'plain'");
|
||||
}
|
||||
|
||||
vWS.send(JSON.stringify({
|
||||
"op": 1,
|
||||
"d": {
|
||||
"protocol": "udp",
|
||||
"data": {
|
||||
"address": discordIP,
|
||||
"port": Number(discordPort),
|
||||
"mode": mode
|
||||
}
|
||||
}
|
||||
}));
|
||||
firstPacket = false;
|
||||
}
|
||||
});
|
||||
|
||||
vWS.on("open", function () {
|
||||
vWS.send(JSON.stringify({
|
||||
op: 0,
|
||||
d: {
|
||||
server_id: self.server.id,
|
||||
user_id: self.client.internal.user.id,
|
||||
session_id: self.session,
|
||||
token: self.token
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
var KAI;
|
||||
|
||||
vWS.on("message", function (msg) {
|
||||
var data = JSON.parse(msg);
|
||||
switch (data.op) {
|
||||
case 2:
|
||||
self.vWSData = data.d;
|
||||
|
||||
self.KAI = KAI = self.client.internal.intervals.misc["voiceKAI"] = setInterval(function () {
|
||||
if (vWS && vWS.readyState === _ws2["default"].OPEN) vWS.send(JSON.stringify({
|
||||
op: 3,
|
||||
d: null
|
||||
}));
|
||||
}, data.d.heartbeat_interval);
|
||||
|
||||
var udpPacket = new Buffer(70);
|
||||
udpPacket.writeUIntBE(data.d.ssrc, 0, 4);
|
||||
udpClient.send(udpPacket, 0, udpPacket.length, data.d.port, self.endpoint, function (err) {
|
||||
if (err) self.emit("error", err);
|
||||
});
|
||||
break;
|
||||
case 4:
|
||||
if (data.d.secret_key && data.d.secret_key.length > 0) {
|
||||
var buffer = new ArrayBuffer(data.d.secret_key.length);
|
||||
self.secret = new Uint8Array(buffer);
|
||||
for (var i = 0; i < _this4.secret.length; i++) {
|
||||
self.secret[i] = data.d.secret_key[i];
|
||||
}
|
||||
}
|
||||
|
||||
self.ready = true;
|
||||
self.mode = data.d.mode;
|
||||
self.emit("ready", self);
|
||||
|
||||
break;
|
||||
case 5:
|
||||
var user = self.server.members.get("id", data.d.user_id);
|
||||
|
||||
if (user) {
|
||||
var speaking = data.d.speaking;
|
||||
var channel = user.voiceChannel;
|
||||
|
||||
if (channel) {
|
||||
user.speaking = speaking;
|
||||
self.client.emit("voiceSpeaking", channel, user);
|
||||
} else {
|
||||
self.client.emit("warn", "channel doesn't exist even though SPEAKING expects them to");
|
||||
}
|
||||
} else {
|
||||
self.client.emit("warn", "user doesn't exist even though SPEAKING expects them to");
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
vWS.on("error", function (err, msg) {
|
||||
self.emit("error", err, msg);
|
||||
});
|
||||
|
||||
vWS.on("close", function (code) {
|
||||
self.emit("close", code);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.wrapVolume = function wrapVolume(stream) {
|
||||
stream.pipe(this.volume);
|
||||
|
||||
return this.volume;
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.setVolume = function setVolume(volume) {
|
||||
this.volume.set(volume);
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.getVolume = function getVolume() {
|
||||
return this.volume.get();
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.mute = function mute() {
|
||||
this.lastVolume = this.volume.get();
|
||||
this.setVolume(0);
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.unmute = function unmute() {
|
||||
this.setVolume(this.lastVolume);
|
||||
this.lastVolume = undefined;
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.pause = function pause() {
|
||||
this.paused = true;
|
||||
this.setSpeaking(false);
|
||||
this.playingIntent.emit("pause");
|
||||
};
|
||||
|
||||
VoiceConnection.prototype.resume = function resume() {
|
||||
this.paused = false;
|
||||
this.setSpeaking(true);
|
||||
this.playingIntent.emit("resume");
|
||||
};
|
||||
|
||||
return VoiceConnection;
|
||||
})(_events2["default"]);
|
||||
|
||||
exports["default"] = VoiceConnection;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,3 +1,51 @@
|
||||
"use strict";exports.__esModule = true;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var nacl;try{nacl = require("tweetnacl");}catch(e) { // no tweetnacl!
|
||||
}var nonce=new Buffer(24);nonce.fill(0);var VoicePacket=function VoicePacket(data,sequence,time,ssrc,secret){_classCallCheck(this,VoicePacket);if(!nacl){throw new Error("tweetnacl not found! Perhaps you didn't install it.");}var mac=secret?16:0;var packetLength=data.length + 12 + mac;var audioBuffer=data;var returnBuffer=new Buffer(packetLength);returnBuffer.fill(0);returnBuffer[0] = 0x80;returnBuffer[1] = 0x78;returnBuffer.writeUIntBE(sequence,2,2);returnBuffer.writeUIntBE(time,4,4);returnBuffer.writeUIntBE(ssrc,8,4);if(secret){ // copy first 12 bytes
|
||||
returnBuffer.copy(nonce,0,0,12);audioBuffer = nacl.secretbox(data,nonce,secret);}for(var i=0;i < audioBuffer.length;i++) {returnBuffer[i + 12] = audioBuffer[i];}return returnBuffer;};exports["default"] = VoicePacket;module.exports = exports["default"];
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var nacl;
|
||||
try {
|
||||
nacl = require("tweetnacl");
|
||||
} catch (e) {
|
||||
// no tweetnacl!
|
||||
}
|
||||
|
||||
var nonce = new Buffer(24);
|
||||
nonce.fill(0);
|
||||
|
||||
var VoicePacket = function VoicePacket(data, sequence, time, ssrc, secret) {
|
||||
_classCallCheck(this, VoicePacket);
|
||||
|
||||
if (!nacl) {
|
||||
throw new Error("tweetnacl not found! Perhaps you didn't install it.");
|
||||
}
|
||||
var mac = secret ? 16 : 0;
|
||||
var packetLength = data.length + 12 + mac;
|
||||
|
||||
var audioBuffer = data;
|
||||
var returnBuffer = new Buffer(packetLength);
|
||||
|
||||
returnBuffer.fill(0);
|
||||
returnBuffer[0] = 0x80;
|
||||
returnBuffer[1] = 0x78;
|
||||
|
||||
returnBuffer.writeUIntBE(sequence, 2, 2);
|
||||
returnBuffer.writeUIntBE(time, 4, 4);
|
||||
returnBuffer.writeUIntBE(ssrc, 8, 4);
|
||||
|
||||
if (secret) {
|
||||
// copy first 12 bytes
|
||||
returnBuffer.copy(nonce, 0, 0, 12);
|
||||
audioBuffer = nacl.secretbox(data, nonce, secret);
|
||||
}
|
||||
|
||||
for (var i = 0; i < audioBuffer.length; i++) {
|
||||
returnBuffer[i + 12] = audioBuffer[i];
|
||||
}
|
||||
|
||||
return returnBuffer;
|
||||
};
|
||||
|
||||
exports["default"] = VoicePacket;
|
||||
module.exports = exports["default"];
|
||||
|
||||
@@ -1,13 +1,91 @@
|
||||
'use strict';var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if('value' in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}function _inherits(subClass,superClass){if(typeof superClass !== 'function' && superClass !== null){throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__ = superClass;}var Transform=require('stream').Transform; /**
|
||||
'use strict';
|
||||
|
||||
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var Transform = require('stream').Transform;
|
||||
|
||||
/**
|
||||
* @see https://github.com/reneraab/pcm-volume/blob/master/index.js Inspired by this script
|
||||
*/var Volume=(function(_Transform){_inherits(Volume,_Transform);function Volume(volume){_classCallCheck(this,Volume);_Transform.call(this);this.set(volume);} // Set the volume so that a value of 0.5 is half the perceived volume and
|
||||
// 2.0 is double the perceived volume.
|
||||
Volume.prototype.setVolumeLogarithmic = function setVolumeLogarithmic(value){this.volume = Math.pow(value,1.660964);}; // Set the volume to a value specified as decibels.
|
||||
Volume.prototype.setVolumeDecibels = function setVolumeDecibels(db){this.volume = Math.pow(10,db / 20);};Volume.prototype.get = function get(){return this.volume;};Volume.prototype.set = function set(volume){this.volume = volume === undefined?1:volume;};Volume.prototype._transform = function _transform(buffer,encoding,callback){var out=new Buffer(buffer.length);for(var i=0;i < buffer.length;i += 2) { // Check whether the index is actually in range - sometimes it's possible
|
||||
// that it skips ahead too far before the end condition of the for can
|
||||
// kick in.
|
||||
if(i >= buffer.length - 1){break;} // Read Int16, multiple with multiplier and round down
|
||||
//console.log(this.volume, this.multiplier, buffer.readInt16LE(i));
|
||||
var uint=Math.floor(this.multiplier * buffer.readInt16LE(i)); // Ensure value stays within 16bit
|
||||
uint = Math.min(32767,uint);uint = Math.max(-32767,uint); // Write 2 new bytes into other buffer;
|
||||
out.writeInt16LE(uint,i);}this.push(out);callback();};_createClass(Volume,[{key:'volume',get:function get(){return this._volume === undefined?1:this._volume;},set:function set(value){this._volume = value;}},{key:'multiplier',get:function get(){return this.volume;}}]);return Volume;})(Transform);module.exports = Volume;
|
||||
*/
|
||||
|
||||
var Volume = (function (_Transform) {
|
||||
_inherits(Volume, _Transform);
|
||||
|
||||
function Volume(volume) {
|
||||
_classCallCheck(this, Volume);
|
||||
|
||||
_Transform.call(this);
|
||||
this.set(volume);
|
||||
}
|
||||
|
||||
// Set the volume so that a value of 0.5 is half the perceived volume and
|
||||
// 2.0 is double the perceived volume.
|
||||
|
||||
Volume.prototype.setVolumeLogarithmic = function setVolumeLogarithmic(value) {
|
||||
this.volume = Math.pow(value, 1.660964);
|
||||
};
|
||||
|
||||
// Set the volume to a value specified as decibels.
|
||||
|
||||
Volume.prototype.setVolumeDecibels = function setVolumeDecibels(db) {
|
||||
this.volume = Math.pow(10, db / 20);
|
||||
};
|
||||
|
||||
Volume.prototype.get = function get() {
|
||||
return this.volume;
|
||||
};
|
||||
|
||||
Volume.prototype.set = function set(volume) {
|
||||
this.volume = volume === undefined ? 1 : volume;
|
||||
};
|
||||
|
||||
Volume.prototype._transform = function _transform(buffer, encoding, callback) {
|
||||
var out = new Buffer(buffer.length);
|
||||
|
||||
for (var i = 0; i < buffer.length; i += 2) {
|
||||
// Check whether the index is actually in range - sometimes it's possible
|
||||
// that it skips ahead too far before the end condition of the for can
|
||||
// kick in.
|
||||
if (i >= buffer.length - 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Read Int16, multiple with multiplier and round down
|
||||
//console.log(this.volume, this.multiplier, buffer.readInt16LE(i));
|
||||
var uint = Math.floor(this.multiplier * buffer.readInt16LE(i));
|
||||
|
||||
// Ensure value stays within 16bit
|
||||
uint = Math.min(32767, uint);
|
||||
uint = Math.max(-32767, uint);
|
||||
|
||||
// Write 2 new bytes into other buffer;
|
||||
out.writeInt16LE(uint, i);
|
||||
}
|
||||
|
||||
this.push(out);
|
||||
callback();
|
||||
};
|
||||
|
||||
_createClass(Volume, [{
|
||||
key: 'volume',
|
||||
get: function get() {
|
||||
return this._volume === undefined ? 1 : this._volume;
|
||||
},
|
||||
set: function set(value) {
|
||||
this._volume = value;
|
||||
}
|
||||
}, {
|
||||
key: 'multiplier',
|
||||
get: function get() {
|
||||
return this.volume;
|
||||
}
|
||||
}]);
|
||||
|
||||
return Volume;
|
||||
})(Transform);
|
||||
|
||||
module.exports = Volume;
|
||||
|
||||
101
lib/index.js
101
lib/index.js
@@ -1,23 +1,114 @@
|
||||
"use strict"; /**
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Object containing user agent data required for API requests.
|
||||
* @typedef {(object)} UserAgent
|
||||
* @property {string} [url=https://github.com/hydrabolt/discord.js] URL to the repository/homepage of the creator.
|
||||
* @property {string} [version=6.0.0] version of your bot.
|
||||
* @property {string} full stringified user-agent that is generate automatically upon changes. Read-only.
|
||||
*/ /**
|
||||
*/
|
||||
|
||||
/**
|
||||
* Object containing properties that can be used to alter the client's functionality.
|
||||
* @typedef {(object)} ClientOptions
|
||||
* @property {boolean} [compress=true] whether or not large packets that are sent over WebSockets should be compressed.
|
||||
* @property {boolean} [autoReconnect=false] whether the Client should attempt to automatically reconnect if it is disconnected.
|
||||
* @property {boolean} [rateLimitAsError=false] whether rejections to API requests due to rate-limiting should be treated as errors.
|
||||
* @property {Number} [largeThreshold=250] an integer between 0 and 250. When a server has more users than `options.largeThreshold`, only the online/active users are cached.
|
||||
*/ /**
|
||||
*/
|
||||
|
||||
/**
|
||||
* Object containing properties that will be applied when deleting messages
|
||||
* @typedef {(object)} MessageDeletionOptions
|
||||
* @property {Number} [wait] If set, the message will be deleted after `options.wait` milliseconds.
|
||||
*/ /**
|
||||
*/
|
||||
|
||||
/**
|
||||
* Object containing properties that will be used when fetching channel logs. You cannot specify _both_ `options.before` and `options.after`
|
||||
* @typedef {(object)} ChannelLogsOptions
|
||||
* @property {MessageResolvable} [before] When fetching logs, it will fetch from messages before `options.before` but not including it.
|
||||
* @property {MessageResolvable} [after] When fetching logs, it will fetch from messages after `options.after` but not including it.
|
||||
*/exports.__esModule = true;function _interopRequireDefault(obj){return obj && obj.__esModule?obj:{"default":obj};}var _ClientClient=require("./Client/Client");var _ClientClient2=_interopRequireDefault(_ClientClient);var _StructuresChannel=require("./Structures/Channel");var _StructuresChannel2=_interopRequireDefault(_StructuresChannel);var _StructuresChannelPermissions=require("./Structures/ChannelPermissions");var _StructuresChannelPermissions2=_interopRequireDefault(_StructuresChannelPermissions);var _StructuresInvite=require("./Structures/Invite");var _StructuresInvite2=_interopRequireDefault(_StructuresInvite);var _StructuresMessage=require("./Structures/Message");var _StructuresMessage2=_interopRequireDefault(_StructuresMessage);var _StructuresPermissionOverwrite=require("./Structures/PermissionOverwrite");var _StructuresPermissionOverwrite2=_interopRequireDefault(_StructuresPermissionOverwrite);var _StructuresPMChannel=require("./Structures/PMChannel");var _StructuresPMChannel2=_interopRequireDefault(_StructuresPMChannel);var _StructuresRole=require("./Structures/Role");var _StructuresRole2=_interopRequireDefault(_StructuresRole);var _StructuresServer=require("./Structures/Server");var _StructuresServer2=_interopRequireDefault(_StructuresServer);var _StructuresServerChannel=require("./Structures/ServerChannel");var _StructuresServerChannel2=_interopRequireDefault(_StructuresServerChannel);var _StructuresTextChannel=require("./Structures/TextChannel");var _StructuresTextChannel2=_interopRequireDefault(_StructuresTextChannel);var _StructuresUser=require("./Structures/User");var _StructuresUser2=_interopRequireDefault(_StructuresUser);var _StructuresVoiceChannel=require("./Structures/VoiceChannel");var _StructuresVoiceChannel2=_interopRequireDefault(_StructuresVoiceChannel);var _Constants=require("./Constants");var _Constants2=_interopRequireDefault(_Constants);var _UtilCacheJs=require("./Util/Cache.js");var _UtilCacheJs2=_interopRequireDefault(_UtilCacheJs);exports["default"] = {Client:_ClientClient2["default"],Channel:_StructuresChannel2["default"],ChannelPermissions:_StructuresChannelPermissions2["default"],Invite:_StructuresInvite2["default"],Message:_StructuresMessage2["default"],PermissionOverwrite:_StructuresPermissionOverwrite2["default"],PMChannel:_StructuresPMChannel2["default"],Role:_StructuresRole2["default"],Server:_StructuresServer2["default"],ServerChannel:_StructuresServerChannel2["default"],TextChannel:_StructuresTextChannel2["default"],User:_StructuresUser2["default"],VoiceChannel:_StructuresVoiceChannel2["default"],Constants:_Constants2["default"],Cache:_UtilCacheJs2["default"]};module.exports = exports["default"];
|
||||
*/
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
var _ClientClient = require("./Client/Client");
|
||||
|
||||
var _ClientClient2 = _interopRequireDefault(_ClientClient);
|
||||
|
||||
var _StructuresChannel = require("./Structures/Channel");
|
||||
|
||||
var _StructuresChannel2 = _interopRequireDefault(_StructuresChannel);
|
||||
|
||||
var _StructuresChannelPermissions = require("./Structures/ChannelPermissions");
|
||||
|
||||
var _StructuresChannelPermissions2 = _interopRequireDefault(_StructuresChannelPermissions);
|
||||
|
||||
var _StructuresInvite = require("./Structures/Invite");
|
||||
|
||||
var _StructuresInvite2 = _interopRequireDefault(_StructuresInvite);
|
||||
|
||||
var _StructuresMessage = require("./Structures/Message");
|
||||
|
||||
var _StructuresMessage2 = _interopRequireDefault(_StructuresMessage);
|
||||
|
||||
var _StructuresPermissionOverwrite = require("./Structures/PermissionOverwrite");
|
||||
|
||||
var _StructuresPermissionOverwrite2 = _interopRequireDefault(_StructuresPermissionOverwrite);
|
||||
|
||||
var _StructuresPMChannel = require("./Structures/PMChannel");
|
||||
|
||||
var _StructuresPMChannel2 = _interopRequireDefault(_StructuresPMChannel);
|
||||
|
||||
var _StructuresRole = require("./Structures/Role");
|
||||
|
||||
var _StructuresRole2 = _interopRequireDefault(_StructuresRole);
|
||||
|
||||
var _StructuresServer = require("./Structures/Server");
|
||||
|
||||
var _StructuresServer2 = _interopRequireDefault(_StructuresServer);
|
||||
|
||||
var _StructuresServerChannel = require("./Structures/ServerChannel");
|
||||
|
||||
var _StructuresServerChannel2 = _interopRequireDefault(_StructuresServerChannel);
|
||||
|
||||
var _StructuresTextChannel = require("./Structures/TextChannel");
|
||||
|
||||
var _StructuresTextChannel2 = _interopRequireDefault(_StructuresTextChannel);
|
||||
|
||||
var _StructuresUser = require("./Structures/User");
|
||||
|
||||
var _StructuresUser2 = _interopRequireDefault(_StructuresUser);
|
||||
|
||||
var _StructuresVoiceChannel = require("./Structures/VoiceChannel");
|
||||
|
||||
var _StructuresVoiceChannel2 = _interopRequireDefault(_StructuresVoiceChannel);
|
||||
|
||||
var _Constants = require("./Constants");
|
||||
|
||||
var _Constants2 = _interopRequireDefault(_Constants);
|
||||
|
||||
var _UtilCacheJs = require("./Util/Cache.js");
|
||||
|
||||
var _UtilCacheJs2 = _interopRequireDefault(_UtilCacheJs);
|
||||
|
||||
exports["default"] = {
|
||||
Client: _ClientClient2["default"],
|
||||
Channel: _StructuresChannel2["default"],
|
||||
ChannelPermissions: _StructuresChannelPermissions2["default"],
|
||||
Invite: _StructuresInvite2["default"],
|
||||
Message: _StructuresMessage2["default"],
|
||||
PermissionOverwrite: _StructuresPermissionOverwrite2["default"],
|
||||
PMChannel: _StructuresPMChannel2["default"],
|
||||
Role: _StructuresRole2["default"],
|
||||
Server: _StructuresServer2["default"],
|
||||
ServerChannel: _StructuresServerChannel2["default"],
|
||||
TextChannel: _StructuresTextChannel2["default"],
|
||||
User: _StructuresUser2["default"],
|
||||
VoiceChannel: _StructuresVoiceChannel2["default"],
|
||||
Constants: _Constants2["default"],
|
||||
Cache: _UtilCacheJs2["default"]
|
||||
};
|
||||
module.exports = exports["default"];
|
||||
|
||||
Reference in New Issue
Block a user