src: add news and store channels, and missing guild props (#3168)

* src: Implement store and news channels!

* src: Remove code dupe

* src: Add missing guild properties

* docs: Add a small notice that the channel type may also change

* src: Remove re-creation of the MessageStore

* lint: Unused Import

* src: Requested changes for StoreChannels

* typings: Fix typings

* src: Moar guild updates

* src: Set maximumPresence to the data prop, the already existent one, or default to 5000

* typings: afkChannel is a VC

I keep confusing them, ffs

Co-Authored-By: vladfrangu <kingdgrizzle@gmail.com>

* docs: Document that maximumMembers and maximumPresences may be inaccurate before fetching

* src Appels requested changes
This commit is contained in:
Vlad Frangu
2019-05-03 18:08:07 +03:00
committed by SpaceEEC
parent 0d9bc8664d
commit a59968f7de
10 changed files with 195 additions and 8 deletions

View File

@@ -1,14 +1,25 @@
'use strict';
const Action = require('./Action');
const Channel = require('../../structures/Channel');
const { ChannelTypes } = require('../../util/Constants');
class ChannelUpdateAction extends Action {
handle(data) {
const client = this.client;
const channel = client.channels.get(data.id);
let channel = client.channels.get(data.id);
if (channel) {
const old = channel._update(data);
if (ChannelTypes[channel.type.toUpperCase()] !== data.type) {
const newChannel = Channel.create(this.client, data, channel.guild);
for (const [id, message] of channel.messages) newChannel.messages.set(id, message);
newChannel._typing = new Map(channel._typing);
channel = newChannel;
this.client.channels.set(channel.id, channel);
}
return {
old,
updated: channel,