Removed trailing spaces, added unbanMember and kickMember

This commit is contained in:
abalabahaha
2015-11-11 18:27:08 -08:00
parent bb716480b1
commit 3e37c5d91f
20 changed files with 320 additions and 176 deletions

View File

@@ -327,6 +327,38 @@ var Client = (function (_EventEmitter) {
});
};
//def unbanMember
Client.prototype.unbanMember = function unbanMember(user, server) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2];
var self = this;
return new Promise(function (resolve, reject) {
self.internal.unbanMember(user, server).then(function () {
callback();
resolve();
})["catch"](function (e) {
callback(e);reject(e);
});
});
};
//def kickMember
Client.prototype.kickMember = function kickMember(user, server) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2];
var self = this;
return new Promise(function (resolve, reject) {
self.internal.kickMember(user, server).then(function () {
callback();
resolve();
})["catch"](function (e) {
callback(e);reject(e);
});
});
};
//def createRole
Client.prototype.createRole = function createRole(server) {

View File

@@ -525,6 +525,44 @@ var InternalClient = (function () {
});
};
// def unbanMember
InternalClient.prototype.unbanMember = function unbanMember(user, server) {
var self = this;
return new Promise(function (resolve, reject) {
user = self.resolver.resolveUser(user);
server = self.resolver.resolveServer(server);
request.delete(Endpoints.SERVER_BANS(server.id) + "/" + user.id).set("authorization", self.token).end(function (err, res) {
if (err) {
reject(err);
} else {
resolve();
}
});
});
};
// def kickMember
InternalClient.prototype.kickMember = function kickMember(user, server) {
var self = this;
return new Promise(function (resolve, reject) {
user = self.resolver.resolveUser(user);
server = self.resolver.resolveServer(server);
request.delete(Endpoints.SERVER_MEMBERS(server.id) + "/" + user.id).set("authorization", self.token).end(function (err, res) {
if (err) {
reject(err);
} else {
resolve();
}
});
});
};
// def createRole
InternalClient.prototype.createRole = function createRole(server, data) {

View File

@@ -13,23 +13,23 @@ class Client extends EventEmitter {
this.options = options || {};
this.internal = new InternalClient(this);
}
get users(){
return this.internal.users;
}
get channels(){
return this.internal.channels;
}
get servers(){
return this.internal.servers;
}
get privateChannels(){
return this.internal.private_channels;
}
// def login
login(email, password, cb = function (err, token) { }) {
var self = this;
@@ -47,7 +47,7 @@ class Client extends EventEmitter {
});
}
// def logout
logout(cb = function (err) { }) {
var self = this;
@@ -86,7 +86,7 @@ class Client extends EventEmitter {
});
}
// def sendTTSMessage
sendTTSMessage(where, content, callback = function (e, m) { }) {
var self = this;
@@ -131,7 +131,7 @@ class Client extends EventEmitter {
});
}
// def replyTTS
replyTTS(where, content, callback = function () { }) {
return new Promise((resolve, reject) => {
@@ -174,7 +174,7 @@ class Client extends EventEmitter {
// options is the callback
callback = options;
}
self.internal.updateMessage(msg, content, options)
.then(msg => {
callback(null, msg);
@@ -184,13 +184,13 @@ class Client extends EventEmitter {
callback(e);
reject(e);
});
});
}
// def getChannelLogs
getChannelLogs(where, limit=500, options={}, callback=function(err, logs){}){
var self = this;
return new Promise((resolve, reject) => {
if (typeof options === "function") {
@@ -206,11 +206,11 @@ class Client extends EventEmitter {
callback(e);
reject(e);
});
});
}
// def sendFile
sendFile(where, attachment, name="image.png", callback=function(err, m){}){
var self = this;
@@ -224,10 +224,10 @@ class Client extends EventEmitter {
callback(e);
reject(e);
});
});
}
createServer(name, region="london", callback=function(err, srv){}){
var self = this;
return new Promise((resolve, reject) => {
@@ -242,12 +242,12 @@ class Client extends EventEmitter {
})
});
}
// def leaveServer
leaveServer(server, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.leaveServer(server)
.then(() => {
callback(); resolve();
@@ -255,10 +255,10 @@ class Client extends EventEmitter {
.catch(e => {
callback(e); reject(e);
})
});
}
// def createChannel
createChannel(server, name, type="text", callback=function(err,channel){}){
var self = this;
@@ -274,15 +274,15 @@ class Client extends EventEmitter {
.catch(e => {
callback(e); reject(e);
})
});
}
// def deleteChannel
deleteChannel(channel, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.deleteChannel(channel)
.then( () => {
callback();
@@ -291,10 +291,10 @@ class Client extends EventEmitter {
.catch( e => {
callback(e); reject(e);
})
});
}
//def banMember
banMember(user, server, length=1, callback=function(err){}){
var self = this;
@@ -311,10 +311,42 @@ class Client extends EventEmitter {
.catch( e => {
callback(e); reject(e);
})
});
}
//def unbanMember
unbanMember(user, server, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.unbanMember(user, server)
.then( () => {
callback();
resolve();
})
.catch( e => {
callback(e); reject(e);
})
});
}
//def kickMember
kickMember(user, server, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.kickMember(user, server)
.then( () => {
callback();
resolve();
})
.catch( e => {
callback(e); reject(e);
})
});
}
//def createRole
createRole(server, data=null, callback=function(err,res){}){
var self = this;
@@ -332,16 +364,16 @@ class Client extends EventEmitter {
callback(e);
reject(e);
});
});
}
//def deleteRole
deleteRole(role, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.deleteRole(role)
.then(() => {
callback();
@@ -349,18 +381,18 @@ class Client extends EventEmitter {
})
.catch(e => {
callback(e);
reject(e);
reject(e);
});
});
}
//def addMemberToRole
addMemberToRole(member, role, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.addMemberToRole(member, role)
.then(() => {
callback();
@@ -368,22 +400,22 @@ class Client extends EventEmitter {
})
.catch(e => {
callback(e);
reject(e);
reject(e);
});
});
}
// def addUserToRole
addUserToRole(member, role, callback=function(err){}){
return this.addMemberToRole(member, role, callback);
}
// def removeMemberFromRole
removeMemberFromRole(member, role, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.removeMemberFromRole(member, role)
.then(() => {
callback();
@@ -391,17 +423,17 @@ class Client extends EventEmitter {
})
.catch(e => {
callback(e);
reject(e);
reject(e);
});
});
}
// def removeUserFromRole
removeUserFromRole(member, role, callback=function(err){}){
return this.removeUserFromRole(member, role, callback);
}
// def createInvite
createInvite(chanServ, options, callback=function(err,invite){}){
var self = this;
@@ -410,7 +442,7 @@ class Client extends EventEmitter {
// length is the callback
callback = options;
}
self.internal.createInvite(chanServ, options)
.then(invite => {
callback(null, invite);
@@ -418,17 +450,17 @@ class Client extends EventEmitter {
})
.catch(e => {
callback(e);
reject(e);
reject(e);
});
});
}
// def overwritePermissions
overwritePermissions(channel, role, options={}, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.overwritePermissions(channel, role, options)
.then(() => {
callback();
@@ -438,15 +470,15 @@ class Client extends EventEmitter {
callback(e);
reject(e);
})
});
}
// def setTopic
setTopic(channel, topic, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.setTopic(channel, topic)
.then(() => {
callback();
@@ -456,15 +488,15 @@ class Client extends EventEmitter {
callback(e);
reject(e);
});
})
}
//def setChannelName
setChannelName(channel, topic, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.setChannelName(channel, topic)
.then(() => {
callback();
@@ -474,15 +506,15 @@ class Client extends EventEmitter {
callback(e);
reject(e);
});
})
}
//def setChannelNameAndTopic
setChannelNameAndTopic(channel, name, topic, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.setChannelNameAndTopic(channel, name, topic)
.then(() => {
callback();
@@ -492,15 +524,15 @@ class Client extends EventEmitter {
callback(e);
reject(e);
});
})
}
//def updateChannel
updateChannel(channel, data, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.updateChannel(channel, data)
.then(() => {
callback();
@@ -510,15 +542,15 @@ class Client extends EventEmitter {
callback(e);
reject(e);
});
})
}
//def joinVoiceChannel
joinVoiceChannel(channel, callback=function(err){}){
var self = this;
return new Promise((resolve, reject)=>{
self.internal.joinVoiceChannel(channel)
.then(chan => {
callback(null, chan);
@@ -528,7 +560,7 @@ class Client extends EventEmitter {
callback(err);
reject(err);
});
});
}
}

View File

@@ -34,7 +34,7 @@ class InternalClient {
if (this.client.options.compress) {
zlib = require("zlib");
}
// creates 4 caches with discriminators based on ID
this.users = new Cache();
this.channels = new Cache();
@@ -43,7 +43,7 @@ class InternalClient {
this.voiceConnection = null;
this.resolver = new Resolver(this);
}
//def leaveVoiceChannel
leaveVoiceChannel() {
var self = this;
@@ -57,7 +57,7 @@ class InternalClient {
}
});
}
//def joinVoiceChannel
joinVoiceChannel(chann) {
var self = this;
@@ -107,7 +107,7 @@ class InternalClient {
});
}
// def createServer
createServer(name, region = "london") {
var self = this;
@@ -133,7 +133,7 @@ class InternalClient {
});
});
}
//def leaveServer
leaveServer(srv) {
var self = this;
@@ -163,7 +163,7 @@ class InternalClient {
}
});
}
// def login
login(email, password) {
var self = this;
@@ -241,7 +241,7 @@ class InternalClient {
});
}
// def startPM
startPM(resUser) {
var self = this;
@@ -249,7 +249,7 @@ class InternalClient {
var user = self.resolver.resolveUser(resUser);
if (user) {
// start the PM
request
.post(`${Endpoints.USER_CHANNELS(user.id) }`)
@@ -289,7 +289,7 @@ class InternalClient {
});
}
// def sendMessage
sendMessage(where, _content, options = {}) {
var self = this;
@@ -365,7 +365,7 @@ class InternalClient {
});
}
// def updateMessage
updateMessage(msg, _content, options = {}) {
@@ -405,7 +405,7 @@ class InternalClient {
});
}
// def sendFile
sendFile(where, _file, name = "image.png") {
var self = this;
@@ -481,7 +481,7 @@ class InternalClient {
});
}
// def createChannel
createChannel(server, name, type = "text") {
var self = this;
@@ -512,7 +512,7 @@ class InternalClient {
});
}
// def deleteChannel
deleteChannel(_channel) {
var self = this;
@@ -536,7 +536,7 @@ class InternalClient {
}
});
}
// def banMember
banMember(user, server, length = 1) {
var self = this;
@@ -557,7 +557,49 @@ class InternalClient {
});
});
}
// def unbanMember
unbanMember(user, server) {
var self = this;
return new Promise((resolve, reject) => {
user = self.resolver.resolveUser(user);
server = self.resolver.resolveServer(server);
request
.delete(`${Endpoints.SERVER_BANS(server.id) }/${user.id}`)
.set("authorization", self.token)
.end((err, res) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
// def kickMember
kickMember(user, server) {
var self = this;
return new Promise((resolve, reject) => {
user = self.resolver.resolveUser(user);
server = self.resolver.resolveServer(server);
request
.delete(`${Endpoints.SERVER_MEMBERS(server.id) }/${user.id}`)
.set("authorization", self.token)
.end((err, res) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
// def createRole
createRole(server, data) {
var self = this;
@@ -652,7 +694,7 @@ class InternalClient {
});
}
//def addMemberToRole
addMemberToRole(member, role) {
var self = this;
@@ -689,7 +731,7 @@ class InternalClient {
});
}
//def removeMemberFromRole
removeMemberFromRole(member, role) {
var self = this;
@@ -732,7 +774,7 @@ class InternalClient {
});
}
// def createInvite
createInvite(chanServ, options) {
var self = this;
@@ -781,7 +823,7 @@ class InternalClient {
});
}
//def overwritePermissions
overwritePermissions(channel, role, updated) {
var self = this;
@@ -842,7 +884,7 @@ class InternalClient {
}
});
}
//def setTopic
setTopic(chann, topic = "") {
var self = this;
@@ -934,7 +976,7 @@ class InternalClient {
});
}
//def updateChannel
updateChannel(chann, data) {
return this.setChannelNameAndTopic(chann, data.name, data.topic);

View File

@@ -15,7 +15,7 @@ class Resolver {
constructor(internal) {
this.internal = internal;
}
resolveServer(resource){
if(resource instanceof Server){
return resource;
@@ -49,10 +49,10 @@ class Resolver {
}
resolveString(resource) {
// accepts Array, Channel, Server, User, Message, String and anything
// toString()-able
var final = resource;
if (resource instanceof Array) {
final = resource.join("\n");
@@ -98,7 +98,7 @@ class Resolver {
return found;
}
resolveVoiceChannel(resource) {
// resolveChannel will also work but this is more apt
if(resource instanceof VoiceChannel){

View File

@@ -7,7 +7,7 @@ var Endpoints = {
GATEWAY: `${API}/gateway`,
USER_CHANNELS: (userID) => `${API}/users/${userID}/channels`,
AVATAR : (userID, avatar) => `${API}/users/${userID}/avatars/${avatar}.jpg`,
// servers
SERVERS: `${API}/guilds`,
SERVER: (serverID) => `${Endpoints.SERVERS}/${serverID}`,
@@ -20,7 +20,7 @@ var Endpoints = {
SERVER_INTEGRATIONS: (serverID) => `${Endpoints.SERVER(serverID) }/integrations`,
SERVER_MEMBERS: (serverID) => `${Endpoints.SERVER(serverID) }/members`,
SERVER_CHANNELS: (serverID) => `${Endpoints.SERVER(serverID) }/channels`,
// channels
CHANNELS: `${API}/channels`,
CHANNEL: (channelID) => `${Endpoints.CHANNELS}/${channelID}`,
@@ -57,7 +57,7 @@ var Permissions = {
voiceDeafenMembers: 1 << 23,
voiceMoveMembers: 1 << 24,
voiceUseVAD: 1 << 25
};
var PacketType = {

View File

@@ -5,13 +5,13 @@ var Cache = require("../Util/Cache.js");
var PermissionOverwrite = require("./PermissionOverwrite.js");
class Channel extends Equality{
constructor(data, client){
super();
this.id = data.id;
this.client = client;
}
}
module.exports = Channel;

View File

@@ -6,11 +6,11 @@ class ChannelPermissions{
constructor(permissions){
this.permissions = permissions;
}
serialise(explicit){
var hp = (perm) => this.hasPermission(perm, explicit);
return {
// general
createInstantInvite : hp( Permissions.createInstantInvite ),
@@ -37,12 +37,12 @@ class ChannelPermissions{
voiceUseVAD : hp( Permissions.voiceUseVAD )
};
}
serialize(){
// ;n;
return this.serialise();
}
hasPermission(perm, explicit=false){
if( perm instanceof String || typeof perm === "string" ){
perm = Permissions[perm];

View File

@@ -17,7 +17,7 @@ class Invite{
this.inviter = client.internal.users.get("id", data.inviter.id);
this.xkcd = data.xkcdpass;
}
toString(){
return `https://discord.gg/${this.code}`;
}

View File

@@ -14,18 +14,18 @@ class Message{
this.timestamp = Date.parse(data.timestamp);
this.everyoneMentioned = data.mention_everyone;
this.id = data.id;
if(data.edited_timestamp)
this.editedTimestamp = Date.parse(data.edited_timestamp);
if(data.author instanceof User)
this.author = data.author;
else
this.author = client.internal.users.add(new User(data.author, client));
this.content = data.content;
this.mentions = new Cache();
data.mentions.forEach((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
@@ -36,7 +36,7 @@ class Message{
this.mentions.add(client.internal.users.add(new User(mention, client)));
});
}
toString(){
return this.content;
}

View File

@@ -9,19 +9,19 @@ class PMChannel extends Equality{
constructor(data, client){
super();
this.client = client;
this.type = data.type || "text";
this.id = data.id;
this.lastMessageId = data.last_message_id;
this.messages = new Cache("id", 1000);
this.recipient = this.client.internal.users.add(new User(data.recipient, this.client));
}
/* warning! may return null */
get lastMessage(){
return this.messages.get("id", this.lastMessageID);
}
toString(){
return this.recipient.toString();
}

View File

@@ -3,7 +3,7 @@
var Permissions = require("../Constants.js").Permissions;
class PermissionOverwrite {
constructor(data) {
this.id = data.id;
this.type = data.type; // member or role
@@ -19,14 +19,14 @@ class PermissionOverwrite {
// these permissions do not exist in overwrites.
continue;
}
if(!!(this.allow & Permissions[permName])){
allowed.push(permName);
}
}
return allowed;
}
// returns an array of denied permissions
get denied(){
var denied = [];
@@ -35,14 +35,14 @@ class PermissionOverwrite {
// these permissions do not exist in overwrites.
continue;
}
if(!!(this.deny & Permissions[permName])){
denied.push(permName);
}
}
return denied;
}
setAllowed(allowedArray){
allowedArray.forEach( (permission) => {
if(permission instanceof String || typeof permission === "string"){
@@ -53,7 +53,7 @@ class PermissionOverwrite {
}
} );
}
setDenied(deniedArray){
deniedArray.forEach( (permission) => {
if(permission instanceof String || typeof permission === "string"){
@@ -64,7 +64,7 @@ class PermissionOverwrite {
}
} );
}
}
module.exports = PermissionOverwrite;

View File

@@ -40,11 +40,11 @@ class Role{
this.server = server;
this.client = client;
}
serialise(explicit){
var hp = (perm) => this.hasPermission(perm, explicit);
return {
// general
createInstantInvite : hp( Permissions.createInstantInvite ),
@@ -71,12 +71,12 @@ class Role{
voiceUseVAD : hp( Permissions.voiceUseVAD )
};
}
serialize(){
// ;n;
return this.serialise();
}
hasPermission(perm, explicit=false){
if( perm instanceof String || typeof perm === "string" ){
perm = Permissions[perm];
@@ -93,10 +93,10 @@ class Role{
// e.g.
// !!(36953089 & Permissions.manageRoles) = not allowed to manage roles
// !!(36953089 & (1 << 21)) = voice speak allowed
return !!(this.permissions & perm);
}
setPermission(permission, value){
if( permission instanceof String || typeof permission === "string" ){
permission = Permissions[permission];
@@ -110,7 +110,7 @@ class Role{
}
}
}
setPermissions(obj){
obj.forEach((value, permission) => {
if( permission instanceof String || typeof permission === "string" ){
@@ -122,7 +122,7 @@ class Role{
}
});
}
colorAsHex(){
var val = this.color.toString();
while(val.length < 6){

View File

@@ -16,7 +16,7 @@ class ServerChannel extends Channel{
this.permissionOverwrites.add( new PermissionOverwrite(permission) );
});
}
permissionsOf(user){
user = this.client.internal.resolver.resolveUser(user);
if(user){
@@ -24,11 +24,11 @@ class ServerChannel extends Channel{
return new ChannelPermissions(4294967295);
}
var everyoneRole = this.server.roles.get("name", "@everyone");
var userRoles = [everyoneRole].concat(this.server.rolesOf(user) || []);
var userRolesID = userRoles.map((v) => v.id);
var roleOverwrites = [], memberOverwrites = [];
this.permissionOverwrites.forEach((overwrite) => {
if(overwrite.type === "member" && overwrite.id === user.id){
memberOverwrites.push(overwrite);
@@ -36,29 +36,29 @@ class ServerChannel extends Channel{
roleOverwrites.push(overwrite);
}
});
var permissions = 0;
for(var serverRole of userRoles){
permissions |= serverRole.permissions;
}
for(var overwrite of roleOverwrites.concat(memberOverwrites)){
permissions = permissions & ~overwrite.deny;
permissions = permissions | overwrite.allow;
}
return new ChannelPermissions(permissions);
}else{
return null;
}
}
permsOf(user){
return this.permissionsOf(user);
}
toString(){
return this.name;
}

View File

@@ -6,14 +6,14 @@ var Cache = require("../Util/Cache.js");
class TextChannel extends ServerChannel{
constructor(data, client, server){
super(data, client, server);
this.name = data.name;
this.topic = data.topic;
this.position = data.position;
this.lastMessageID = data.last_message_id;
this.messages = new Cache("id", client.options.maximumMessages);
}
/* warning! may return null */
get lastMessage(){
return this.messages.get("id", this.lastMessageID);

View File

@@ -18,7 +18,7 @@ class User extends Equality{
channel : null
};
}
get avatarURL(){
if(!this.avatar){
return null;
@@ -26,15 +26,15 @@ class User extends Equality{
return Endpoints.AVATAR(this.id, this.avatar);
}
}
mention(){
return `<@${this.id}>`;
}
toString(){
return this.mention();
}
equalsStrict(obj){
if(obj instanceof User)
return (

View File

@@ -2,29 +2,29 @@
The Equality Class is just used to show
that a Class has an ID that can be used to
check for equality.
Never use == or === when comparing
objects in discord.js, they will be different
instances sometimes.
Instead, use objectThatExtendsEquality.equals()
*/
class Equality{
constructor(){
}
get eqDiscriminator(){
return "id";
}
equals(object){
if(object && object[this.eqDiscriminator] == this[this.eqDiscriminator]){
return true;
}
return false;
}
equalsStrict(object){
// override per class type
return;

View File

@@ -12,25 +12,25 @@ var VoicePacket = require("./VoicePacket.js");
class AudioEncoder{
constructor(){
if(opus){
if(opus){
this.opus = new opus.OpusEncoder(48000, 1);
}
this.choice = false;
}
opusBuffer(buffer){
return this.opus.encode(buffer, 1920);
}
getCommand(force){
if(this.choice && force)
return choice;
var choices = ["avconv", "ffmpeg"];
for(var choice of choices){
var p = cpoc.spawnSync(choice);
if(!p.error){
@@ -38,10 +38,10 @@ class AudioEncoder{
return choice;
}
}
return "help";
}
encodeStream(stream, callback=function(err, buffer){}){
var self = this;
return new Promise((resolve, reject) => {
@@ -53,9 +53,9 @@ class AudioEncoder{
"pipe:1",
"-i", "-"
]);
stream.pipe(enc.stdin);
enc.stdout.once("readable", function() {
callback(null, {
proc : enc,
@@ -68,19 +68,19 @@ class AudioEncoder{
instream : stream
});
});
enc.stdout.on("end", function() {
callback("end");
reject("end");
});
enc.stdout.on("close", function() {
callback("close");
reject("close");
});
});
}
encodeFile(file, callback=function(err, buffer){}){
var self = this;
return new Promise((resolve, reject) => {
@@ -92,7 +92,7 @@ class AudioEncoder{
"pipe:1",
"-i", file
]);
enc.stdout.once("readable", function() {
callback(null, {
proc : enc,
@@ -103,12 +103,12 @@ class AudioEncoder{
stream : enc.stdout
});
});
enc.stdout.on("end", function() {
callback("end");
reject("end");
});
enc.stdout.on("close", function() {
callback("close");
reject("close");

View File

@@ -2,7 +2,7 @@
/*
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!
*/
@@ -88,7 +88,7 @@ class VoiceConnection extends EventEmitter {
self.playingIntent = retStream;
function send() {
if (!self.playingIntent || !self.playing) {
self.setSpeaking(false);
retStream.emit("end");
@@ -216,7 +216,7 @@ class VoiceConnection extends EventEmitter {
}
})
}
playRawStream(stream, callback = function (err, str) { }) {
var self = this;
return new Promise((resolve, reject) => {

View File

@@ -2,24 +2,24 @@
class VoicePacket{
constructor(data, sequence, time, ssrc){
var audioBuffer = data,
returnBuffer = new Buffer(audioBuffer.length + 12);
returnBuffer.fill(0);
returnBuffer[0] = 0x80;
returnBuffer[1] = 0x78;
returnBuffer.writeUIntBE(sequence, 2, 2);
returnBuffer.writeUIntBE(time, 4, 4);
returnBuffer.writeUIntBE(ssrc, 8, 4);
for (var i=0; i<audioBuffer.length; i++) {
returnBuffer[i + 12] = audioBuffer[i];
}
return returnBuffer;
}
}