feat: GuildSettingManager
Co-Authored-By: Yellowy <64450187+TheDevYellowy@users.noreply.github.com>
This commit is contained in:
@@ -15,7 +15,7 @@ const Discord = require('../index');
|
||||
const BaseGuildEmojiManager = require('../managers/BaseGuildEmojiManager');
|
||||
const BillingManager = require('../managers/BillingManager');
|
||||
const ChannelManager = require('../managers/ChannelManager');
|
||||
const ClientSettingManager = require('../managers/ClientSettingManager');
|
||||
const ClientUserSettingManager = require('../managers/ClientUserSettingManager');
|
||||
const DeveloperPortalManager = require('../managers/DeveloperPortalManager');
|
||||
const GuildManager = require('../managers/GuildManager');
|
||||
const RelationshipManager = require('../managers/RelationshipManager');
|
||||
@@ -151,9 +151,9 @@ class Client extends BaseClient {
|
||||
this.relationships = new RelationshipManager(this);
|
||||
/**
|
||||
* All of the settings {@link Object}
|
||||
* @type {ClientSettingManager}
|
||||
* @type {ClientUserSettingManager}
|
||||
*/
|
||||
this.settings = new ClientSettingManager(this);
|
||||
this.settings = new ClientUserSettingManager(this);
|
||||
/**
|
||||
* All of the guilds the client is currently handling, mapped by their ids -
|
||||
* as long as sharding isn't being used, this will be *every* guild the bot is a member of
|
||||
|
@@ -141,6 +141,11 @@ module.exports = async (client, { d: data }, shard) => {
|
||||
client.guilds._add(guild);
|
||||
}
|
||||
|
||||
for (const gSetting of data.user_guild_settings) {
|
||||
const guild = client.guilds.cache.get(gSetting.guild_id);
|
||||
if (guild) guild.settings._patch(gSetting);
|
||||
}
|
||||
|
||||
const largeGuilds = data.guilds.filter(g => g.large);
|
||||
|
||||
client.emit('debug', `Received ${data.guilds.length} guilds, ${largeGuilds.length} large guilds`);
|
||||
|
12
src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js
Normal file
12
src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js
Normal file
@@ -0,0 +1,12 @@
|
||||
'use strict';
|
||||
const { Events } = require('../../../util/Constants');
|
||||
module.exports = (client, { d: data }) => {
|
||||
const guild = client.guilds.cache.get(data.guild_id);
|
||||
guild?.settings._patch(data);
|
||||
/**
|
||||
* Emitted whenever guild settings are updated
|
||||
* @event Client#userGuildSettingsUpdate
|
||||
* @param {Guild} guild Guild
|
||||
*/
|
||||
return client.emit(Events.USER_GUILD_SETTINGS_UPDATE, guild);
|
||||
};
|
@@ -57,6 +57,7 @@ const handlers = Object.fromEntries([
|
||||
['THREAD_MEMBER_UPDATE', require('./THREAD_MEMBER_UPDATE')],
|
||||
['THREAD_MEMBERS_UPDATE', require('./THREAD_MEMBERS_UPDATE')],
|
||||
['USER_SETTINGS_UPDATE', require('./USER_SETTINGS_UPDATE')], // Opcode 0
|
||||
['USER_GUILD_SETTINGS_UPDATE', require('./USER_GUILD_SETTINGS_UPDATE')],
|
||||
// USER_SETTINGS_PROTO_UPDATE // opcode 0
|
||||
['USER_NOTE_UPDATE', require('./USER_NOTE_UPDATE')],
|
||||
['USER_UPDATE', require('./USER_UPDATE')],
|
||||
|
Reference in New Issue
Block a user