aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar evanwashere <github@evan.lol> 2022-07-05 12:16:52 -0400
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-07-05 09:26:58 -0700
commitd3e0955ddca23bd320a7fd4afc1e1b313dc0db04 (patch)
treef762cdd39122d02b8332dffb8241436ecdcc6313
parent5d4fbf7f020ed7134b4f447a8119e5a3718fcbb0 (diff)
downloadbun-d3e0955ddca23bd320a7fd4afc1e1b313dc0db04.tar.gz
bun-d3e0955ddca23bd320a7fd4afc1e1b313dc0db04.tar.zst
bun-d3e0955ddca23bd320a7fd4afc1e1b313dc0db04.zip
more examples
-rw-r--r--examples/discord-interactions/commands/context_menu/avatar.js21
-rw-r--r--examples/discord-interactions/commands/hello.js2
-rw-r--r--examples/discord-interactions/commands/modal.ts51
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