Files
dc-bot/README.md

62 lines
2.6 KiB
Markdown

# SHSF Discord Bot
Official Discord bot for the SHSF community, built with modularity and extensibility in mind. This bot provides a framework for handling commands, events, startup routines, and web endpoints, allowing for easy addition of new features.
## Features
- **Command Handling:** Add commands in `src/commands/` and register them via `src/handlers/registerCommands.ts`.
- **Event Listeners:** Handle Discord events in `src/listeners/`, grouped by event type.
- **Startup Routines:** Add startup logic in `src/handlers/startup/` and load via `src/lib/loadStartupHandlers.ts`.
- **Web Endpoints:** Serve bot-related endpoints from `src/web/` using `src/webserver.ts`.
- **Centralized Configuration:** Manage settings in `src/config.ts`.
## Project Structure
```
src/
commands/ # Bot commands (e.g., ping.ts)
handlers/ # Command registration & startup routines
startup/ # Startup logic (e.g., rotatingActivity.ts)
listeners/ # Discord event handlers (e.g., messageCreate/logMessage.ts)
lib/ # Shared utilities (e.g., commandRegistry.ts)
web/ # Web endpoints (e.g., gitCommit.ts)
config.ts # Bot configuration
types.ts # Type definitions
webserver.ts # Web server entry point
index.ts # Bot entry point
```
## Getting Started
1. **Install dependencies:**
```bash
pnpm install
```
2. **Configure the bot:**
Edit `src/config.ts` with your Discord bot token and settings.
3. **Run the bot:**
```bash
pnpm start
# or
node src/index.ts
```
## Adding Features
- **New Command:** Create a file in `src/commands/`, register in `src/handlers/registerCommands.ts`.
- **New Event Handler:** Add a handler in the relevant `src/listeners/<Event>/` folder.
- **Startup Routine:** Implement in `src/handlers/startup/`, register via `src/lib/loadStartupHandlers.ts`.
- **Web Endpoint:** Add to `src/web/`, served by `src/webserver.ts`.
## Development Notes
- Uses [pnpm](https://pnpm.io/) for dependency management.
- No tests or linting scripts by default; add as needed in `package.json`.
- Modular structure allows easy debugging and targeted development.
## References
- [src/index.ts](src/index.ts): Bot entry point
- [src/webserver.ts](src/webserver.ts): Web server entry point
- [src/handlers/registerCommands.ts](src/handlers/registerCommands.ts): Command registration
- [src/lib/commandRegistry.ts](src/lib/commandRegistry.ts): Command registry utility
- [src/listeners/messageCreate/logMessage.ts](src/listeners/messageCreate/logMessage.ts): Example event handler
---
For questions or improvements, see `.github/copilot-instructions.md`.