diff --git a/packages/onebot/src/actions/group-admin.ts b/packages/onebot/src/actions/group-admin.ts index 0c1adc31..23bda0e2 100644 --- a/packages/onebot/src/actions/group-admin.ts +++ b/packages/onebot/src/actions/group-admin.ts @@ -8,7 +8,7 @@ export function register(h: ApiHandler, ctx: ApiActionContext): void { const userId = asNumber(params.user_id); const reject = asBoolean(params.reject_add_request, false); if (!groupId || !userId) return failedResponse(RETCODE.BAD_REQUEST, 'group_id and user_id are required'); - await ctx.setGroupKick(groupId, userId, reject); + await ctx.bridge.apis.groupAdmin.kickMember(groupId, userId, reject); return okResponse(); }); @@ -17,7 +17,7 @@ export function register(h: ApiHandler, ctx: ApiActionContext): void { const userIds = Array.isArray(params.user_id) ? params.user_id.map(asNumber).filter(Boolean) : []; const reject = asBoolean(params.reject_add_request, false); if (!groupId || userIds.length === 0) return failedResponse(RETCODE.BAD_REQUEST, 'group_id and user_id array are required'); - await ctx.setGroupKickMembers(groupId, userIds, reject); + await ctx.bridge.apis.groupAdmin.kickMembers(groupId, userIds, reject); return okResponse(); }); @@ -26,7 +26,7 @@ export function register(h: ApiHandler, ctx: ApiActionContext): void { const userId = asNumber(params.user_id); const duration = asNumber(params.duration) || 1800; if (!groupId || !userId) return failedResponse(RETCODE.BAD_REQUEST, 'group_id and user_id are required'); - await ctx.setGroupBan(groupId, userId, duration); + await ctx.bridge.apis.groupAdmin.muteMember(groupId, userId, duration); return okResponse(); }); @@ -34,7 +34,7 @@ export function register(h: ApiHandler, ctx: ApiActionContext): void { const groupId = asNumber(params.group_id); const enable = asBoolean(params.enable, true); if (!groupId) return failedResponse(RETCODE.BAD_REQUEST, 'group_id is required'); - await ctx.setGroupWholeBan(groupId, enable); + await ctx.bridge.apis.groupAdmin.muteAll(groupId, enable); return okResponse(); }); @@ -82,7 +82,7 @@ export function register(h: ApiHandler, ctx: ApiActionContext): void { h.registerAction('set_group_leave', async (params) => { const groupId = asNumber(params.group_id); if (!groupId) return failedResponse(RETCODE.BAD_REQUEST, 'group_id is required'); - await ctx.setGroupLeave(groupId); + await ctx.bridge.apis.groupAdmin.leave(groupId); return okResponse(); }); diff --git a/packages/onebot/src/api-handler.ts b/packages/onebot/src/api-handler.ts index 1e285c68..ebe7b8f6 100644 --- a/packages/onebot/src/api-handler.ts +++ b/packages/onebot/src/api-handler.ts @@ -61,12 +61,10 @@ export interface ApiActionContext { getGroupMemberList: (groupId: number, noCache?: boolean) => Promise; getGroupMemberInfo: (groupId: number, userId: number, noCache?: boolean) => Promise; getStrangerInfo: (userId: number) => Promise; - // Group admin (adapters: rename Bridge methods to OneBot vocabulary) - setGroupKick: (groupId: number, userId: number, rejectAdd: boolean) => Promise; - setGroupKickMembers: (groupId: number, userIds: number[], rejectAdd: boolean) => Promise; - setGroupBan: (groupId: number, userId: number, duration: number) => Promise; - setGroupWholeBan: (groupId: number, enable: boolean) => Promise; - setGroupLeave: (groupId: number) => Promise; + // Group admin (mute/kick/admin/card/name/title/leave/etc) — all + // accessed directly through `ctx.bridge.apis.groupAdmin.method()` + // after the #6 OneBot-side slim-down; no per-method passthrough + // here anymore. // Group file (adapters: field extraction + Bridge name translation) uploadGroupFile: (groupId: number, file: string, name?: string, folderId?: string, uploadFile?: boolean) => Promise; uploadPrivateFile: (userId: number, file: string, name?: string, uploadFile?: boolean) => Promise; @@ -101,7 +99,6 @@ export interface ApiActionContext { forwardSingleMsg: (messageId: number, target: { groupId?: number; userId?: number }) => Promise<{ messageId: number }>; // Extended NapCat-compatible setFriendRemark: (userId: number, remark: string) => Promise; - setGroupRemark: (groupId: number, remark: string) => Promise; setGroupAvatar: (groupId: number, source: string) => Promise; setMsgEmojiLike: (messageId: number, emojiId: string, set: boolean) => Promise; markGroupMsgAsRead: (groupId: number, sequence: number) => Promise; diff --git a/packages/onebot/src/instance-context.ts b/packages/onebot/src/instance-context.ts index 869a0878..ccbd36ad 100644 --- a/packages/onebot/src/instance-context.ts +++ b/packages/onebot/src/instance-context.ts @@ -111,12 +111,8 @@ export function buildApiContext(ref: OneBotInstanceContext): ApiActionContext { getGroupMemberInfo: (groupId, userId, noCache) => getGroupMemberInfo(bridge, groupId, userId, noCache), getStrangerInfo: (userId) => getStrangerInfo(bridge, userId), - // Group admin — names translate to OneBot vocabulary. - setGroupKick: (groupId, userId, reject) => bridge.apis.groupAdmin.kickMember(groupId, userId, reject), - setGroupKickMembers: (groupId, userIds, reject) => bridge.apis.groupAdmin.kickMembers(groupId, userIds, reject), - setGroupBan: (groupId, userId, duration) => bridge.apis.groupAdmin.muteMember(groupId, userId, duration), - setGroupWholeBan: (groupId, enable) => bridge.apis.groupAdmin.muteAll(groupId, enable), - setGroupLeave: (groupId) => bridge.apis.groupAdmin.leave(groupId), + // Group admin — actions now call `ctx.bridge.apis.groupAdmin.X(...)` + // directly; no per-method passthrough here anymore. // Group file — fileId field extraction + defaults. uploadGroupFile: async (groupId, file, name, folderId, uploadFile) => { @@ -164,7 +160,6 @@ export function buildApiContext(ref: OneBotInstanceContext): ApiActionContext { handleDeleteFriend: (userId, block) => bridge.apis.friend.delete(userId, !!block), forceFetchClientKey: () => bridge.apis.web.forceFetchClientKey(), setFriendRemark: (userId, remark) => bridge.apis.friend.setRemark(userId, remark), - setGroupRemark: (groupId, remark) => bridge.apis.groupAdmin.setRemark(groupId, remark), setGroupAvatar: (groupId, source) => bridge.apis.profile.setGroupAvatar(groupId, source), getGroupFileCount: (groupId) => bridge.apis.groupFile.getCount(groupId),