import { timeAndDateCmd } from "../types"; import { commandTypeHelpers as ct } from "../../../commandTypes"; import { sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils"; import { isValidTimezone } from "../../../utils/isValidTimezone"; import { disableInlineCode, trimLines } from "../../../utils"; import { parseFuzzyTimezone } from "../../../utils/parseFuzzyTimezone"; export const SetTimezoneCmd = timeAndDateCmd({ trigger: "timezone", permission: "can_set_timezone", signature: { timezone: ct.string(), }, async run({ pluginData, message, args }) { const parsedTz = parseFuzzyTimezone(args.timezone); if (!parsedTz) { sendErrorMessage( pluginData, message.channel, trimLines(` Invalid timezone: \`${disableInlineCode(args.timezone)}\` Zeppelin uses timezone locations rather than specific timezone names. See the **TZ database name** column at for a list of valid options. `), ); return; } await pluginData.state.memberTimezones.set(message.author.id, parsedTz); sendSuccessMessage(pluginData, message.channel, `Your timezone is now set to **${parsedTz}**`); }, });