Allow the greeting to happen either in #general or in DMs. Don't wish happy birthday at midnight--do it at like, server reset, or sometime in the morning. (Maybe early in the morning, and also assign the role at that time? But remove it at midnight.)
The only arguments needed (for set) is a date (month/day, no year), the announcement privacy setting, and a timezone. Timezone should be IANA timezones and use autocomplete. Use find-timezone to find the correct IANA timezone string.
The way find-timezone works is that it sends a message with a timestamp (maybe closest hour?), and then has a select menu for what hour the time is displayed as. This then gives a second select menu, with options for IANA timezones that would match that time. (Maybe even have both selects active at once, and just disable the second one until the first one is selected.)
Not sure if there would be so many options that these select menus would need autocomplete/pagination.
Once a timezone is selected, also update the message with the timezone string for easy reference later.
subcommands:
Allow the greeting to happen either in #general or in DMs. Don't wish happy birthday at midnight--do it at like, server reset, or sometime in the morning. (Maybe early in the morning, and also assign the role at that time? But remove it at midnight.)
The only arguments needed (for
set
) is a date (month/day, no year), the announcement privacy setting, and a timezone. Timezone should be IANA timezones and use autocomplete. Usefind-timezone
to find the correct IANA timezone string.The way
find-timezone
works is that it sends a message with a timestamp (maybe closest hour?), and then has a select menu for what hour the time is displayed as. This then gives a second select menu, with options for IANA timezones that would match that time. (Maybe even have both selects active at once, and just disable the second one until the first one is selected.)Not sure if there would be so many options that these select menus would need autocomplete/pagination.
Once a timezone is selected, also update the message with the timezone string for easy reference later.