https://github.com/rdev32/toari-bot
https://github.com/rdev32/toari-bot
Last synced: 12 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/rdev32/toari-bot
- Owner: rdev32
- License: mit
- Created: 2024-08-30T03:29:09.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-02-24T00:25:01.000Z (4 months ago)
- Last Synced: 2026-02-24T07:25:47.227Z (4 months ago)
- Language: TypeScript
- Size: 105 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 🤖 Toari Bot
Bot de Discord desarrollado en TypeScript para comunidades de habla hispana. Permite a los usuarios interactuar entre si, crear invitaciones para partidas de Phasmophobia y enviar reportes directamente a los moderadores del servidor.
## ✨ Comandos
| Comando | Descripcion |
| ------------------ | --------------------------------------------------------------- |
| `/ayuda` | Muestra la lista de comandos disponibles |
| `/phasmo ` | Crea una tarjeta de invitacion para una partida de Phasmophobia |
| `/poke` | Envia un toque a un miembro aleatorio del servidor |
| `/report ` | Crea un reporte privado para los moderadores |
## 🛠️ Tecnologias
- [TypeScript](https://www.typescriptlang.org/)
- [discord.js v14](https://discord.js.org/)
- [Drizzle ORM](https://orm.drizzle.team/)
- [libSQL / SQLite](https://turso.tech/libsql)
- [dotenv](https://github.com/motdotla/dotenv)
## 📋 Requisitos previos
- Node.js 18 o superior
- Una cuenta de Discord Developer y un bot registrado en el [Portal de Desarrolladores](https://discord.com/developers/applications)
## 🚀 Instalacion
**1. Clona el repositorio**
```bash
git clone https://github.com/rdev32/toari-bot.git
cd toari-bot
```
**2. Instala las dependencias**
```bash
npm install
```
**3. Configura las variables de entorno**
Copia el archivo de ejemplo y completa los valores:
```bash
cp .env.sample .env
```
| Variable | Descripcion |
| -------------- | -------------------------------------------------------------------- |
| `TOKEN` | Token del bot obtenido desde el Portal de Desarrolladores |
| `CLIENT` | ID de la aplicacion del bot |
| `PERMISSIONS` | Entero de permisos para el link de invitacion (puede dejarse en `0`) |
| `DB_FILE_NAME` | Ruta al archivo SQLite, por ejemplo `file:toari.db` |
**4. Genera el link de invitacion** _(opcional)_
```bash
npm run build
npm run invite
```
**5. Registra los slash commands en Discord**
Este paso es necesario la primera vez y cada vez que agregues o modifiques comandos:
```bash
npm run build
npm run upload
```
**6. Inicia el bot**
En modo desarrollo:
```bash
npm run dev
```
En produccion:
```bash
npm run build
npm start
```
## 📁 Estructura del proyecto
```
src/
├── app.ts # Inicializacion del cliente, carga de comandos y eventos
├── index.ts # Punto de entrada, login del bot
├── commands/
│ ├── help.command.ts
│ ├── phasmo.command.ts
│ ├── poke.command.ts
│ └── report.command.ts
├── db/
│ └── schema.ts # Esquema de base de datos con Drizzle ORM
├── events/
│ ├── interaction.event.ts
│ └── ready.event.ts
└── utils/
├── invite.ts # Genera el link de invitacion al servidor
└── load.ts # Registra los slash commands en la API de Discord
```
## 🗄️ Base de datos
El bot utiliza SQLite a traves de Drizzle ORM. El esquema define dos tablas:
- **`users`** — Almacena informacion de los usuarios de Discord (id, tag, fecha de creacion).
- **`reports`** — Almacena los reportes creados con `/report`, vinculados al usuario y servidor.
## 📜 Licencia
Distribuido bajo la licencia [MIT](./LICENSE). © 2024 Renato Monroy.