mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-14 11:30:41 +00:00
58 lines
2.1 KiB
TypeScript
58 lines
2.1 KiB
TypeScript
import type { Command } from "commander";
|
|
import { collectOption } from "../helpers.js";
|
|
import type { MessageCliHelpers } from "./helpers.js";
|
|
|
|
export function registerMessageEmojiCommands(message: Command, helpers: MessageCliHelpers) {
|
|
const emoji = message.command("emoji").description("Emoji actions");
|
|
|
|
helpers
|
|
.withMessageBase(emoji.command("list").description("List emojis"))
|
|
.option("--guild-id <id>", "Guild id (Discord)")
|
|
.action(async (opts) => {
|
|
await helpers.runMessageAction("emoji-list", opts);
|
|
});
|
|
|
|
helpers
|
|
.withMessageBase(
|
|
emoji
|
|
.command("upload")
|
|
.description("Upload an emoji")
|
|
.requiredOption("--guild-id <id>", "Guild id"),
|
|
)
|
|
.requiredOption("--emoji-name <name>", "Emoji name")
|
|
.requiredOption("--media <path-or-url>", "Emoji media (path or URL)")
|
|
.option("--role-ids <id>", "Role id (repeat)", collectOption, [] as string[])
|
|
.action(async (opts) => {
|
|
await helpers.runMessageAction("emoji-upload", opts);
|
|
});
|
|
}
|
|
|
|
export function registerMessageStickerCommands(message: Command, helpers: MessageCliHelpers) {
|
|
const sticker = message.command("sticker").description("Sticker actions");
|
|
|
|
helpers
|
|
.withMessageBase(
|
|
helpers.withRequiredMessageTarget(sticker.command("send").description("Send stickers")),
|
|
)
|
|
.requiredOption("--sticker-id <id>", "Sticker id (repeat)", collectOption)
|
|
.option("-m, --message <text>", "Optional message body")
|
|
.action(async (opts) => {
|
|
await helpers.runMessageAction("sticker", opts);
|
|
});
|
|
|
|
helpers
|
|
.withMessageBase(
|
|
sticker
|
|
.command("upload")
|
|
.description("Upload a sticker")
|
|
.requiredOption("--guild-id <id>", "Guild id"),
|
|
)
|
|
.requiredOption("--sticker-name <name>", "Sticker name")
|
|
.requiredOption("--sticker-desc <text>", "Sticker description")
|
|
.requiredOption("--sticker-tags <tags>", "Sticker tags")
|
|
.requiredOption("--media <path-or-url>", "Sticker media (path or URL)")
|
|
.action(async (opts) => {
|
|
await helpers.runMessageAction("sticker-upload", opts);
|
|
});
|
|
}
|