diff --git a/package.json b/package.json index eb30919..e7b7dc6 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@koishijs/eslint-config": "^1.0.4", "@koishijs/plugin-database-memory": "^2.3.0", - "@koishijs/plugin-mock": "^2.5.0", + "@koishijs/plugin-mock": "^2.5.2", "@koishijs/vitepress": "^3.0.0", "@sinonjs/fake-timers": "^6.0.1", "@types/mocha": "^9.1.1", @@ -48,7 +48,7 @@ "yakumo-publish": "^0.3.3", "yakumo-publish-sync": "^0.3.3", "yakumo-tsc": "^0.3.12", - "yakumo-upgrade": "^0.3.2", + "yakumo-upgrade": "^0.3.4", "yakumo-version": "^0.3.2", "vitepress": "1.0.0-rc.4" } diff --git a/packages/author/src/index.ts b/packages/author/src/index.ts index 2d4d76e..6f034be 100644 --- a/packages/author/src/index.ts +++ b/packages/author/src/index.ts @@ -115,7 +115,7 @@ export function apply(ctx: Context, config: Config) { } } - if (options.action !== 'modify' && hasUnnamed && session.subtype === 'group') { + if (options.action !== 'modify' && hasUnnamed && !session.isDirect) { try { const memberMap = await session.bot.getGuildMemberMap(session.guildId) for (const userId in memberMap) { diff --git a/packages/context/src/index.ts b/packages/context/src/index.ts index a8d6ab2..cb61ea7 100644 --- a/packages/context/src/index.ts +++ b/packages/context/src/index.ts @@ -93,7 +93,7 @@ export function apply(ctx: Context, config: Config) { } else { defineProperty(options, '_guilds', options.guilds ? options.guilds.split(',').map(id => `${session.platform}:${id}`) : []) } - } else if (session.subtype !== 'group' && options['partial']) { + } else if (session.isDirect && options['partial']) { return session.text('.context.private-context') } else { defineProperty(options, '_guilds', guilds) @@ -142,7 +142,7 @@ export function apply(ctx: Context, config: Config) { }) ctx.on('dialogue/detail', ({ guilds, flag }, detail, session) => { - const includeCurrentGuild = session.subtype === 'group' && guilds.includes(session.gid) + const includeCurrentGuild = !session.isDirect && guilds.includes(session.gid) const prefix = flag & Dialogue.Flag.complement ? 'enable-' : 'disable-' const path = includeCurrentGuild ? 'except-current-' + (guilds.length - 1 ? 'and-more' : 'only') @@ -152,7 +152,7 @@ export function apply(ctx: Context, config: Config) { ctx.on('dialogue/abstract', ({ guilds, flag }, output, session) => { const { options } = session.argv - if (!options._guilds && session.subtype === 'group') { + if (!options._guilds && !session.isDirect) { const isReversed = flag & Dialogue.Flag.complement const hasGroup = guilds.includes(session.gid) output.unshift(!isReversed === hasGroup ? isReversed ? 'E' : 'e' : isReversed ? 'd' : 'D') diff --git a/packages/core/src/internal.ts b/packages/core/src/internal.ts index 116e8f0..5c00797 100644 --- a/packages/core/src/internal.ts +++ b/packages/core/src/internal.ts @@ -80,6 +80,8 @@ export default function apply(ctx: Context, config: Dialogue.Config) { const [question, answer] = args function applySuggestion(session: Dialogue.Session) { + // Create a new session to isolate i18n scope. + session = Object.create(session) return session.withScope('commands.teach.messages', () => { return session.argv.options.target ? analyze(session) : create(session) }) diff --git a/packages/core/src/search.ts b/packages/core/src/search.ts index e4119d6..21b5641 100644 --- a/packages/core/src/search.ts +++ b/packages/core/src/search.ts @@ -79,7 +79,7 @@ export default function apply(ctx: Context) { ...test, regexp: null, question: parsed, - original: original, + original, }) Object.defineProperty(dialogue, '_redirections', { writable: true, value: dialogues }) await ctx.parallel('dialogue/search', session, test, dialogues)