@getsolara/solara.js
Version:
A lightweight and modular Discord bot framework built on discord.js v14, with truly optional feature packages.
31 lines • 1.69 kB
JavaScript
const { time, TimestampStyles } = require('discord.js');
module.exports = {
name: "$timeStamp",
description: "Formats a timestamp for Discord display. Args: [style];[timestampMs]",
takesBrackets: true,
execute: async (context, args) => {
const styleArg = args[0]?.trim(); const msArg = args[1]?.trim();
let targetTimestamp = Date.now();
if (msArg) {
const parsedMs = parseInt(msArg, 10);
if (!isNaN(parsedMs)) targetTimestamp = parsedMs;
else return "[Error: Invalid timestamp number for $timeStamp]";
}
const dateObject = new Date(targetTimestamp);
let style = TimestampStyles.ShortDateTime;
if (styleArg) {
switch (styleArg.toLowerCase()) {
case 't': case 'shorttime': style = TimestampStyles.ShortTime; break;
case 'T': case 'longtime': style = TimestampStyles.LongTime; break;
case 'd': case 'shortdate': style = TimestampStyles.ShortDate; break;
case 'D': case 'longdate': style = TimestampStyles.LongDate; break;
case 'f': case 'shortdatetime': style = TimestampStyles.ShortDateTime; break;
case 'F': case 'longdatetime': style = TimestampStyles.LongDateTime; break;
case 'r': case 'relative': style = TimestampStyles.RelativeTime; break;
default: return `[Error: Invalid style "${styleArg}" for $timeStamp. Use t, T, d, D, f, F, or R]`;
}
}
try { return time(dateObject, style); }
catch(e) { return `[Error formatting timestamp: ${e.message}]`; }
}
};