diff --git a/packages/core/src/bot.ts b/packages/core/src/bot.ts index 13df0d407a..78b8737b69 100644 --- a/packages/core/src/bot.ts +++ b/packages/core/src/bot.ts @@ -1,5 +1,5 @@ import { sleep } from '@koishijs/utils' -import { Dict } from 'cosmokit' +import { defineProperty, Dict } from 'cosmokit' import { Bot, Fragment } from '@satorijs/core' declare module '@satorijs/core' { @@ -15,6 +15,9 @@ declare module '@satorijs/core' { export * from '@satorijs/core' +// adapter plugins usually do not respect filters +defineProperty(Bot, 'filter', false) + Bot.prototype.getGuildMemberMap = async function getGuildMemberMap(this: Bot, guildId) { const list = await this.getGuildMemberList(guildId) return Object.fromEntries(list.map(info => [info.userId, info.nickname || info.username])) diff --git a/packages/core/src/context.ts b/packages/core/src/context.ts index 73b98bc07b..10cde85614 100644 --- a/packages/core/src/context.ts +++ b/packages/core/src/context.ts @@ -22,6 +22,14 @@ export { resolveConfig } from 'cordis' export type { Disposable } from 'cordis' +declare module 'cordis' { + namespace Plugin { + interface Object { + filter?: boolean + } + } +} + declare module '@satorijs/core' { export interface Context { envData: EnvData diff --git a/packages/core/src/database.ts b/packages/core/src/database.ts index 4a551bfa5d..ca6c0c4b27 100644 --- a/packages/core/src/database.ts +++ b/packages/core/src/database.ts @@ -198,6 +198,7 @@ export const defineDriver = (constructor: Driver.Constructor, schema?: uti name: constructor.name, reusable: true, Config: schema, + filter: false, apply(ctx, config) { config = { ...config } prepare?.(ctx, config)