ia_bot/README.md
Benjamyn 43ca943cb8 feat: A.B.I.N.A.S.H Discord bot with GIF emotes, slash commands, and music
- Core bot with slash command tree (discord.py 2.7.x compatible)
- Commands: /ping, /info, /hello, /emoji, /app-emoji
- Admin: /upload-emoji, /list-emojis, /delete-emoji
- GIF emote detection and reaction handling
- Message reactions with percentage-based triggers and cooldowns
- Voice/music cog with YTDLSource, skip, volume, pause, resume, stop
- Global error handler and voice state change logging
- Environment config via .env (DISCORD_TOKEN, COMMAND_PREFIX, etc.)
2026-08-27 16:05:27 +10:00

115 lines
3.1 KiB
Markdown

# A.B.I.N.A.S.H — Automated Bot Ignoring Nitro And Sending Here
```
A.B.I.N.A.S.H
Automated Bot
Ignoring Nitro
And Sending
Here
```
## Features
- **GIF Emote Support** — Send string in Discord channel, bot detects and responds with the appropriate GIF emote
- **Admin Panel / Commands** — Add, manage, and remove emotes (both GIF and standard)
- **Runtime Command Loading** — Commands loaded from `commands/` subdirectory
- **Voice Channel Support** — Music playback, AI voice support via FFmpegOpusAudio
- **Message Reactions** — React to members' messages with pre-defined emotes with a percentage chance
- **Slash Commands** — Full `/ping`, `/hello`, `/emoji`, `/upload-emoji`, `/list-emojis`, `/delete-emoji`
## Quick Start
```bash
# Clone and set up
cd /home/ben/Documents/Projects/ia_bot
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Copy environment template
cp .env.example .env
# Edit .env and add your DISCORD_TOKEN
# Run the bot
python main.py
```
## Project Structure
```
ia_bot/
├── .env.example # Environment variables template
├── .gitignore
├── main.py # Entry point
├── requirements.txt # Dependencies
├── bot.py # Core bot with slash commands
├── README.md
├── commands/ # Slash command modules
│ ├── __init__.py
│ ├── ping.py # /ping, /info
│ ├── hello.py # /hello
│ ├── emoji.py # /emoji, /app-emoji
│ └── admin.py # /list-emojis, /create-emoji, /delete-emoji
├── handlers/ # Event handlers
│ ├── __init__.py
│ ├── gif_emotes.py # GIF emote detection & sending
│ ├── reactions.py # Reaction handler with cooldowns
│ └── voice.py # MusicCog with YTDLSource
├── cogs/ # Discord.py cogs
│ ├── __init__.py
│ └── admin.py # Emoji management cog
└── config/ # Config files (gitignored)
└── bot.json
```
## Commands Reference
### Slash Commands
| Command | Description |
|---------|-------------|
| `/ping` | Check bot latency |
| `/info` | Show bot info |
| `/hello <name>` | Greet someone |
| `/emoji :name:` | Send a custom emoji |
| `/app-emoji <id>` | Fetch an app-owned emoji |
| `/list-emojis` | List all custom emojis (admin) |
| `/create-emoji <name> <file_path>` | Upload an emoji (admin) |
| `/delete-emoji <name>` | Delete an emoji (admin) |
### Text Commands
| Command | Description |
|---------|-------------|
| `!join <channel>` | Join a voice channel |
| `!play <url>` | Play a track |
| `!skip` | Skip current track |
| `!volume <level>` | Set volume (0-100) |
| `!pause` | Pause playback |
| `!resume` | Resume playback |
| `!stop` | Stop and disconnect |
| `!queue` | Show the queue |
## Configuration
Create a `.env` file:
```env
DISCORD_TOKEN=your_bot_token_here
COMMAND_PREFIX=!
BOT_NAME=A.B.I.N.A.S.H
GUILD_IDS=123456789,987654321
```
## Dependencies
- `discord.py==2.3.2`
- `discordemojiparser==1.0.0`
- `youtube-dl==2021.12.17`
- `aiohttp==3.9.1`
- `pydantic==2.5.0`
## License
MIT