mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 11:33:30 +01:00
Added createInvite
This commit is contained in:
@@ -383,6 +383,62 @@ var Client = (function (_EventEmitter) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// def addUserToRole
|
||||||
|
|
||||||
|
Client.prototype.addUserToRole = function addUserToRole(member, role) {
|
||||||
|
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2];
|
||||||
|
|
||||||
|
return this.addMemberToRole(member, role, callback);
|
||||||
|
};
|
||||||
|
|
||||||
|
// def removeMemberFromRole
|
||||||
|
|
||||||
|
Client.prototype.removeMemberFromRole = function removeMemberFromRole(member, role) {
|
||||||
|
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2];
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
self.internal.removeMemberFromRole(member, role).then(function () {
|
||||||
|
callback();
|
||||||
|
resolve();
|
||||||
|
})["catch"](function (e) {
|
||||||
|
callback(e);
|
||||||
|
reject(e);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// def removeUserFromRole
|
||||||
|
|
||||||
|
Client.prototype.removeUserFromRole = function removeUserFromRole(member, role) {
|
||||||
|
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2];
|
||||||
|
|
||||||
|
return this.removeUserFromRole(member, role, callback);
|
||||||
|
};
|
||||||
|
|
||||||
|
// def createInvite
|
||||||
|
|
||||||
|
Client.prototype.createInvite = function createInvite(chanServ, options) {
|
||||||
|
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, invite) {} : arguments[2];
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
if (typeof options === "function") {
|
||||||
|
// length is the callback
|
||||||
|
callback = options;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.internal.createInvite(chanServ, options).then(function (invite) {
|
||||||
|
callback(null, invite);
|
||||||
|
resolve(invite);
|
||||||
|
})["catch"](function (e) {
|
||||||
|
callback(e);
|
||||||
|
reject(e);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return Client;
|
return Client;
|
||||||
})(EventEmitter);
|
})(EventEmitter);
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ var User = require("../Structures/User.js"),
|
|||||||
PMChannel = require("../Structures/PMChannel.js"),
|
PMChannel = require("../Structures/PMChannel.js"),
|
||||||
Server = require("../Structures/Server.js"),
|
Server = require("../Structures/Server.js"),
|
||||||
Message = require("../Structures/Message.js"),
|
Message = require("../Structures/Message.js"),
|
||||||
Role = require("../Structures/Role.js");
|
Role = require("../Structures/Role.js"),
|
||||||
|
Invite = require("../Structures/Invite.js");
|
||||||
|
|
||||||
var zlib;
|
var zlib;
|
||||||
|
|
||||||
@@ -584,6 +585,88 @@ var InternalClient = (function () {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//def removeMemberFromRole
|
||||||
|
|
||||||
|
InternalClient.prototype.removeMemberFromRole = function removeMemberFromRole(member, role) {
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
member = self.resolver.resolveUser(member);
|
||||||
|
|
||||||
|
if (!member || !role) {
|
||||||
|
reject(new Error("member/role not in server"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (role.server.memberMap[member.id]) {
|
||||||
|
|
||||||
|
var roleIDS = role.server.memberMap[member.id].roles.map(function (r) {
|
||||||
|
return r.id;
|
||||||
|
});
|
||||||
|
|
||||||
|
for (var item in roleIDS) {
|
||||||
|
if (roleIDS[item] === role.id) {
|
||||||
|
roleIDS.splice(item, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
request.patch(Endpoints.SERVER_MEMBERS(role.server.id) + "/" + member.id).set("authorization", self.token).send({
|
||||||
|
roles: roleIDS
|
||||||
|
}).end(function (err) {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
reject(new Error("member not in server"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// def createInvite
|
||||||
|
|
||||||
|
InternalClient.prototype.createInvite = function createInvite(chanServ, options) {
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
if (chanServ instanceof Channel) {
|
||||||
|
// do something
|
||||||
|
} else if (chanServ instanceof Server) {
|
||||||
|
// do something
|
||||||
|
} else {
|
||||||
|
chanServ = self.resolver.resolveServer(chanServ) || self.resolver.resolveChannel(chanServ);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!chanServ) {
|
||||||
|
reject(new Error("couldn't resolve where"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
options = options || {};
|
||||||
|
options.max_age = options.maxAge || 0;
|
||||||
|
options.max_uses = options.maxUses || 0;
|
||||||
|
options.temporary = options.temporary || false;
|
||||||
|
options.xkcdpass = options.xkcd || false;
|
||||||
|
|
||||||
|
var epoint;
|
||||||
|
if (chanServ instanceof Channel) {
|
||||||
|
epoint = Endpoints.CHANNEL_INVITES(chanServ.id);
|
||||||
|
} else {
|
||||||
|
epoint = Endpoints.SERVER_INVITES(chanServ.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
request.post(epoint).set("authorization", self.token).send(options).end(function (err, res) {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(new Invite(res.body, self.channels.get("id", res.body.channel.id), self.client));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
InternalClient.prototype.sendWS = function sendWS(object) {
|
InternalClient.prototype.sendWS = function sendWS(object) {
|
||||||
if (this.websocket) this.websocket.send(JSON.stringify(object));
|
if (this.websocket) this.websocket.send(JSON.stringify(object));
|
||||||
};
|
};
|
||||||
|
|||||||
32
lib/Structures/Invite.js
Normal file
32
lib/Structures/Invite.js
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
var Server = require("./Server.js");
|
||||||
|
var ServerChannel = require("./ServerChannel.js");
|
||||||
|
|
||||||
|
var Invite = (function () {
|
||||||
|
function Invite(data, chan, client) {
|
||||||
|
_classCallCheck(this, Invite);
|
||||||
|
|
||||||
|
this.maxAge = data.max_age;
|
||||||
|
this.code = data.code;
|
||||||
|
this.server = chan.server;
|
||||||
|
this.channel = chan;
|
||||||
|
this.revoked = data.revoked;
|
||||||
|
this.createdAt = Date.parse(data.created_at);
|
||||||
|
this.temporary = data.temporary;
|
||||||
|
this.uses = data.uses;
|
||||||
|
this.maxUses = data.uses;
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
|
||||||
|
return Invite;
|
||||||
|
})();
|
||||||
|
|
||||||
|
module.exports = Invite;
|
||||||
15
lib/index.js
15
lib/index.js
@@ -14,19 +14,10 @@ a.on("warn", function (m) {
|
|||||||
|
|
||||||
a.on("message", function (m) {
|
a.on("message", function (m) {
|
||||||
if (m.content === "$$$") {
|
if (m.content === "$$$") {
|
||||||
a.createRole(m.channel.server, {
|
a.createInvite(m.channel).then(function (invite) {
|
||||||
name: "a_role!",
|
return a.reply(m, invite);
|
||||||
color: 0xFF0000,
|
|
||||||
hoist: true,
|
|
||||||
permissions: ["manageRoles"]
|
|
||||||
}).then(function (role) {
|
|
||||||
a.addMemberToRole(m.author, role).then(function () {
|
|
||||||
a.reply(m, "added!");
|
|
||||||
})["catch"](function (e) {
|
|
||||||
console.log(e.stack);
|
|
||||||
});
|
|
||||||
})["catch"](function (e) {
|
})["catch"](function (e) {
|
||||||
console.log(e.stack);
|
return console.log(e.stack);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -357,6 +357,56 @@ class Client extends EventEmitter {
|
|||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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();
|
||||||
|
resolve();
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
callback(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;
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (typeof options === "function") {
|
||||||
|
// length is the callback
|
||||||
|
callback = options;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.internal.createInvite(chanServ, options)
|
||||||
|
.then(invite => {
|
||||||
|
callback(null, invite);
|
||||||
|
resolve(invite);
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
callback(e);
|
||||||
|
reject(e);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Client;
|
module.exports = Client;
|
||||||
@@ -19,7 +19,8 @@ var User = require("../Structures/User.js"),
|
|||||||
PMChannel = require("../Structures/PMChannel.js"),
|
PMChannel = require("../Structures/PMChannel.js"),
|
||||||
Server = require("../Structures/Server.js"),
|
Server = require("../Structures/Server.js"),
|
||||||
Message = require("../Structures/Message.js"),
|
Message = require("../Structures/Message.js"),
|
||||||
Role = require("../Structures/Role.js");
|
Role = require("../Structures/Role.js"),
|
||||||
|
Invite = require("../Structures/Invite.js");
|
||||||
|
|
||||||
var zlib;
|
var zlib;
|
||||||
|
|
||||||
@@ -622,6 +623,95 @@ class InternalClient {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//def removeMemberFromRole
|
||||||
|
removeMemberFromRole(member, role){
|
||||||
|
var self = this;
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
|
member = self.resolver.resolveUser(member);
|
||||||
|
|
||||||
|
if(!member || !role){
|
||||||
|
reject(new Error("member/role not in server"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(role.server.memberMap[member.id]){
|
||||||
|
|
||||||
|
var roleIDS = role.server.memberMap[member.id].roles.map(r => r.id);
|
||||||
|
|
||||||
|
for(var item in roleIDS){
|
||||||
|
if(roleIDS[item] === role.id){
|
||||||
|
roleIDS.splice(item, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
request
|
||||||
|
.patch(Endpoints.SERVER_MEMBERS(role.server.id)+"/"+member.id)
|
||||||
|
.set("authorization", self.token)
|
||||||
|
.send({
|
||||||
|
roles : roleIDS
|
||||||
|
})
|
||||||
|
.end((err) => {
|
||||||
|
if(err){
|
||||||
|
reject(err);
|
||||||
|
}else{
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}else{
|
||||||
|
reject(new Error("member not in server"));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// def createInvite
|
||||||
|
createInvite(chanServ, options){
|
||||||
|
var self = this;
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
|
if(chanServ instanceof Channel){
|
||||||
|
// do something
|
||||||
|
}else if(chanServ instanceof Server){
|
||||||
|
// do something
|
||||||
|
}else{
|
||||||
|
chanServ = self.resolver.resolveServer(chanServ) || self.resolver.resolveChannel(chanServ);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!chanServ){
|
||||||
|
reject(new Error("couldn't resolve where"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
options = options || {};
|
||||||
|
options.max_age = options.maxAge || 0;
|
||||||
|
options.max_uses = options.maxUses || 0;
|
||||||
|
options.temporary = options.temporary || false;
|
||||||
|
options.xkcdpass = options.xkcd || false;
|
||||||
|
|
||||||
|
var epoint;
|
||||||
|
if(chanServ instanceof Channel){
|
||||||
|
epoint = Endpoints.CHANNEL_INVITES(chanServ.id);
|
||||||
|
}else{
|
||||||
|
epoint = Endpoints.SERVER_INVITES(chanServ.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
request
|
||||||
|
.post(epoint)
|
||||||
|
.set("authorization", self.token)
|
||||||
|
.send(options)
|
||||||
|
.end((err, res) => {
|
||||||
|
if(err){
|
||||||
|
reject(err);
|
||||||
|
}else{
|
||||||
|
resolve(new Invite(res.body, self.channels.get("id", res.body.channel.id), self.client));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
sendWS(object) {
|
sendWS(object) {
|
||||||
if (this.websocket)
|
if (this.websocket)
|
||||||
this.websocket.send(JSON.stringify(object));
|
this.websocket.send(JSON.stringify(object));
|
||||||
|
|||||||
26
src/Structures/Invite.js
Normal file
26
src/Structures/Invite.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
var Server = require("./Server.js");
|
||||||
|
var ServerChannel = require("./ServerChannel.js");
|
||||||
|
|
||||||
|
class Invite{
|
||||||
|
constructor(data, chan, client){
|
||||||
|
this.maxAge = data.max_age;
|
||||||
|
this.code = data.code;
|
||||||
|
this.server = chan.server;
|
||||||
|
this.channel = chan;
|
||||||
|
this.revoked = data.revoked;
|
||||||
|
this.createdAt = Date.parse(data.created_at);
|
||||||
|
this.temporary = data.temporary;
|
||||||
|
this.uses = data.uses;
|
||||||
|
this.maxUses = data.uses;
|
||||||
|
this.inviter = client.internal.users.get("id", data.inviter.id);
|
||||||
|
this.xkcd = data.xkcdpass;
|
||||||
|
}
|
||||||
|
|
||||||
|
toString(){
|
||||||
|
return `https://discord.gg/${this.code}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Invite;
|
||||||
17
src/index.js
17
src/index.js
@@ -8,22 +8,7 @@ a.on("warn", (m) => console.log("[warn]", m));
|
|||||||
|
|
||||||
a.on("message", m => {
|
a.on("message", m => {
|
||||||
if(m.content === "$$$"){
|
if(m.content === "$$$"){
|
||||||
a.createRole(m.channel.server, {
|
a.createInvite(m.channel).then(invite => a.reply(m, invite)).catch(e => console.log(e.stack));
|
||||||
name : "a_role!",
|
|
||||||
color : 0xFF0000,
|
|
||||||
hoist : true,
|
|
||||||
permissions : [
|
|
||||||
"manageRoles"
|
|
||||||
]
|
|
||||||
}).then( role => {
|
|
||||||
a.addMemberToRole(m.author, role).then(() => {
|
|
||||||
a.reply(m, "added!");
|
|
||||||
}).catch( e => {
|
|
||||||
console.log(e.stack)
|
|
||||||
});
|
|
||||||
}).catch( e => {
|
|
||||||
console.log(e.stack)
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
a.on("userTypingStart", (user, chan) => {
|
a.on("userTypingStart", (user, chan) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user