# Discobase **Discobase** is a powerful and easy-to-use Node.js package that simplifies the process of creating Discord embeds and buttons for your bot. Whether you are building a community bot, a utility bot, or a game bot, Discobase provides pre-made templates for embeds and buttons, making it incredibly easy to send interactive messages to your server. ## Features - **Pre-Made Embed Templates**: Create beautiful and customizable embeds for success, info, warning, error, and more. - **Button Interactions**: Easily create buttons with custom emojis, styles, and actions. Handle button clicks directly in your code without complex event handling. - **Minimal Code**: Focus on your bot’s logic and let Discobase handle the boilerplate embed and button creation. - **Customizable**: Customize embed content, colors, and buttons to suit your specific needs. ## Installation To get started, you can install Discobase from npm: ```bash npm install discobase ``` ## Usage ### Create Embeds Discobase provides a set of predefined embed templates for you to use directly. You can customize each template with a message or other options. **Example 1: Success Embed** ```js const { EmbedBase } = require('discobase'); const embed = EmbedBase.create('success', 'Your operation was successful!'); channel.send({ embeds: [embed] }); ``` **Example 2: Info Embed** ```js const { EmbedBase } = require('discobase'); const embed = EmbedBase.create('info', 'This is some information!'); channel.send({ embeds: [embed] }); ``` ## Available Embed Templates - Success: A green embed used to show successful actions. - Info: A blue embed for informational messages. - Warning: An orange embed for warnings. - Error: A red embed for error messages. - Neutral: A default white embed for neutral messages. - Action Required: A purple embed for actions that require user interaction. **Example: Warning Embed** ```js const { EmbedBase } = require('discobase'); const embed = EmbedBase.create('warning', 'This is a warning message!'); channel.send({ embeds: [embed] }); ``` ## Create Buttons Discobase makes it simple to create buttons with custom actions. Here's how to create a button and send it along with an interaction handler. **First make sure to pass `client` to `ButtonBase`. You can do it in your main bot file.** ```js const { ButtonBase } = require('discobase') ButtonBase.attachListener(client); ``` **Example 1: Creating a Button** ```js const { ButtonBase } = require('discobase'); const { ButtonStyle } = require('discord.js'); const button = new ButtonBase() .setEmoji('👍') .setStyle(ButtonStyle.Primary) .setCustomId('button1'); const buttonRow = button.build(); await interaction.reply({ components: [buttonRow] }); ``` ## Button Interaction Handling You can handle interactions for multiple or single buttons by registering them using `ButtonBase.registerButton()`: **Single Button Example:** ```js const { ButtonBase } = require('discobase'); const { ButtonStyle } = require('discord.js'); const button = new ButtonBase() .setEmoji('👍') .setStyle(ButtonStyle.Primary) .setCustomId('button1'); const buttonRow = button.build(); await interaction.reply({ components: [buttonRow] }); ButtonBase.registerButton('button', button); button.onClick(async (interaction) => { await interaction.reply('You clicked the first button!'); }); ``` ## Multiple Buttons You can also send multiple buttons in the same message. Just create as many buttons as you need and use the Buttons.build() method to add them to a row. **Example: Multiple Buttons** ```js const { ButtonBase } = require('discobase'); const { ButtonStyle } = require('discord.js'); const button1 = new ButtonBase() .setEmoji('👍') .setStyle(ButtonStyle.Primary) .setCustomId('button1'); const button2 = new ButtonBase() .setEmoji('❌') .setStyle(ButtonStyle.Danger) .setCustomId('button2'); const buttonRow = ButtonBase.build(button1, button2); await interaction.reply({ components: [buttonRow] }); ButtonBase.registerButton('button1', button1); ButtonBase.registerButton('button2', button2); button1.onClick(async (interaction) => { await interaction.reply('You clicked the first button!'); }); button2.onClick(async (interaction) => { await interaction.reply('You clicked the second button!'); }); ``` ## Contact If you have any questions or need support, feel free to reach out to us: - Discord : https://discord.gg/ethical-programmer-s-1188398653530984539