Skip to content

Commit

Permalink
feat: support for more option types
Browse files Browse the repository at this point in the history
  • Loading branch information
Pkmmte committed Apr 7, 2023
1 parent bc25126 commit f97d57b
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 2 deletions.
5 changes: 5 additions & 0 deletions .changeset/forty-hairs-buy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@roboplay/robo.js': patch
---

feat: support for more option types
44 changes: 42 additions & 2 deletions packages/discord/src/cli/utils/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,16 @@ export function addOptionToCommandBuilder(
.setRequired(option.required || false)
)
break
case 'attachment':
commandBuilder.addAttachmentOption((optionBuilder) =>
optionBuilder
.setName(option.name)
.setNameLocalizations(option.nameLocalizations ?? {})
.setDescription(option.description || 'No description provided')
.setDescriptionLocalizations(option.descriptionLocalizations ?? {})
.setRequired(option.required || false)
)
break
case 'channel':
commandBuilder.addChannelOption((optionBuilder) =>
optionBuilder
Expand All @@ -86,8 +96,38 @@ export function addOptionToCommandBuilder(
.setRequired(option.required || false)
)
break
case 'mention':
commandBuilder.addMentionableOption((optionBuilder) =>
optionBuilder
.setName(option.name)
.setNameLocalizations(option.nameLocalizations ?? {})
.setDescription(option.description || 'No description provided')
.setDescriptionLocalizations(option.descriptionLocalizations ?? {})
.setRequired(option.required || false)
)
break
case 'role':
commandBuilder.addRoleOption((optionBuilder) =>
optionBuilder
.setName(option.name)
.setNameLocalizations(option.nameLocalizations ?? {})
.setDescription(option.description || 'No description provided')
.setDescriptionLocalizations(option.descriptionLocalizations ?? {})
.setRequired(option.required || false)
)
break
case 'user':
commandBuilder.addUserOption((optionBuilder) =>
optionBuilder
.setName(option.name)
.setNameLocalizations(option.nameLocalizations ?? {})
.setDescription(option.description || 'No description provided')
.setDescriptionLocalizations(option.descriptionLocalizations ?? {})
.setRequired(option.required || false)
)
break
default:
console.warn(`Invalid option type: ${type}`)
logger.warn(`Invalid option type: ${type}`)
}
}

Expand Down Expand Up @@ -126,7 +166,7 @@ export async function registerCommands(
const { clientId, guildId, token } = env.discord

if (!token || !clientId) {
console.error('DISCORD_TOKEN or DISCORD_CLIENT_ID not found in environment variables')
logger.error('DISCORD_TOKEN or DISCORD_CLIENT_ID not found in environment variables')
return
}

Expand Down

0 comments on commit f97d57b

Please sign in to comment.