forked from hackmi.ch/NexaCore
An all purpose discord bot.
- Go 99.2%
- Dockerfile 0.8%
| .woodpecker | ||
| bot | ||
| config | ||
| database | ||
| utils | ||
| .gitignore | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| README.md | ||
| renovate.json | ||
NexaCore
An all-purpose Discord bot written in Go, featuring temporary voice channel management and more.
📋 Commands
| Command | Description |
|---|---|
/spawn create |
Create a new spawn channel in a specified category |
/spawn register |
Register an existing voice channel as a spawn channel |
/spawns |
List all spawn channels in the current guild |
/unspawn |
Remove a spawn channel registration |
/checkperms |
Check if the bot has required permissions |
✨ Features
| Feature | Description |
|---|---|
| Temporary Voice Channels | Users can create their own temporary voice channels by joining a spawn channel |
| Admin Text Channels | Each temp channel gets a private admin text channel for the owner |
| User Preferences | Users can customize their channel name and allowed roles |
| Auto Cleanup | Temporary channels are automatically deleted when empty |
| Permission Management | Bot validates required permissions before operations |
⚙️ Configuration
| Environment Variable | Required | Default | Description |
|---|---|---|---|
TOKEN |
✅ Yes | - | Discord bot token |
DATABASE_PATH |
❌ No | nexacore.db |
Path to SQLite database file |
DEBUG |
❌ No | false |
Enable debug logging |
🚀 Getting Started
- Clone the repository
- Create a
.envfile with your Discord bot token:TOKEN=your_discord_bot_token_here - Run the bot:
go run main.go
📁 Project Structure
NexaCore/
├── main.go # Application entry point
├── bot/
│ ├── bot.go # Bot initialization and lifecycle
│ ├── session.go # Discord session management
│ ├── commands/ # Slash command definitions
│ │ ├── commands.go # Command registration router
│ │ ├── checkperms.go # Permission check command
│ │ ├── spawn.go # Spawn channel creation
│ │ ├── spawns.go # List spawn channels
│ │ └── unspawn.go # Remove spawn channel
│ ├── events/ # Discord event handlers
│ │ ├── interaction.go # Button/modal interactions
│ │ ├── ready.go # Bot ready event
│ │ └── voice.go # Voice state events
│ └── features/ # Feature modules
│ └── tempchannel/ # Temporary channel system
│ ├── manager.go # Channel creation/deletion
│ ├── panel.go # Control panel UI
│ ├── buttons.go # Button handlers
│ ├── modals.go # Modal dialogs
│ ├── messages.go # Message utilities
│ └── verify.go # Verification logic
├── config/
│ └── env.go # Environment configuration
├── database/
│ ├── database.go # Database connection
│ ├── queries.go # Common queries
│ ├── spawnchannel.go # Spawn channel CRUD
│ ├── tempchannel.go # Temp channel CRUD
│ └── userprefs.go # User preferences CRUD
└── utils/
└── permissions.go # Permission utilities
📄 License
This project is licensed under the terms specified in the LICENSE file.