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

@@ -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 (