@elephant.js/discord.js
v1.3.2
Published
Uma base sólida para criar bots confiáveis sem perder tipagem ou controle de eventos.
Downloads
936
Maintainers
Readme
🐘 @elephant.js/discord.js
O Elephant.js/discord.js é um framework opinativo construído sobre o discord.js v14, projetado para oferecer uma experiência de desenvolvimento superior com foco em tipagem estrita, organização modular e componentes declarativos.
✨ Novidades da v1.3.2
- 🧩 Subpacote de Componentes: Novo import
@elephant.js/discord.js/componentspara criação de interfaces. - 📝 Criação Declarativa: Crie Embeds, Botões e Modais usando objetos simples
{ ... }. - 💡 IntelliSense de Elite: Documentação JSDoc completa em todas as propriedades para dicas em tempo real no VS Code.
- 🌐 Internacionalização: Suporte nativo a
name_localizationsedescription_localizationsnocreateCommand. - 🛡️ ActionRow Inteligente: Nova estrutura de ActionRow que simplifica a organização de componentes.
📦 Instalação
pnpm add @elephant.js/discord.js discord.js🏗️ Estrutura Recomendada
├── index.ts # Ponto de entrada (Login)
├── discord.config.ts # Configuração do Client e App
├── src/
│ └── discord/
│ ├── index.ts # Setup de criadores e middlewares
│ ├── commands/ # Pasta de comandos
│ └── events/ # Pasta de eventos
└── package.json🚀 Guia de Início Rápido
1. Configuração (discord.config.ts)
import { GatewayIntentBits, ActivityType } from "discord.js";
import { createClient, createApp } from "@elephant.js/discord.js";
export const bot = {
TOKEN: "SEU_TOKEN",
ID: "SEU_CLIENT_ID",
};
export const client = createClient({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages],
});
export const { setupCreators } = createApp({
token: bot.TOKEN,
clientId: bot.ID,
guildIds: []
}, {
client,
slash: {
dir: "./src/discord/commands",
ext: [".ts", ".js"],
},
presence: {
status: "online",
activities: [{ name: "Elephant.js v1.3.2", type: ActivityType.Playing }],
},
hooks: {
onReady: (c) => console.log(`Bot online como ${c.user?.tag}`),
},
});2. Criadores e Middlewares (src/discord/index.ts)
import { setupCreators } from "../../discord.config";
export const { createCommand, createEvent } = setupCreators({
commands: {
defaultCommandOptions: { cooldown: 3 },
},
responders: {
async middleware(interaction, block) {
// Sua lógica global aqui
},
},
});🧩 Componentes Declarativos (/components)
A v1.3.2 introduz uma forma muito mais limpa de criar interfaces usando objetos.
Embeds
import { Embed } from "@elephant.js/discord.js/components";
const embed = new Embed({
title: "Título do Embed",
description: "Descrição detalhada",
color: "Blue",
fields: [
{ name: "Campo 1", value: "Valor 1", inline: true }
],
footer: { text: "Elephant.js" }
});Botões e ActionRows
import { Button, ActionRow } from "@elephant.js/discord.js/components";
const row = new ActionRow({
components: [
new Button({
style: "Success",
customId: "confirm",
label: "Confirmar",
emoji: "✅"
}),
new Button({
style: "Link",
label: "Docs",
url: "https://elephant.js.org"
})
]
});Modais e TextInputs
import { Modal, TextInput } from "@elephant.js/discord.js/components";
const modal = new Modal({
customId: "form",
title: "Meu Formulário",
fields: [
new TextInput({
customId: "name",
label: "Seu Nome",
style: "Short",
required: true
})
]
});💬 Comandos com Localização
import { createCommand } from "../index";
import { ApplicationCommandType } from "discord.js";
export default createCommand({
name: "ping",
description: "Replies with pong",
type: ApplicationCommandType.ChatInput,
name_localizations: {
"pt-BR": "ping",
},
description_localizations: {
"pt-BR": "Responde com pong",
},
async run(interaction) {
await interaction.reply("Pong! 🏓");
},
});⚙️ Referência da API
createApp(botConfig, appOptions)
| Parâmetro | Descrição |
| :--- | :--- |
| botConfig.guildIds | Array de IDs para registro imediato em servidores (vazio = global). |
| appOptions.hooks | Ciclo de vida: onReady, onShutdown. |
setupCreators(options)
| Opção | Descrição |
| :--- | :--- |
| responders.middleware | Função executada antes de qualquer comando. Use block() para cancelar. |
📄 Licença
MIT © ARC Studio, Inc.
Elephant.js — Tipado. Seguro. Simples. 🐘
