diff options
author | 2022-07-05 12:16:52 -0400 | |
---|---|---|
committer | 2022-07-05 09:26:58 -0700 | |
commit | d3e0955ddca23bd320a7fd4afc1e1b313dc0db04 (patch) | |
tree | f762cdd39122d02b8332dffb8241436ecdcc6313 | |
parent | 5d4fbf7f020ed7134b4f447a8119e5a3718fcbb0 (diff) | |
download | bun-d3e0955ddca23bd320a7fd4afc1e1b313dc0db04.tar.gz bun-d3e0955ddca23bd320a7fd4afc1e1b313dc0db04.tar.zst bun-d3e0955ddca23bd320a7fd4afc1e1b313dc0db04.zip |
more examples
-rw-r--r-- | examples/discord-interactions/commands/context_menu/avatar.js | 21 | ||||
-rw-r--r-- | examples/discord-interactions/commands/hello.js | 2 | ||||
-rw-r--r-- | examples/discord-interactions/commands/modal.ts | 51 |
3 files changed, 73 insertions, 1 deletions
diff --git a/examples/discord-interactions/commands/context_menu/avatar.js b/examples/discord-interactions/commands/context_menu/avatar.js new file mode 100644 index 000000000..fee1ccc68 --- /dev/null +++ b/examples/discord-interactions/commands/context_menu/avatar.js @@ -0,0 +1,21 @@ +import { SlashCommand, ApplicationCommandType } from 'slash-create'; + +export default class AvatarCommand extends SlashCommand { + constructor(creator) { + super(creator, { + // You must specify a type for context menu commands, but defaults + // to `CHAT_INPUT`, or regular slash commands. + type: ApplicationCommandType.USER, + name: 'Get Avatar URL', + }); + + this.filePath = __filename; + } + + async run(ctx) { + // The target user can be accessed from here + // You can also use `ctx.targetMember` for member properties + const target = ctx.targetUser; + return `${target.username}'s Avatar: ${target.avatarURL}`; + } +}
\ No newline at end of file diff --git a/examples/discord-interactions/commands/hello.js b/examples/discord-interactions/commands/hello.js index df94931ff..b72051724 100644 --- a/examples/discord-interactions/commands/hello.js +++ b/examples/discord-interactions/commands/hello.js @@ -1,4 +1,4 @@ -const { SlashCommand, CommandOptionType } = require('slash-create'); +import { SlashCommand, CommandOptionType } from 'slash-create'; export default class HelloCommand extends SlashCommand { constructor(creator) { diff --git a/examples/discord-interactions/commands/modal.ts b/examples/discord-interactions/commands/modal.ts new file mode 100644 index 000000000..ed4026ee0 --- /dev/null +++ b/examples/discord-interactions/commands/modal.ts @@ -0,0 +1,51 @@ +import { SlashCommand, ComponentType, TextInputStyle } from 'slash-create'; + +export default class ModalCommand extends SlashCommand { + constructor(creator) { + super(creator, { + name: 'modal', + description: 'Send a cool modal.' + }); + + this.filePath = __filename; + } + + async run(ctx) { + // You can send a modal this way + // Keep in mind providing a callback is optional, but no callback requires the custom_id to be defined. + ctx.sendModal( + { + title: 'Example Modal', + components: [ + { + type: ComponentType.ACTION_ROW, + components: [ + { + type: ComponentType.TEXT_INPUT, + label: 'Text Input', + style: TextInputStyle.SHORT, + custom_id: 'text_input', + placeholder: 'Type something...' + } + ] + }, + { + type: ComponentType.ACTION_ROW, + components: [ + { + type: ComponentType.TEXT_INPUT, + label: 'Long Text Input', + style: TextInputStyle.PARAGRAPH, + custom_id: 'long_text_input', + placeholder: 'Type something...' + } + ] + } + ] + }, + (mctx) => { + mctx.send(`Your input: ${mctx.values.text_input}\nYour long input: ${mctx.values.long_text_input}`); + } + ); + } +}
\ No newline at end of file |