Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Discord Bot Configuration
DISCORD_TOKEN=your_bot_token_here
CLIENT_ID=your_application_id_here
GUILD_ID=your_guild_id_here

# Bot Settings
PREFIX=!
OWNER_ID=your_discord_user_id

# Logging
LOG_LEVEL=info
18 changes: 18 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"env": {
"node": true,
"es2021": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"rules": {
"no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }],
"no-console": "off",
"indent": ["error", 2],
"quotes": ["error", "single"],
"semi": ["error", "always"]
}
}
30 changes: 29 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,36 @@
# OS files
.DS_Store
Thumbs.db

# Logs
*.log
logs/

# Dependency directories
node_modules/
# Env
package-lock.json
yarn.lock

# Environment variables
.env
.env.local
.env.production

# IDE
.vscode/
.idea/
*.swp
*.swo

# Build output
dist/
build/

# Temporary files
/tmp/
*.tmp

# Data files
data/
*.db
*.sqlite
168 changes: 168 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# Contributing to 5ive Discord Bot

¡Gracias por tu interés en contribuir a 5ive! Este documento proporciona pautas para contribuir al proyecto.

## 🤝 Cómo Contribuir

### Reportar Bugs

Si encuentras un bug, por favor crea un issue con:
- Descripción clara del problema
- Pasos para reproducir el bug
- Comportamiento esperado vs comportamiento actual
- Versión de Node.js y Discord.js
- Logs relevantes (sin información sensible)

### Sugerir Mejoras

Para sugerir nuevas características:
- Verifica que la funcionalidad no exista ya
- Describe claramente el caso de uso
- Explica por qué beneficiaría al proyecto

### Pull Requests

1. **Fork el repositorio** y crea una rama desde `main`
```bash
git checkout -b feature/nombre-de-la-feature
```

2. **Realiza tus cambios** siguiendo las guías de estilo

3. **Prueba tus cambios** localmente:
```bash
npm install
npm run deploy
npm start
```

4. **Commit tus cambios** con mensajes descriptivos:
```bash
git commit -m "feat: añadir comando de música"
```

5. **Push a tu fork** y crea un Pull Request

## 📝 Guías de Estilo

### Código JavaScript

- Usa ES6+ features (async/await, arrow functions, etc.)
- Usa comillas simples para strings
- Indentación de 2 espacios
- Nombres de variables en camelCase
- Nombres de archivos en kebab-case
- Añade JSDoc para funciones complejas

### Estructura de Comandos

```javascript
import { SlashCommandBuilder } from 'discord.js';
import { createEmbed } from '../../utils/helpers.js';

export default {
category: 'Categoría',
cooldown: 5, // opcional
data: new SlashCommandBuilder()
.setName('nombre')
.setDescription('Descripción clara'),

async execute(interaction) {
// Implementación
},
};
```

### Estructura de Eventos

```javascript
import { Events } from 'discord.js';

export default {
name: Events.EventName,
once: false,
async execute(...args) {
// Implementación
},
};
```

## ✅ Checklist de Pull Request

Antes de enviar tu PR, asegúrate de que:

- [ ] El código sigue las guías de estilo del proyecto
- [ ] Has probado tus cambios localmente
- [ ] Has actualizado la documentación si es necesario
- [ ] Tu PR tiene una descripción clara de los cambios
- [ ] No incluyes cambios no relacionados
- [ ] No subes archivos sensibles (.env, tokens, etc.)

## 🧪 Testing

Antes de hacer un PR:

1. Prueba el bot en un servidor de prueba
2. Verifica que los comandos existentes sigan funcionando
3. Prueba casos edge (usuarios sin permisos, inputs inválidos, etc.)
4. Verifica que no haya errores en la consola

## 📋 Convenciones de Commit

Usa prefijos semánticos en tus commits:

- `feat:` Nueva característica
- `fix:` Corrección de bug
- `docs:` Cambios en documentación
- `style:` Cambios de formato (sin afectar código)
- `refactor:` Refactorización de código
- `test:` Añadir o modificar tests
- `chore:` Tareas de mantenimiento

Ejemplos:
```
feat: añadir comando de música
fix: corregir cooldown en comando ban
docs: actualizar README con nuevos comandos
refactor: mejorar sistema de logging
```

## 🚫 Qué NO hacer

- No subas código que contenga tokens o credenciales
- No hagas cambios masivos sin discutir primero
- No copies código de otros proyectos sin verificar la licencia
- No añadas dependencias innecesarias
- No modifiques archivos de configuración sin razón

## 💡 Ideas para Contribuir

Si no sabes por dónde empezar, aquí hay algunas ideas:

- Añadir más comandos de utilidad
- Mejorar el sistema de logging
- Añadir tests automatizados
- Mejorar la documentación
- Traducir la documentación
- Optimizar el rendimiento
- Añadir más eventos personalizables
- Crear comandos de economía/niveles
- Implementar sistema de tickets
- Añadir comandos de música

## 📞 Contacto

Si tienes preguntas sobre cómo contribuir:
- Abre un issue con la etiqueta "question"
- Únete a nuestro servidor de Discord (si existe)

## 📜 Código de Conducta

- Sé respetuoso con otros contribuidores
- Acepta críticas constructivas
- Enfócate en lo mejor para el proyecto
- Mantén un ambiente positivo y colaborativo

---

¡Gracias por contribuir a 5ive! 🎉
73 changes: 73 additions & 0 deletions DOCKER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# 🐳 Docker Deployment

## Quick Start with Docker

### Using Docker Compose (Recommended)

1. **Setup environment variables**
```bash
cp .env.example .env
# Edit .env with your configuration
```

2. **Start the bot**
```bash
docker-compose up -d
```

3. **View logs**
```bash
docker-compose logs -f
```

4. **Stop the bot**
```bash
docker-compose down
```

### Using Docker directly

1. **Build the image**
```bash
docker build -t 5ive-discord-bot .
```

2. **Run the container**
```bash
docker run -d \
--name 5ive-bot \
--env-file .env \
--restart unless-stopped \
5ive-discord-bot
```

## Commands

### Deploy slash commands
```bash
docker-compose run --rm discord-bot node src/deploy-commands.js
```

### View logs
```bash
docker-compose logs -f discord-bot
```

### Restart bot
```bash
docker-compose restart discord-bot
```

### Update bot
```bash
git pull
docker-compose up -d --build
```

## Production Tips

- Use Docker secrets for sensitive data
- Set up log rotation
- Monitor resource usage
- Use health checks
- Configure auto-restart policies
22 changes: 22 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
FROM node:18-alpine

WORKDIR /app

# Copy package files
COPY package*.json ./

# Install dependencies
RUN npm ci --only=production

# Copy source code
COPY src/ ./src/

# Create non-root user
RUN addgroup -g 1001 -S nodejs && \
adduser -S nodejs -u 1001 && \
chown -R nodejs:nodejs /app

USER nodejs

# Start the bot
CMD ["node", "src/index.js"]
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 5ive Discord Bot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading