robtic-discord-startup
Version:
easily set up a Discord bot with configurable settings
2 lines (1 loc) • 1.84 kB
JavaScript
import{Events as E,MessageFlags as $}from"discord.js";import{EmbedBuilder as h}from"discord.js";var f={error:16731212,success:5025616,info:3447003,warning:16761095,default:5793266};var a=class{embed;constructor(r){let{title:o,description:s,fields:c=[],thumbnail:p,image:g,type:b="default"}=r;this.embed=new h().setTitle(o).setDescription(s).setColor(f[b]).setTimestamp(),c?.length&&this.embed.addFields(c.map(l=>({name:l.name,value:l.value,inline:l.inline??!1}))),p&&this.embed.setThumbnail(p),g&&this.embed.setImage(g)}get(){return this.embed}};var d=e=>new a({title:"Error",description:`\`\`\`${e}\`\`\``,type:"error"}).get();import t from"chalk";var m=`${t.blueBright("[RobTic]")}`,n={info:e=>console.log(`${m} ${t.blue("[INFO]")} ${e}`),success:e=>console.log(`${m} ${t.green("[SUCCESS]")} ${e}`),warn:e=>console.warn(`${m} ${t.yellow("[WARN]")} ${e}`),error:e=>console.error(`${m} ${t.red("[ERROR]")} ${e}`),debug:e=>console.log(`${m} ${t.magenta("[DEBUG]")} ${e}`)};var i=class extends Error{constructor(o,s="COMMAND"){super(o);this.type=s;this.name=`[${s} ERROR]`}},u=(e,r="Unknown")=>{e instanceof i?n.error(`${e.name} (${r}): ${e.message}`):e instanceof Error?n.error(`[Unhandled Error] (${r}): ${e.stack}`):n.error(`[Unknown Error] (${r}): ${e}`)};var O={name:E.InteractionCreate,async execute(e,r){if(!e.isChatInputCommand())return;let o=r.commands.get(e.commandName);if(!o){n.warn(`\u26A0\uFE0F Command "${e.commandName}" not found.`);return}try{await o.run(e,r)}catch(s){u(new i(`\u274C Error running command "${e.commandName}": ${s}`,"COMMAND"),"src/events/InteractionCreate.ts line 22 ( InteractionCreate )"),e.replied||e.deferred?await e.followUp({embeds:[d("\u{1F4A5} Something went wrong!")],flags:$.Ephemeral}):await e.reply({embeds:[d("\u{1F4A5} Something went wrong!")],flags:$.Ephemeral})}}};export{O as default};