You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Disc.NET** é um projeto experimental para a construção de uma biblioteca de interação com a API do Discord, utilizando .NET 8+. O objetivo é criar uma alternativa modular, focada em performance e facilidade de uso através de padrões modernos de desenvolvimento.
4
+
5
+
O projeto ainda está em **fase ativa de desenvolvimento** e explora arquiteturas desacopladas para lidar com a complexidade da Gateway e das interações do Discord.
6
+
7
+
---
8
+
9
+
## Como o projeto funciona?
10
+
11
+
A arquitetura do Disc.NET gira em torno de três pilares principais:
12
+
13
+
### Event Dispatcher & Handlers
14
+
O coração do sistema é o `EventDispatcher`. Ele recebe os payloads brutos da Gateway e os roteia para **Handlers** específicos.
15
+
- Cada Handler é responsável por um tipo de evento (ex: `InteractionCreate`, `MessageCreate`).
16
+
- Isso permite que a lógica de processamento seja isolada e fácil de estender sem sujar o código principal da conexão.
17
+
18
+
### Comandos via Attributes
19
+
Chega de `if/else` gigantes para validar comandos. O Disc.NET utiliza **Attributes** para mapear classes de comando automaticamente:
20
+
- Basta decorar sua classe com `[SlashCommand]` ou `[PrefixCommand]`.
21
+
- O sistema de registro faz o *scan* das classes e vincula a execução ao trigger correto via Reflection.
22
+
23
+
### Service Container (DI)
24
+
Utilizamos um `DiscNetContainer` interno para gerenciar dependências. Isso garante que seus comandos tenham acesso fácil a serviços de configuração, clientes de API e bancos de dados de forma nativa.
25
+
26
+
---
27
+
28
+
## Exemplo de Uso (Experimental)
29
+
30
+
```csharp
31
+
// 1. Defina o comando usando atributos
32
+
[SlashCommand("ping", InteractionType.ApplicationCommand, "Testa a latência")]
0 commit comments