Spaces:
Configuration error
Configuration error
| import type { Command } from "commander"; | |
| import type { MessageCliHelpers } from "./helpers.js"; | |
| export function registerMessageDiscordAdminCommands(message: Command, helpers: MessageCliHelpers) { | |
| const role = message.command("role").description("Role actions"); | |
| helpers | |
| .withMessageBase( | |
| role.command("info").description("List roles").requiredOption("--guild-id <id>", "Guild id"), | |
| ) | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("role-info", opts); | |
| }); | |
| helpers | |
| .withMessageBase( | |
| role | |
| .command("add") | |
| .description("Add role to a member") | |
| .requiredOption("--guild-id <id>", "Guild id") | |
| .requiredOption("--user-id <id>", "User id") | |
| .requiredOption("--role-id <id>", "Role id"), | |
| ) | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("role-add", opts); | |
| }); | |
| helpers | |
| .withMessageBase( | |
| role | |
| .command("remove") | |
| .description("Remove role from a member") | |
| .requiredOption("--guild-id <id>", "Guild id") | |
| .requiredOption("--user-id <id>", "User id") | |
| .requiredOption("--role-id <id>", "Role id"), | |
| ) | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("role-remove", opts); | |
| }); | |
| const channel = message.command("channel").description("Channel actions"); | |
| helpers | |
| .withMessageBase( | |
| helpers.withRequiredMessageTarget(channel.command("info").description("Fetch channel info")), | |
| ) | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("channel-info", opts); | |
| }); | |
| helpers | |
| .withMessageBase( | |
| channel | |
| .command("list") | |
| .description("List channels") | |
| .requiredOption("--guild-id <id>", "Guild id"), | |
| ) | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("channel-list", opts); | |
| }); | |
| const member = message.command("member").description("Member actions"); | |
| helpers | |
| .withMessageBase( | |
| member | |
| .command("info") | |
| .description("Fetch member info") | |
| .requiredOption("--user-id <id>", "User id"), | |
| ) | |
| .option("--guild-id <id>", "Guild id (Discord)") | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("member-info", opts); | |
| }); | |
| const voice = message.command("voice").description("Voice actions"); | |
| helpers | |
| .withMessageBase( | |
| voice | |
| .command("status") | |
| .description("Fetch voice status") | |
| .requiredOption("--guild-id <id>", "Guild id") | |
| .requiredOption("--user-id <id>", "User id"), | |
| ) | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("voice-status", opts); | |
| }); | |
| const event = message.command("event").description("Event actions"); | |
| helpers | |
| .withMessageBase( | |
| event | |
| .command("list") | |
| .description("List scheduled events") | |
| .requiredOption("--guild-id <id>", "Guild id"), | |
| ) | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("event-list", opts); | |
| }); | |
| helpers | |
| .withMessageBase( | |
| event | |
| .command("create") | |
| .description("Create a scheduled event") | |
| .requiredOption("--guild-id <id>", "Guild id") | |
| .requiredOption("--event-name <name>", "Event name") | |
| .requiredOption("--start-time <iso>", "Event start time"), | |
| ) | |
| .option("--end-time <iso>", "Event end time") | |
| .option("--desc <text>", "Event description") | |
| .option("--channel-id <id>", "Channel id") | |
| .option("--location <text>", "Event location") | |
| .option("--event-type <stage|external|voice>", "Event type") | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("event-create", opts); | |
| }); | |
| helpers | |
| .withMessageBase( | |
| message | |
| .command("timeout") | |
| .description("Timeout a member") | |
| .requiredOption("--guild-id <id>", "Guild id") | |
| .requiredOption("--user-id <id>", "User id"), | |
| ) | |
| .option("--duration-min <n>", "Timeout duration minutes") | |
| .option("--until <iso>", "Timeout until") | |
| .option("--reason <text>", "Moderation reason") | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("timeout", opts); | |
| }); | |
| helpers | |
| .withMessageBase( | |
| message | |
| .command("kick") | |
| .description("Kick a member") | |
| .requiredOption("--guild-id <id>", "Guild id") | |
| .requiredOption("--user-id <id>", "User id"), | |
| ) | |
| .option("--reason <text>", "Moderation reason") | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("kick", opts); | |
| }); | |
| helpers | |
| .withMessageBase( | |
| message | |
| .command("ban") | |
| .description("Ban a member") | |
| .requiredOption("--guild-id <id>", "Guild id") | |
| .requiredOption("--user-id <id>", "User id"), | |
| ) | |
| .option("--reason <text>", "Moderation reason") | |
| .option("--delete-days <n>", "Ban delete message days") | |
| .action(async (opts) => { | |
| await helpers.runMessageAction("ban", opts); | |
| }); | |
| } | |