An all purpose discord bot.
  • Go 99.1%
  • Dockerfile 0.9%
Find a file
oauth c61a9ad8ff
All checks were successful
ci/woodpecker/push/0-check Pipeline was successful
ci/woodpecker/push/99-release Pipeline was successful
ci/woodpecker/tag/0-check Pipeline was successful
ci/woodpecker/release/0-check Pipeline was successful
ci/woodpecker/release/1-docker Pipeline was successful
🎉 Release 0.2.0 (#12)
This PR was opened by the [ready-release-go](https://github.com/woodpecker-ci/plugin-ready-release-go) plugin. When you're ready to do a release, you can merge this pull-request and a new release with version `0.2.0` will be created automatically. If you're not ready to do a release yet, that's fine, whenever you add more changes to `main` this pull-request will be updated.

## Options

- [ ] Mark this version as a release candidate

## [0.2.0](https://git.hackmi.ch/hackmi.ch/NexaCore/releases/tag/0.2.0) - 2026-03-24

### 📈 Enhancement

- refactor/fix: cleanup code and fix permissions bug [[#13](#13)]

### 📦️ Dependency

- Update golang Docker tag to v1.26 [[#11](#11)]

Reviewed-on: #12
Co-authored-by: oauth <release-bot@noreply.git.hackmi.ch>
Co-committed-by: oauth <release-bot@noreply.git.hackmi.ch>
2026-03-24 19:21:45 +01:00
.woodpecker Added Dockerfile and CI Docker Build (#10) 2026-02-24 21:50:07 +01:00
bot refactor/fix: cleanup code and fix permissions bug (#13) 2026-03-24 19:16:33 +01:00
config Add SQLite database support and clean up config setup (#6) 2026-02-24 17:52:28 +01:00
database refactor/fix: cleanup code and fix permissions bug (#13) 2026-03-24 19:16:33 +01:00
utils refactor/fix: cleanup code and fix permissions bug (#13) 2026-03-24 19:16:33 +01:00
.gitignore Add SQLite database support and clean up config setup (#6) 2026-02-24 17:52:28 +01:00
CHANGELOG.md 🎉 Release 0.2.0 (#12) 2026-03-24 19:21:45 +01:00
Dockerfile Update golang Docker tag to v1.26 2026-02-24 22:13:47 +00:00
go.mod Added TempChannel feature and logic (#8) 2026-02-24 21:30:49 +01:00
go.sum Added TempChannel feature and logic (#8) 2026-02-24 21:30:49 +01:00
LICENSE Initial commit 2026-02-23 16:15:31 +01:00
main.go Added TempChannel feature and logic (#8) 2026-02-24 21:30:49 +01:00
README.md refactor/fix: cleanup code and fix permissions bug (#13) 2026-03-24 19:16:33 +01:00
renovate.json [renovate] Added label and prhourly limit (#4) 2026-02-23 17:14:21 +01:00

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 data/nexacore.db Path to SQLite database file
DEBUG No false Enable debug logging

🚀 Getting Started

  1. Clone the repository
  2. Create a .env file with your Discord bot token:
    TOKEN=your_discord_bot_token_here
    
  3. 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.