# Benson Mod Manager from hell, for Willy World ## Setup ```bash npm install ``` ## Configuration ### `config/config.json` ```json { "channel_id": "YOUR_CHANNEL_ID_HERE", "check_interval_minutes": 60, "minecraft_version": "1.21.10", "fabric_loader_version": "0.17.3", "loader_meta_version": "1.1.0", "java_path": null, "server_location": "C:/path/to/your/server", "backup_location": "C:/path/to/backups", "modrinth_mods": [ "fabric-api", "lithium", "simple-voice-chat" ] } ``` ### `config/api.json` (for Discord bot) ```json { "token": "your-bot-token-here" } ``` ## Discord Bot Monitors Modrinth for mod updates and posts compatibility reports to a Discord channel. ```bash npm run bot ``` ## Server Manager CLI Interactive CLI for managing mods and server files. ```bash npm run benson ``` ``` ╔══════════════════════════════════════╗ ║ BENSON CLI v1.0 ║ ║ Fabric Server for MC 1.21.10 ║ ╚══════════════════════════════════════╝ Type 'help' for commands. benson> _ ``` ### Commands | Command | Description | |---------|-------------| | `list-mods` | List configured mods | | `check` | Check if all mods are compatible before generating | | `generate` | Download mods + server, run to generate files | | `merge` | Backup server, move generated files to server location | | `clean generated` | Remove server directory | | `clean latest` | Remove latest backup zip | | `clean all` | Remove both generated and latest backup | | `help` | Show available commands | | `exit` | Exit the CLI | ## Project Structure ``` Benson/ ├── lib/ │ ├── modrinth.js # Shared Modrinth API functions │ └── config.js # Shared config/cache utilities ├── bot/ │ └── app.js # Discord bot ├── cli/ │ ├── app.js # CLI entry point │ └── commands/ │ ├── check.js # Check command │ ├── clean.js # Clean commands │ ├── generate.js # Generate command │ ├── list.js # List-mods command │ └── merge.js # Merge command ├── config/ │ ├── config.json # Main configuration │ └── api.json # Discord token (not in repo) ├── cache/ # Version cache (auto-generated) └── server/ # Server files (auto-generated) ```