mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-01 20:46:08 +00:00
fix: overwrites cache
This commit is contained in:
parent
b00076df23
commit
7819b371a5
11
src/cache/index.ts
vendored
11
src/cache/index.ts
vendored
@ -511,11 +511,8 @@ export class Cache {
|
|||||||
event.d.guild_id!,
|
event.d.guild_id!,
|
||||||
event.d.permission_overwrites,
|
event.d.permission_overwrites,
|
||||||
);
|
);
|
||||||
break;
|
} else if (event.d.type === ChannelType.DM) {
|
||||||
}
|
|
||||||
if (event.d.type === ChannelType.DM) {
|
|
||||||
await this.channels?.set(CacheFrom.Gateway, event.d.recipients![0]?.id, '@me', event.d);
|
await this.channels?.set(CacheFrom.Gateway, event.d.recipients![0]?.id, '@me', event.d);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -593,7 +590,11 @@ export class Cache {
|
|||||||
|
|
||||||
case 'THREAD_CREATE':
|
case 'THREAD_CREATE':
|
||||||
case 'THREAD_UPDATE':
|
case 'THREAD_UPDATE':
|
||||||
if (event.d.guild_id) await this.channels?.set(CacheFrom.Gateway, event.d.id, event.d.guild_id, event.d);
|
{
|
||||||
|
if (event.d.guild_id) await this.channels?.set(CacheFrom.Gateway, event.d.id, event.d.guild_id, event.d);
|
||||||
|
if (event.d.permission_overwrites?.length)
|
||||||
|
await this.overwrites?.set(CacheFrom.Gateway, event.d.id, event.d.guild_id!, event.d.permission_overwrites);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'THREAD_DELETE':
|
case 'THREAD_DELETE':
|
||||||
|
3
src/cache/resources/default/guild-related.ts
vendored
3
src/cache/resources/default/guild-related.ts
vendored
@ -19,7 +19,8 @@ export class GuildRelatedResource<T = any, S = any> {
|
|||||||
parse(data: any, id: string, guild_id: string) {
|
parse(data: any, id: string, guild_id: string) {
|
||||||
if (!data.id) data.id = id;
|
if (!data.id) data.id = id;
|
||||||
data.guild_id = guild_id;
|
data.guild_id = guild_id;
|
||||||
return data;
|
const { permission_overwrites, ...rest } = data;
|
||||||
|
return rest;
|
||||||
}
|
}
|
||||||
|
|
||||||
get adapter() {
|
get adapter() {
|
||||||
|
@ -44,6 +44,9 @@ export class ChannelShorter extends BaseShorter {
|
|||||||
'guild_id' in channel && channel.guild_id ? channel.guild_id : '@me',
|
'guild_id' in channel && channel.guild_id ? channel.guild_id : '@me',
|
||||||
channel,
|
channel,
|
||||||
);
|
);
|
||||||
|
if ('permission_overwrites' in channel && channel.permission_overwrites && channel.guild_id) {
|
||||||
|
await this.client.cache.overwrites?.set(CacheFrom.Rest, id, channel.guild_id, channel.permission_overwrites);
|
||||||
|
}
|
||||||
return channel as APIChannel;
|
return channel as APIChannel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +32,8 @@ import type {
|
|||||||
RESTPostAPIGuildChannelJSONBody,
|
RESTPostAPIGuildChannelJSONBody,
|
||||||
RESTPostAPIGuildsJSONBody,
|
RESTPostAPIGuildsJSONBody,
|
||||||
} from '../../types';
|
} from '../../types';
|
||||||
|
import type { APITextChannel } from '../../types/payloads/channel';
|
||||||
|
import type { MakeRequired } from '../types/util';
|
||||||
import { BaseShorter } from './base';
|
import { BaseShorter } from './base';
|
||||||
|
|
||||||
export class GuildShorter extends BaseShorter {
|
export class GuildShorter extends BaseShorter {
|
||||||
@ -145,6 +147,21 @@ export class GuildShorter extends BaseShorter {
|
|||||||
channels.map<[string, APIChannel]>(x => [x.id, x]),
|
channels.map<[string, APIChannel]>(x => [x.id, x]),
|
||||||
guildId,
|
guildId,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const filtered = channels.filter(
|
||||||
|
(ch): ch is MakeRequired<APITextChannel, 'permission_overwrites' | 'guild_id'> => {
|
||||||
|
return 'permission_overwrites' in ch && ch.permission_overwrites !== undefined && ch.guild_id !== undefined;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
if (filtered.length) {
|
||||||
|
await this.client.cache.overwrites?.set(
|
||||||
|
CacheFrom.Rest,
|
||||||
|
filtered.map(x => {
|
||||||
|
return [x.id, x.permission_overwrites] as const;
|
||||||
|
}),
|
||||||
|
guildId,
|
||||||
|
);
|
||||||
|
}
|
||||||
return channels.map(m => channelFrom(m, this.client));
|
return channels.map(m => channelFrom(m, this.client));
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -164,6 +181,9 @@ export class GuildShorter extends BaseShorter {
|
|||||||
|
|
||||||
channel = await this.client.proxy.channels(channelId).get();
|
channel = await this.client.proxy.channels(channelId).get();
|
||||||
await this.client.cache.channels?.patch(CacheFrom.Rest, channelId, guildId, channel);
|
await this.client.cache.channels?.patch(CacheFrom.Rest, channelId, guildId, channel);
|
||||||
|
if ('permission_overwrites' in channel && channel.permission_overwrites) {
|
||||||
|
await this.client.cache.overwrites?.set(CacheFrom.Rest, channelId, guildId, channel.permission_overwrites);
|
||||||
|
}
|
||||||
return channelFrom(channel, this.client);
|
return channelFrom(channel, this.client);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user