PHP code example of lucasgiovanni / laravel-discord-bot-installer

1. Go to this page and download the library: Download lucasgiovanni/laravel-discord-bot-installer library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

lucasgiovanni / laravel-discord-bot-installer example snippets


// 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! 👋',
],

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

'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),
    ],
],

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

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',
]);

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'],
]);

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);
    }
}

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

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

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);

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,
        ]
    ]
]);



namespace App\Discord\Commands;

use Discord\Discord;
use Discord\Parts\Channel\Message;
use LucasGiovanni\DiscordBotInstaller\Services\DiscordLogger;

class MeuComandoPersonalizado
{
    protected $discord;
    protected $logger;
    
    public function __construct(Discord $discord, DiscordLogger $logger)
    {
        $this->discord = $discord;
        $this->logger = $logger;
    }
    
    public function handle(Message $message, array $args = []): void
    {
        $message->channel->sendMessage('Este é meu comando personalizado!');
    }
    
    // Opcional: informações de ajuda para o comando !help
    public function getHelp(): array
    {
        return [
            'usage' => '[argumento]',
            'examples' => ['exemplo1', 'exemplo2'],
            'notes' => 'Observações adicionais sobre o comando.'
        ];
    }
}

'commands' => [
    'meucomando' => [
        'description' => 'Meu comando personalizado',
        'handler' => \App\Discord\Commands\MeuComandoPersonalizado::class,
    ],
],

use LucasGiovanni\DiscordBotInstaller\Facades\DiscordBot;

// Enviar uma mensagem
DiscordBot::sendMessage($channelId, 'Olá do Laravel!');

// Adicionar XP a um usuário
DiscordBot::addUserExperience($userId, $guildId, 50);

// Criar um lembrete
DiscordBot::createReminder($userId, $channelId, 'Fazer algo importante', now()->addHour());

// Gerar imagem de boas-vindas
DiscordBot::generateWelcomeImage($userId, $guildId, 'Bem-vindo ao servidor!');

// Adicionar coins a um usuário
DiscordBot::addCoins($userId, $guildId, 500);

// Criar um sorteio
DiscordBot::createGiveaway($channelId, 'Prêmio legal', Carbon::now()->addDay(), 1);

'logging' => [
    'enabled' => true,
    'file' => storage_path('logs/discordbot.log'),
    'level' => env('DISCORD_LOG_LEVEL', 'info'),
    'discord_channel' => env('DISCORD_LOG_CHANNEL', false),
    'database' => env('DISCORD_LOG_TO_DATABASE', false),
],

'queue' => [
    'enabled' => true,
    'connection' => env('DISCORD_QUEUE_CONNECTION', 'redis'),
    'heavy_commands' => [
        'ban', 'kick', 'poll', 'remind'
    ],
],

'sharding' => [
    'enabled' => true,
    'total_shards' => 'auto', // 'auto' ou número
],
bash
php artisan bot:install
bash
php artisan migrate
bash
php artisan bot:run
bash
php artisan bot:run --debug
bash
php artisan bot:register-commands