PHPackages                             lucasgiovanni/laravel-discord-bot-installer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. lucasgiovanni/laravel-discord-bot-installer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

lucasgiovanni/laravel-discord-bot-installer
===========================================

Um pacote Laravel completo para instalação e gerenciamento de bots do Discord de forma simples e rápida

v1.0.0(1y ago)10MITPHPPHP ^8.2

Since Mar 28Pushed 1y ago1 watchersCompare

[ Source](https://github.com/lucasgiovannibr/laravel-discord)[ Packagist](https://packagist.org/packages/lucasgiovanni/laravel-discord-bot-installer)[ RSS](/packages/lucasgiovanni-laravel-discord-bot-installer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (13)Versions (2)Used By (0)

Laravel Discord Bot Installer
=============================

[](#laravel-discord-bot-installer)

Um pacote Laravel completo para instalação e gerenciamento de bots do Discord de forma simples e rápida.

[![Latest Version on Packagist](https://camo.githubusercontent.com/b47e7be0396bba716d73044292150bc932b1281066435213074dfd44d2dac183/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c7563617367696f76616e6e692f6c61726176656c2d646973636f72642d626f742d696e7374616c6c65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/lucasgiovanni/laravel-discord-bot-installer)[![Total Downloads](https://camo.githubusercontent.com/68febeb28eb42919152ca2bbf0401b8f0e0bc2e65496251132ea0701c50eee80/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c7563617367696f76616e6e692f6c61726176656c2d646973636f72642d626f742d696e7374616c6c65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/lucasgiovanni/laravel-discord-bot-installer)

Recursos
--------

[](#recursos)

- 🚀 Instalação automatizada com um único comando
- 💬 Suporte completo a eventos do Discord (mensagens, novos membros, reações, interações)
- ⚙️ Sistema de configuração flexível
- 🔌 Sistema de comandos personalizáveis e middleware
- 📊 Sistema de logs para monitoramento do bot
- 🛠️ Compatível com Laravel 12+
- 🛡️ Sistema de moderação (banimentos, avisos, expulsões)
- ⏰ Sistema de lembretes e mensagens agendadas
- 📈 Sistema de níveis e experiência
- 📦 Suporte a módulos/plugins
- 🌐 Suporte a múltiplos idiomas
- 🧠 Sistema de cache para otimização
- 🔄 Integração com APIs externas
- 📝 Editor de embeds visual
- 🚥 Suporte a slash commands
- 🔁 Processamento assíncrono via filas
- 📊 Sistema de telemetria opcional
- 🎭 Sistema de reaction roles automático
- 🧩 Componentes interativos (botões, menus dropdown)
- 🎫 Sistema de tickets/suporte
- 📊 API de estatísticas para integração
- 💰 Sistema de economia virtual com loja
- 🤖 Integrações com IA para moderação e respostas
- 👋 Gerador de imagens de boas-vindas
- 🛡️ Sistema avançado de auto-moderação
- 🎁 Sistema completo de giveaways e sorteios
- 📆 Eventos temporários com RSVP
- 🎯 Configurações específicas por servidor
- 🪝 Webhooks customizáveis
- 📊 Sistema de votação avançado com gráficos

Requisitos
----------

[](#requisitos)

- PHP 8.2 ou superior
- Laravel 12.x
- Conta no Discord e um bot criado no [Discord Developer Portal](https://discord.com/developers/applications)

Instalação
----------

[](#instalação)

### 1. Instale o pacote via Composer

[](#1-instale-o-pacote-via-composer)

```
composer require lucasgiovanni/laravel-discord-bot-installer
```

### 2. Execute o comando de instalação

[](#2-execute-o-comando-de-instalação)

```
php artisan bot:install
```

Este comando irá:

- Publicar os arquivos de configuração
- Configurar as variáveis de ambiente necessárias
- Criar pastas e arquivos necessários

### 3. Configure seu bot

[](#3-configure-seu-bot)

Edite o arquivo `.env` e adicione seu token do bot Discord:

```
DISCORD_BOT_TOKEN=seu_token_aqui

```

Ou configure durante a instalação quando solicitado.

### 4. Execute as migrações (Opcional)

[](#4-execute-as-migrações-opcional)

Para utilizar os recursos avançados como sistema de níveis, advertências e lembretes, execute:

```
php artisan migrate
```

Configuração
------------

[](#configuração)

Você pode personalizar o comportamento do bot editando o arquivo `config/discordbot.php`.

### Configurações principais:

[](#configurações-principais)

```
// Token do bot Discord
'token' => env('DISCORD_BOT_TOKEN', ''),

// Prefixo usado para comandos
'command_prefix' => env('DISCORD_COMMAND_PREFIX', '!'),

// Status de atividade do bot
'activity' => [
    'type' => 'playing', // playing, streaming, listening, watching, competing
    'name' => env('DISCORD_BOT_ACTIVITY', 'Laravel Discord Bot'),
],

// Mensagens personalizáveis
'messages' => [
    'welcome' => 'Bem-vindo(a) {user} ao servidor! 👋',
],
```

### Sistema de Middleware:

[](#sistema-de-middleware)

O pacote agora inclui um sistema de middleware para processar comandos:

```
'middleware' => [
    'global' => [
        \LucasGiovanni\DiscordBotInstaller\Middleware\RateLimiter::class,
        \LucasGiovanni\DiscordBotInstaller\Middleware\ErrorHandler::class,
    ],
    'groups' => [
        'moderation' => [
            \LucasGiovanni\DiscordBotInstaller\Middleware\PermissionCheck::class,
        ],
    ],
],
```

### Sistema de Níveis:

[](#sistema-de-níveis)

Configure o sistema de níveis e experiência:

```
'levels' => [
    'enabled' => true,
    'xp_per_message' => 10,
    'xp_cooldown' => 60, // segundos
    'announce_level_up' => true,
    'roles_rewards' => [
        5 => env('DISCORD_LEVEL5_ROLE', null),
        10 => env('DISCORD_LEVEL10_ROLE', null),
    ],
],
```

### Adicionando comandos personalizados:

[](#adicionando-comandos-personalizados)

```
'commands' => [
    'meucomando' => [
        'description' => 'Descrição do meu comando',
        'handler' => \App\Discord\Commands\MeuComandoPersonalizado::class,
        'permissions' => ['SEND_MESSAGES'], // Permissões necessárias
    ],
],
```

Uso
---

[](#uso)

### Iniciando o bot

[](#iniciando-o-bot)

```
php artisan bot:run
```

Para modo debug:

```
php artisan bot:run --debug
```

### Comandos padrão

[](#comandos-padrão)

O bot vem com vários comandos padrão:

#### Comandos básicos:

[](#comandos-básicos)

- `!ping` - Verificar se o bot está online e mostra a latência
- `!help` - Mostra a lista de comandos disponíveis

#### Comandos de moderação:

[](#comandos-de-moderação)

- `!ban` - Bane um usuário do servidor
- `!kick` - Expulsa um usuário do servidor
- `!mute` - Silencia um usuário
- `!warn` - Dá uma advertência a um usuário
- `!infractions` - Mostra as infrações de um usuário

#### Comandos utilitários:

[](#comandos-utilitários)

- `!remind` - Define um lembrete
- `!poll` - Cria uma enquete
- `!role` - Gerencia cargos auto-atribuíveis

### Lembretes agendados

[](#lembretes-agendados)

Para criar um lembrete:

```
!remind 30m Verificar o forno
!remind 2h Reunião com a equipe
!remind amanhã 15:00 Entrega do projeto

```

### Sistema de níveis e XP

[](#sistema-de-níveis-e-xp)

O bot agora rastreia a atividade dos usuários e concede XP automaticamente. Para ver o seu nível ou o ranking:

```
!level
!rank

```

### Slash Commands

[](#slash-commands)

O bot suporta slash commands. Para registrar comandos, execute:

```
php artisan bot:register-commands
```

### Sistema de Reaction Roles

[](#sistema-de-reaction-roles)

Configure reaction roles para permitir que membros obtenham cargos ao reagir a mensagens:

```
use LucasGiovanni\DiscordBotInstaller\Facades\DiscordBot;

// Configurar uma mensagem de reaction role
DiscordBot::createReactionRole($channelId, $messageId, [
    '👍' => 'ID_DO_CARGO_1',
    '🎮' => 'ID_DO_CARGO_2',
    '🎵' => 'ID_DO_CARGO_3',
]);
```

Você também pode usar o comando:

```
!reactionrole create #channel-name

```

### Sistema de Tickets

[](#sistema-de-tickets)

Para utilizar o sistema de tickets:

```
!ticket setup #canal-suporte   // Configura o canal para tickets
!ticket create                  // Cria um novo ticket
!ticket close                   // Fecha o ticket atual

```

### Sistema de Economia

[](#sistema-de-economia)

O bot inclui um sistema completo de economia virtual:

```
!coins                  // Mostra seus coins
!daily                  // Resgata recompensa diária
!shop                   // Mostra a loja
!buy              // Compra um item da loja
!transfer @user  // Transfere coins para outro usuário

```

### Giveaways

[](#giveaways)

Para criar sorteios no servidor:

```
!giveaway start 1h Um título legal // Inicia um sorteio que durará 1 hora
!giveaway end                  // Finaliza um sorteio
!giveaway reroll               // Sorteia um novo vencedor

```

### Eventos

[](#eventos)

Para gerenciar eventos temporários:

```
!event create "Título do Evento" "Descrição" 2023-12-31 20:00
!event list
!event info
!event join
!event leave

```

### Componentes Interativos

[](#componentes-interativos)

O bot suporta botões, menus dropdown e outros componentes interativos da API do Discord:

```
use LucasGiovanni\DiscordBotInstaller\Facades\DiscordBot;

// Enviar mensagem com botões
DiscordBot::sendButtons($channelId, 'Escolha uma opção:', [
    ['label' => 'Opção 1', 'style' => 'primary', 'custom_id' => 'option_1'],
    ['label' => 'Opção 2', 'style' => 'secondary', 'custom_id' => 'option_2'],
]);

// Enviar menu dropdown
DiscordBot::sendSelectMenu($channelId, 'Selecione seu cargo:', [
    ['label' => 'Programador', 'value' => 'programmer', 'description' => 'Para desenvolvedores'],
    ['label' => 'Designer', 'value' => 'designer', 'description' => 'Para designers'],
]);
```

### Auto-Moderação

[](#auto-moderação)

Configure regras de auto-moderação para seu servidor:

```
!automod setup
!automod word add     // Adiciona uma palavra à lista de palavras proibidas
!automod word remove  // Remove uma palavra da lista
!automod links         // Ativa/desativa bloqueio de links
!automod spam          // Ativa/desativa proteção contra spam
!automod punish  // Define a punição para violações

```

Middleware
----------

[](#middleware)

Use o sistema de middleware para filtrar comandos:

```
namespace App\Discord\Middleware;

use LucasGiovanni\DiscordBotInstaller\Middleware\Middleware;
use Discord\Parts\Channel\Message;

class MeuMiddleware implements Middleware
{
    public function handle(Message $message, callable $next)
    {
        // Sua lógica aqui

        // Continue para o próximo middleware
        return $next($message);
    }
}
```

Módulos e plugins
-----------------

[](#módulos-e-plugins)

Você pode estender o bot com módulos:

1. Crie um módulo em `app/DiscordModules/MeuModulo`
2. Crie um service provider para o módulo
3. Registre-o em `config/discordbot.php`

```
'modules' => [
    'enabled' => true,
    'active' => [
        'meumodulo' => true,
    ],
],
```

Traduções e suporte multi-idioma
--------------------------------

[](#traduções-e-suporte-multi-idioma)

O bot suporta múltiplos idiomas:

```
'localization' => [
    'default' => 'pt_BR',
    'fallback' => 'en',
    'server_specific' => true,
],
```

Comandos Artisan
----------------

[](#comandos-artisan)

- `php artisan bot:install` - Instala e configura o bot
- `php artisan bot:run` - Inicia o bot
- `php artisan bot:create-command {nome}` - Cria um novo comando para o bot
- `php artisan bot:create-slash-command {nome}` - Cria um novo slash command
- `php artisan bot:process-reminders` - Processa lembretes pendentes
- `php artisan bot:cleanup-warnings` - Limpa advertências expiradas
- `php artisan bot:publish-module {nome}` - Publica um módulo
- `php artisan bot:generate-welcome-image` - Gera template de imagem de boas-vindas
- `php artisan bot:register-reaction-roles` - Sincroniza reaction roles
- `php artisan bot:process-giveaways` - Processa sorteios ativos

API de Estatísticas
-------------------

[](#api-de-estatísticas)

O pacote fornece uma API de estatísticas que pode ser consumida pelo seu aplicativo Laravel:

```
use LucasGiovanni\DiscordBotInstaller\Facades\DiscordStats;

// Obter estatísticas gerais
$stats = DiscordStats::getGeneralStats();

// Obter estatísticas de comandos
$commandStats = DiscordStats::getCommandStats();

// Obter estatísticas de usuários
$userStats = DiscordStats::getUserStats($serverId);
```

Webhooks Customizáveis
----------------------

[](#webhooks-customizáveis)

Crie webhooks para integrar o Discord com outros sistemas:

```
use LucasGiovanni\DiscordBotInstaller\Facades\DiscordBot;

// Criar um webhook
$webhook = DiscordBot::createWebhook('meu-webhook', $channelId);

// Para usar o webhook
$webhookUrl = route('discord.webhook', ['id' => $webhook->id]);

// Enviar dados para o webhook
DiscordBot::executeWebhook($webhook->id, [
    'content' => 'Mensagem do sistema externo',
    'embeds' => [
        [
            'title' => 'Título do embed',
            'description' => 'Descrição do embed',
            'color' => 0x00FF00,
        ]
    ]
]);
```

Criando comandos personalizados
-------------------------------

[](#criando-comandos-personalizados)

1. Crie uma classe para seu comando:

```
