added emoji support (#503)

This commit is contained in:
Zman840
2016-08-06 17:29:17 -05:00
committed by abal
parent 0a648e80c9
commit c0ef815f9d
7 changed files with 145 additions and 12 deletions

40
src/Structures/Emoji.js Normal file
View File

@@ -0,0 +1,40 @@
"use strict";
import {Endpoints} from "../Constants";
/* example data
{
id: '164585980739846145'
name: 'wlfSS',
roles: [ '135829612780322816' ],
require_colons: false,
managed: true,
}
*/
export default class Emoji {
constructor(data, server) {
this.server = server;
this.id = data.id;
this.name = data.name;
this.roleList = data.roles;
this.colons = data.require_colons;
this.managed = data.managed;
}
get roles() {
var roleGroup = [];
if (this.managed) {
for (var i = 0; i < this.roleList.length; i++) {
var roleID = this.roleList[i].toString();
var role = this.server.roles.get("id", roleID);
roleGroup.push(role);
}
}
return roleGroup
}
get getURL() {
return Endpoints.EMOJI(this.id);
}
}

View File

@@ -13,6 +13,7 @@ import User from "./User";
import TextChannel from "./TextChannel";
import VoiceChannel from "./VoiceChannel";
import Role from "./Role";
import Emoji from "./Emoji";
import {reg} from "../Util/ArgumentRegulariser";
var strictKeys = [
@@ -42,6 +43,7 @@ export default class Server extends Equality {
this.members = new Cache();
this.channels = new Cache();
this.roles = new Cache();
this.emojis = new Cache();
this.icon = data.icon;
this.afkTimeout = data.afk_timeout;
this.afkChannelID = data.afk_channel_id || data.afkChannelID;
@@ -57,6 +59,14 @@ export default class Server extends Equality {
});
}
if (data.emojis instanceof Cache) {
data.emojis.forEach((emoji) => this.emojis.add(emoji));
} else {
data.emojis.forEach((dataEmoji) => {
this.emojis.add(new Emoji(dataEmoji, this));
})
}
if (data.members instanceof Cache) {
data.members.forEach((member) => this.members.add(member));
} else {