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
.env file 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.