Added guild.createChannel(name, type)

This commit is contained in:
hydrabolt
2016-04-26 17:44:42 +01:00
parent e9d7dfaee3
commit 2d3116d505
6 changed files with 52 additions and 5 deletions

View File

@@ -9,6 +9,7 @@ class ActionsManager {
this.register('MessageCreate');
this.register('MessageDelete');
this.register('MessageUpdate');
this.register('ChannelCreate');
}
register(name) {

View File

@@ -0,0 +1,23 @@
'use strict';
const Action = require('./Action');
const Constants = require('../../util/Constants');
const Message = require('../../structures/Message');
class ChannelCreateAction extends Action {
constructor(client) {
super(client);
}
handle(data) {
let client = this.client;
let channel = client.store.NewChannel(data);
return {
channel,
};
}
};
module.exports = ChannelCreateAction;

View File

@@ -72,6 +72,19 @@ class RESTMethods{
.catch(reject);
});
}
CreateChannel(guild, channelName, channelType) {
return new Promise((resolve, reject) => {
this.rest.makeRequest('post', Constants.Endpoints.GUILD_CHANNELS(guild.id), true, {
name: channelName,
type: channelType,
})
.then(data => {
resolve(this.rest.client.actions.ChannelCreate.handle(data).channel);
})
.catch(reject);
});
}
}
module.exports = RESTMethods;

View File

@@ -19,7 +19,11 @@ class ChannelCreateHandler extends AbstractHandler {
let data = packet.d;
let client = this.packetManager.client;
let channel = client.store.NewChannel(data);
let response = client.actions.ChannelCreate.handle(data);
if (response.channel) {
client.emit(Constants.Events.CHANNEL_CREATE, response.channel);
}
}

View File

@@ -131,6 +131,10 @@ class Guild {
}
}
createChannel(name, type) {
return this.client.rest.methods.CreateChannel(this, name, type);
}
get channels() { return this.store.getAsArray('channels'); }
get $channels() { return this.store.data.channels; }

View File

@@ -20,7 +20,7 @@ client.on('guildUpdate', (old, guild) => {
console.log(old.name, guild.name);
});
client.on('channelCreate', channel => {
console.log(channel);
// console.log(channel);
});
client.on('channelDelete', channel => {
console.log(channel);
@@ -70,9 +70,11 @@ client.on('typingStop.', (channel, user, data) => {
client.on('message', message => {
if (message.author.username === 'hydrabolt') {
message.channel.sendMessage('test').then(msg => {
msg.edit('woah!');
});
if (message.content === 'makechann') {
if (message.channel.guild) {
message.channel.guild.createChannel('hi', 'text').then(console.log);
}
}
}
});