⚙️ Configuração (settings)
No Nexo, você configura comportamentos globais no Bootstrap.init usando a propriedade settings.
Nesta página, paths.commands e paths.events aparecem como exemplos.
Você pode usar qualquer estrutura de pastas.
🚀 Como configurar
Você pode configurar de 2 formas:
- Inline no
Bootstrap.init(bom para projetos pequenos) - Arquivo separado
settings.tsousettings.js(recomendado para projetos médios e grandes)
🧩 Exemplo inline (simples)
- JavaScript
- TypeScript
const { Bootstrap } = require('nexocord');
const { GatewayIntentBits } = require('discord.js');
async function main() {
await Bootstrap.init({
token: process.env.DISCORD_TOKEN,
intents: [GatewayIntentBits.Guilds],
paths: {
commands: 'src/commands',
events: 'src/events',
},
settings: {
terminal: {
mode: 'minimalista',
showSlashCommandsRegistred: true,
},
bot: {
cooldown: 5,
},
custom: {
projectName: 'Meu Bot',
},
},
});
}
main()
import { Bootstrap } from 'nexocord';
import { GatewayIntentBits } from 'discord.js';
await Bootstrap.init({
token: process.env.DISCORD_TOKEN,
intents: [GatewayIntentBits.Guilds],
paths: {
commands: 'src/commands',
events: 'src/events',
},
settings: {
terminal: {
mode: 'minimalista',
showSlashCommandsRegistred: true,
},
bot: {
cooldown: 5,
},
custom: {
projectName: 'Meu Bot',
},
},
});
Em projetos pequenos, inline costuma ser suficiente.
📂 Arquivo separado (recomendado)
Para projetos maiores, evite poluir o Bootstrap.init.
Estrutura sugerida:
📂 src/
┣ 📜 index.ts
┗ 📜 settings.ts
- JavaScript
- TypeScript
module.exports = {
terminal: {
mode: 'minimalista',
showSlashCommandsFiles: false,
showSlashCommandsRegistred: true,
showEventsFiles: false,
showEventsRegistred: true,
},
bot: {
cooldown: 3,
guildID: [],
},
custom: {
supportServer: 'https://discord.gg/seu-servidor',
},
};
const { Bootstrap } = require('nexocord');
const { GatewayIntentBits } = require('discord.js');
const settings = require('./settings.js');
async function main() {
await Bootstrap.init({
token: process.env.DISCORD_TOKEN,
intents: [GatewayIntentBits.Guilds],
paths: {
commands: 'src/commands',
events: 'src/events',
},
settings,
});
}
main();
import { Settings } from 'nexocord';
export const settings: Settings = {
terminal: {
mode: 'minimalista',
showSlashCommandsFiles: false,
showSlashCommandsRegistred: true,
showEventsFiles: false,
showEventsRegistred: true,
},
bot: {
cooldown: 3,
guildID: [],
},
custom: {
supportServer: 'https://discord.gg/seu-servidor',
},
};
import { Bootstrap } from 'nexocord';
import { GatewayIntentBits } from 'discord.js';
import settings from './settings';
await Bootstrap.init({
token: process.env.DISCORD_TOKEN,
intents: [GatewayIntentBits.Guilds],
paths: {
commands: 'src/commands',
events: 'src/events',
},
settings,
});
🧠 Defaults
O Nexo já possui valores padrão internos. Você só precisa sobrescrever o que quiser.
Exemplo: se você definir apenas bot.cooldown, os outros campos continuam com os defaults.
settings é mesclado com os valores padrão automaticamente.
📋 Campos principais
🖥️ terminal
Controla como o Nexo exibe informações no console.
terminal: {
mode: 'informativo' | 'minimalista';
showSlashCommandsFiles?: boolean;
showSlashCommandsRegistred?: boolean;
showEventsFiles?: boolean;
showEventsRegistred?: boolean;
}
mode: define o nível de detalhe dos logs.showSlashCommandsFiles: mostra os arquivos de comando encontrados no carregamento.showSlashCommandsRegistred: mostra os comandos registrados no Discord.showEventsFiles: mostra os arquivos de eventos encontrados.showEventsRegistred: mostra os eventos registrados no cliente.
🤖 bot
Configurações globais de comportamento.
bot: {
cooldown: number;
guildID: string[];
}
cooldown: cooldown global padrão em segundos para comandos.guildID: lista de IDs de guild para escopo de registro/sincronização quando necessário.
🧩 custom
Espaço livre para configurações da sua aplicação.
custom: Record<string, any>
Use para dados que não fazem parte do core do Nexo, por exemplo:
- IDs de canais e cargos
- URLs internas
- flags de ambiente
✅ Boas práticas
- 🗂️ Em projetos médios e grandes, use arquivo separado (
settings.tsousettings.js). - 🧩 Use
custompara configurações da sua aplicação. - 🧼 Mantenha
settingsdeclarativo (evite lógica de negócio dentro dele). - 🎯 Sobrescreva só o necessário e aproveite os defaults do Nexo.