Utilites

Run Settings
LanguageTypeScript
Language Version
Run Command
import { ColorResolvable, EmbedBuilder, WebhookClient } from 'discord.js'; /** * Logs an informational message to the console. * @param {any} message - The message to be logged. * @returns {void} */ function info(message: any): void { console.log(`\x1b[34m\u2139 ${message}\x1b[0m`); } /** * Logs a success message to the console. * @param {any} message - The message to be logged. * @returns {void} */ function done(message: any): void { console.log(`\x1b[32m\u2705 ${message}\x1b[0m`); } /** * Logs a warning message to the console. * @param {any} message - The message to be logged. * @returns {void} */ function warn(message: any): void { console.log(`\x1b[33m\u26a0 ${message}\x1b[0m`); } /** * Logs an error message to the console. * @param {any} message - The message to be logged. * @returns {void} */ function error(message: any): void { console.log(`\x1b[31m\u26D4 ${message}\x1b[0m`); } /** * Logs a debug message to the console. * @param {any} message - The message to be logged. * @returns {void} */ function debug(message: any): void { console.log(`\x1b[35m\u1367 ${message}\x1b[0m`); } /** * Logger object containing various logging functions. */ export const logger = { info, done, warn, error, debug, }; /** * Sends a loading message as a reply to a Discord interaction. * @async * @returns {Promise<EmbedBuilder>} A promise that resolves with the loading message embed. */ export async function loading(): Promise<EmbedBuilder> { const loadingEmbed = new EmbedBuilder() .setDescription('Loading... <a:wumpusdance:1189474658060341278>') .setColor('Blurple') .setFooter({ text: 'Taking too long? Use the command / interaction again to retry.' }); return loadingEmbed; } /** * Sends an error message as an embed to a Discord interaction. * @async * @returns {Promise<EmbedBuilder>} A promise that resolves with the error message embed. */ export async function errormsg(error_message?: any): Promise<EmbedBuilder> { if (!error_message) { const errorEmbed = new EmbedBuilder() .setTitle('An error occurred!') .setDescription(`WHAT NOW!? Well, you can try using the command / interaction again.`) .setFooter({ text: 'If this error persists, please DM icmecodes.' }) .setColor('Red'); return errorEmbed; } else { const errorEmbed = new EmbedBuilder() .setTitle('An error occurred!') .setDescription( `WHAT NOW!? Well, you can try using the command / interaction again.\n\n\`\`\`shell\n${error_message}\n\`\`\``, ) .setFooter({ text: 'If this error persists, please DM icmecodes.' }) .setColor('Red'); return errorEmbed; } } /** * Options for sending an embed. * @interface * @property {string} message - The message for the embed. * @property {string} [title] - The title for the embed. * @property {string} [footer] - The footer for the embed. * @property {string} [thumbnail] - The thumbnail for the embed. * @property {string} [image] - The image for the embed. * @property {boolean} [timestamp] - Whether to include a timestamp in the embed. * @property {ColorResolvable} [color] - The color for the embed. */ interface sendEmbedOptions { message: string; title?: string; footer?: string; thumbnail?: string; image?: string; timestamp?: boolean; color?: ColorResolvable; } /** * Sends a generic embed to a Discord interaction with optional settings. * @async * @param {sendEmbedOptions} options - The options for the embed. * @returns {Promise<EmbedBuilder>} A promise that resolves with the generated embed. */ export async function embed(options: sendEmbedOptions): Promise<EmbedBuilder> { const embed = new EmbedBuilder().setDescription(options.message); if (options.color) { embed.setColor(options.color); } else { embed.setColor('Blurple'); } if (options.title) { embed.setTitle(options.title); } if (options.footer) { embed.setFooter({ text: options.footer }); } if (options.thumbnail) { embed.setThumbnail(options.thumbnail); } if (options.image) { embed.setImage(options.image); } if (options.timestamp) { embed.setTimestamp(); } return embed; } /** * Generates a code block. * @function * @param {string} text - The text to be included in the code block. * @param {string} [style] - The style of the code block. * @returns {string} The generated code block. */ export function codeblock(text: string, style?: string): string { if (!style) { return `\`\`\`\n${text}\n\`\`\``; } else { return `\`\`\`${style}\n${text}\n\`\`\``; } } /** * Extracts fluxus HWID from a URL. * @function * @param {string} url - The URL to extract the HWID from. * @returns {string} The extracted HWID. */ export function extractHwid(url: string) { const regex = /HWID=([0-9a-zA-Z]+)/; const match = url.match(regex); return match ? match[1] : url; } /** * Options for sending an error log. * @interface * @property {string} error - The error to send. * @property {string} [url] - The URL to send the error log to. */ interface sendErrorLogOptions { error: string; } /** * Sends an error log as an embed to a specified Discord webhook. * @async * @param {sendErrorLogOptions} options - The options for sending the error log. * @returns {Promise<void>} A promise that resolves once the error log is sent. */ export async function sendErrorLog(options: sendErrorLogOptions): Promise<void> { const webhook = new WebhookClient({ url: 'https://discord.com/api/webhooks/1189463959699476580/nbLPS8RlBqJgPXFfp62di9NhFDvp4XTn22onHOYDhwC7SLD78TpPT7HNme2FwwJ86vPc', }); webhook.send({ embeds: [await embed({ message: `${codeblock(options.error, 'shell')}` })], }); } /** * Check if a given value is a valid hex color code. * * @param {string} hex - The hex color code to be validated. * @returns {boolean} Returns true if the input is a valid hex color code, otherwise false. */ export function isHex(hex: string): boolean { }
Editor Settings
Theme
Key bindings
Full width
Lines