Um sistema de pontos para Discord com integração MongoDB e Google Sheets, focado em competição entre gangs.
- Sistema de pontos baseado em gangs
- Rastreamento de atividades em canais específicos
- Leaderboards semanais e totais
- Reset automático semanal com backup no Google Sheets
- Sistema de categorização de pontos (atividade em mensagens, games, arte/memes)
- Cooldown e detecção de mensagens duplicadas
- Dashboard web para visualização de estatísticas (em desenvolvimento)
/leaderboard [gang]- Ver o ranking geral ou de uma gang específica/weeklyLeaderboard [gang]- Ver o ranking semanal/ganginfo [gang]- Ver informações detalhadas sobre uma gang/userinfo [user]- Ver pontos e estatísticas de um usuário/help- Mostra todos os comandos disponíveis
/awardpoints user:@user points:10 [reason]- Atribuir pontos a um usuário/simulateweeklyreset- Simula o reset semanal (apenas para testes)/resetallpoints- Reseta todos os pontos (use com cautela)
- Usuários ganham pontos enviando mensagens no canal de sua gang
- Cada mensagem válida dá 1 ponto (contabilizado como "Message Activity")
- Mensagens precisam ter pelo menos 5 caracteres
- Saudações comuns e mensagens duplicadas não contam
- Cooldown de 5 minutos entre mensagens que dão pontos
- Message Activity: pontos por mensagens nos canais
- Games: pontos por participação em jogos e competições
- Art & Memes: pontos por contribuições artísticas
- Other: pontos por outras atividades
- Acontece todo domingo à meia-noite (00:00 UTC)
- Exporta os rankings para uma nova aba no Google Sheets
- Reseta os pontos semanais de usuários e gangs
- Mantém o histórico de todas as semanas
- Node.js 16+
- MongoDB 4.4+
- Conta Google com API Sheets habilitada
- Bot do Discord com as seguintes permissões:
- Manage Roles
- Send Messages
- Read Message History
- View Channels
- Clone o repositório
- Instale as dependências:
npm install - Configure as variáveis de ambiente no arquivo
.env:
DISCORD_TOKEN=seu_token_do_discord
MONGODB_URI=sua_uri_do_mongodb
GOOGLE_SHEET_ID=id_da_sua_planilha
GUILD_ID=id_do_seu_servidor- Configure as credenciais do Google Sheets:
- Coloque o arquivo
google-credentials.jsonna raiz do projeto
- Coloque o arquivo
- Configure as gangs em
config/gangs.js - Deploy dos comandos:
npm run deploy - Inicie o bot:
npm start
- username: Nome do usuário
- points: Pontos totais
- weeklyPoints: Pontos semanais
- gangPoints: Array com pontos em cada gang
- currentGangId: ID da gang atual
- name: Nome da gang
- points: Pontos totais
- weeklyPoints: Pontos semanais
- memberCount: Número de membros
- pointsBreakdown: Detalhamento dos pontos
- Cada reset semanal cria uma nova aba (Week_1, Week_2, etc.)
- Armazena ranking de usuários e gangs
- Mantém histórico completo de pontuações
- Inclui breakdown de pontos por categoria
- Fork o repositório
- Crie uma branch para sua feature:
git checkout -b feature/nova-feature - Commit suas mudanças:
git commit -m 'Adiciona nova feature' - Push para a branch:
git push origin feature/nova-feature - Abra um Pull Request
ISC
Desenvolvido por Karatekid05