

























@@ -36,20 +36,6 @@ import {
3636uploadEmojiDiscord,
3737uploadStickerDiscord,
3838resolveEventCoverImage,
39-fetchGuildSettingsDiscord,
40-editGuildSettingsDiscord,
41-listGuildRolesDiscord,
42-createGuildRoleDiscord,
43-editGuildRoleDiscord,
44-deleteGuildRoleDiscord,
45-listAutoModerationRulesDiscord,
46-createAutoModerationRuleDiscord,
47-editAutoModerationRuleDiscord,
48-deleteAutoModerationRuleDiscord,
49-listChannelWebhooksDiscord,
50-createChannelWebhookDiscord,
51-editWebhookDiscord,
52-deleteWebhookDiscord,
5339} from "../send.js";
5440import {
5541createDiscordActionOptions,
@@ -82,20 +68,6 @@ export const discordGuildActionRuntime = {
8268 setChannelPermissionDiscord,
8369 uploadEmojiDiscord,
8470 uploadStickerDiscord,
85- fetchGuildSettingsDiscord,
86- editGuildSettingsDiscord,
87- listGuildRolesDiscord,
88- createGuildRoleDiscord,
89- editGuildRoleDiscord,
90- deleteGuildRoleDiscord,
91- listAutoModerationRulesDiscord,
92- createAutoModerationRuleDiscord,
93- editAutoModerationRuleDiscord,
94- deleteAutoModerationRuleDiscord,
95- listChannelWebhooksDiscord,
96- createChannelWebhookDiscord,
97- editWebhookDiscord,
98- deleteWebhookDiscord,
9971};
1007210173type DiscordRoleMutationOpts = { cfg: OpenClawConfig; accountId?: string };
@@ -162,84 +134,6 @@ const guildAdminActionGuards: Partial<Record<string, GuildAdminActionGuard>> = {
162134disabledMessage: "Discord role changes are disabled.",
163135permissions: [PermissionFlagsBits.ManageRoles],
164136},
165-roleCreate: {
166-gate: "roleManagement",
167-defaultEnabled: false,
168-disabledMessage: "Discord role management is disabled.",
169-permissions: [PermissionFlagsBits.ManageRoles],
170-},
171-roleEdit: {
172-gate: "roleManagement",
173-defaultEnabled: false,
174-disabledMessage: "Discord role management is disabled.",
175-permissions: [PermissionFlagsBits.ManageRoles],
176-},
177-roleDelete: {
178-gate: "roleManagement",
179-defaultEnabled: false,
180-disabledMessage: "Discord role management is disabled.",
181-permissions: [PermissionFlagsBits.ManageRoles],
182-},
183-serverInfo: {
184-gate: "server",
185-defaultEnabled: false,
186-disabledMessage: "Discord server inspection is disabled.",
187-permissions: [PermissionFlagsBits.ManageGuild],
188-},
189-serverEdit: {
190-gate: "server",
191-defaultEnabled: false,
192-disabledMessage: "Discord server management is disabled.",
193-permissions: [PermissionFlagsBits.ManageGuild],
194-},
195-automodList: {
196-gate: "automod",
197-defaultEnabled: false,
198-disabledMessage: "Discord AutoMod management is disabled.",
199-permissions: [PermissionFlagsBits.ManageGuild],
200-},
201-automodCreate: {
202-gate: "automod",
203-defaultEnabled: false,
204-disabledMessage: "Discord AutoMod management is disabled.",
205-permissions: [PermissionFlagsBits.ManageGuild],
206-},
207-automodEdit: {
208-gate: "automod",
209-defaultEnabled: false,
210-disabledMessage: "Discord AutoMod management is disabled.",
211-permissions: [PermissionFlagsBits.ManageGuild],
212-},
213-automodDelete: {
214-gate: "automod",
215-defaultEnabled: false,
216-disabledMessage: "Discord AutoMod management is disabled.",
217-permissions: [PermissionFlagsBits.ManageGuild],
218-},
219-webhookList: {
220-gate: "webhooks",
221-defaultEnabled: false,
222-disabledMessage: "Discord webhook management is disabled.",
223-permissions: [PermissionFlagsBits.ManageWebhooks],
224-},
225-webhookCreate: {
226-gate: "webhooks",
227-defaultEnabled: false,
228-disabledMessage: "Discord webhook management is disabled.",
229-permissions: [PermissionFlagsBits.ManageWebhooks],
230-},
231-webhookEdit: {
232-gate: "webhooks",
233-defaultEnabled: false,
234-disabledMessage: "Discord webhook management is disabled.",
235-permissions: [PermissionFlagsBits.ManageWebhooks],
236-},
237-webhookDelete: {
238-gate: "webhooks",
239-defaultEnabled: false,
240-disabledMessage: "Discord webhook management is disabled.",
241-permissions: [PermissionFlagsBits.ManageWebhooks],
242-},
243137eventCreate: {
244138gate: "events",
245139disabledMessage: "Discord events are disabled.",
@@ -457,18 +351,6 @@ function readChannelPermissionTarget(params: Record<string, unknown>) {
457351};
458352}
459353460-function readManagementPayload(params: Record<string, unknown>, excluded: readonly string[]) {
461-const excludedSet = new Set(["action", "accountId", "senderUserId", ...excluded]);
462-return Object.fromEntries(
463-Object.entries(params)
464-.filter(([key]) => !excludedSet.has(key))
465-.map(([key, value]) => [
466-key.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`),
467-value,
468-]),
469-);
470-}
471-472354export async function handleDiscordGuildAction(
473355action: string,
474356params: Record<string, unknown>,
@@ -600,128 +482,6 @@ export async function handleDiscordGuildAction(
600482});
601483return jsonResult({ ok: true });
602484}
603-case "roleCreate": {
604-const guildId = readStringParam(params, "guildId", { required: true });
605-const role = await discordGuildActionRuntime.createGuildRoleDiscord(
606-guildId,
607-readManagementPayload(params, ["guildId"]),
608-withOpts(),
609-);
610-return jsonResult({ ok: true, role });
611-}
612-case "roleEdit": {
613-const guildId = readStringParam(params, "guildId", { required: true });
614-const roleId = readStringParam(params, "roleId", { required: true });
615-const role = await discordGuildActionRuntime.editGuildRoleDiscord(
616-guildId,
617-roleId,
618-readManagementPayload(params, ["guildId", "roleId"]),
619-withOpts(),
620-);
621-return jsonResult({ ok: true, role });
622-}
623-case "roleDelete": {
624-const guildId = readStringParam(params, "guildId", { required: true });
625-const roleId = readStringParam(params, "roleId", { required: true });
626-return jsonResult(
627-await discordGuildActionRuntime.deleteGuildRoleDiscord(guildId, roleId, withOpts()),
628-);
629-}
630-case "serverInfo": {
631-const guildId = readStringParam(params, "guildId", { required: true });
632-return jsonResult({
633-ok: true,
634-guild: await discordGuildActionRuntime.fetchGuildSettingsDiscord(guildId, withOpts()),
635-});
636-}
637-case "serverEdit": {
638-const guildId = readStringParam(params, "guildId", { required: true });
639-return jsonResult({
640-ok: true,
641-guild: await discordGuildActionRuntime.editGuildSettingsDiscord(
642-guildId,
643-readManagementPayload(params, ["guildId"]),
644-withOpts(),
645-),
646-});
647-}
648-case "automodList": {
649-const guildId = readStringParam(params, "guildId", { required: true });
650-return jsonResult({
651-ok: true,
652-rules: await discordGuildActionRuntime.listAutoModerationRulesDiscord(guildId, withOpts()),
653-});
654-}
655-case "automodCreate": {
656-const guildId = readStringParam(params, "guildId", { required: true });
657-return jsonResult({
658-ok: true,
659-rule: await discordGuildActionRuntime.createAutoModerationRuleDiscord(
660-guildId,
661-readManagementPayload(params, ["guildId"]),
662-withOpts(),
663-),
664-});
665-}
666-case "automodEdit": {
667-const guildId = readStringParam(params, "guildId", { required: true });
668-const ruleId = readStringParam(params, "ruleId", { required: true });
669-return jsonResult({
670-ok: true,
671-rule: await discordGuildActionRuntime.editAutoModerationRuleDiscord(
672-guildId,
673-ruleId,
674-readManagementPayload(params, ["guildId", "ruleId"]),
675-withOpts(),
676-),
677-});
678-}
679-case "automodDelete": {
680-const guildId = readStringParam(params, "guildId", { required: true });
681-const ruleId = readStringParam(params, "ruleId", { required: true });
682-return jsonResult(
683-await discordGuildActionRuntime.deleteAutoModerationRuleDiscord(
684-guildId,
685-ruleId,
686-withOpts(),
687-),
688-);
689-}
690-case "webhookList": {
691-const channelId = readStringParam(params, "channelId", { required: true });
692-return jsonResult({
693-ok: true,
694-webhooks: await discordGuildActionRuntime.listChannelWebhooksDiscord(channelId, withOpts()),
695-});
696-}
697-case "webhookCreate": {
698-const channelId = readStringParam(params, "channelId", { required: true });
699-return jsonResult({
700-ok: true,
701-webhook: await discordGuildActionRuntime.createChannelWebhookDiscord(
702-channelId,
703-readManagementPayload(params, ["channelId"]),
704-withOpts(),
705-),
706-});
707-}
708-case "webhookEdit": {
709-const webhookId = readStringParam(params, "webhookId", { required: true });
710-return jsonResult({
711-ok: true,
712-webhook: await discordGuildActionRuntime.editWebhookDiscord(
713-webhookId,
714-readManagementPayload(params, ["webhookId"]),
715-withOpts(),
716-),
717-});
718-}
719-case "webhookDelete": {
720-const webhookId = readStringParam(params, "webhookId", { required: true });
721-return jsonResult(
722-await discordGuildActionRuntime.deleteWebhookDiscord(webhookId, withOpts()),
723-);
724-}
725485case "channelInfo": {
726486if (!isActionEnabled("channelInfo")) {
727487throw new Error("Discord channel info is disabled.");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。