- Added hunt/feed duck mechanics (80% hunt, 20% feed) - Implemented persistent scoring system - Added channel control commands (\!stopducks/\!startducks) - Enhanced duck hunt with wrong action penalties - Organized bot structure with botmain.js as main file - Added comprehensive documentation (README.md) - Included 17 plugins with various games and utilities 🦆 Duck Hunt Features: - Hunt ducks with \!shoot/\!bang (80% of spawns) - Feed ducks with \!feed (20% of spawns) - Persistent scores saved to JSON - Channel-specific controls for #bakedbeans - Reaction time tracking and special achievements 🎮 Other Games: - Casino games (slots, coinflip, hi-lo, scratch cards) - Multiplayer games (pigs, zombie dice, quiplash) - Text generation (babble, conspiracy, drunk historian) - Interactive features (story writing, emojify, combos) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
135 lines
No EOL
4.1 KiB
Markdown
135 lines
No EOL
4.1 KiB
Markdown
# CancerBot - IRC Bot with Plugin System
|
|
|
|
An IRC bot for #bakedbeans on irc.libera.chat with a comprehensive plugin system and various games.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Run the main bot
|
|
node botmain.js
|
|
```
|
|
|
|
## Bot Configuration
|
|
|
|
- **Server**: irc.libera.chat:6667
|
|
- **Nickname**: cancerbot
|
|
- **Channel**: #bakedbeans
|
|
- **Command Prefix**: !
|
|
|
|
## Main Files
|
|
|
|
- `botmain.js` - **Main bot file** (run this one)
|
|
- `complete_irc_bot.js` - Alternative bot without debug features
|
|
- `bot_template.js` - Template for reference
|
|
- `plugin_template.js` - Plugin development template
|
|
|
|
## Duck Hunt Plugin (Enhanced)
|
|
|
|
The duck hunt game has been enhanced with a hunt/feed system for more engaging gameplay.
|
|
|
|
### Game Mechanics
|
|
- **80% Hunt Ducks**: Require `!shoot` or `!bang` to hunt
|
|
- **20% Feed Ducks**: Require `!feed` to feed
|
|
- **Persistent Scores**: Scores saved to `plugins/duck_hunt_scores.json`
|
|
- **Reaction Time**: Tracked for both hunting and feeding
|
|
- **Wrong Action Penalties**: Using the wrong command makes the duck flee
|
|
|
|
### Commands
|
|
- `!shoot` / `!bang` - Hunt aggressive ducks
|
|
- `!feed` - Feed hungry ducks
|
|
- `!duckscore` - Check your score
|
|
- `!topducks` - View leaderboard
|
|
- `!duckstats` - Show game statistics
|
|
- `!stopducks` - Stop duck spawning (bakedbeans only)
|
|
- `!startducks` - Resume duck spawning (bakedbeans only)
|
|
|
|
### Duck Types
|
|
- **Common**: 🦆 Mallard (1pt), 🦢 Swan (2pts), 🪿 Goose (2pts)
|
|
- **Rare**: 🐧 Penguin (3pts), 🦜 Parrot (3pts), 🦉 Owl (4pts), 🦅 Eagle (5pts)
|
|
- **Legendary**: 🏆 Golden Duck (10pts), 💎 Diamond Duck (15pts), 🌟 Cosmic Duck (20pts)
|
|
|
|
### Spawn Messages
|
|
- **Hunt Ducks**: "Quick, !shoot it!", "Someone !shoot it before it escapes!"
|
|
- **Feed Ducks**: "!feed it some bread!", "It looks hungry, !feed it!"
|
|
|
|
## Other Games/Plugins
|
|
|
|
### Casino Games (All with persistent scores)
|
|
- **Coin Flip**: `!flip` - Bet on heads/tails
|
|
- **Hi-Lo**: `!hilo` - Guess if next card is higher/lower
|
|
- **Slots**: `!slots` - Spin the slot machine
|
|
- **Scratch Cards**: `!scratch` - Virtual scratch cards
|
|
|
|
### Multiplayer Games
|
|
- **Pass the Pigs**: `!pigs` - Multiplayer dice game
|
|
- **Zombie Dice**: `!zombie` - Multiplayer zombie brain collecting
|
|
- **Quiplash**: `!quiplash` - Answer prompts and vote
|
|
|
|
### Text/Chat Plugins
|
|
- **Babble**: `!babble` - Generate text from learned patterns
|
|
- **Story**: `!story` - Collaborative story writing
|
|
- **Emojify**: `!emojify` - Convert text to emojis
|
|
- **Conspiracy**: `!conspiracy` - Generate conspiracy theories
|
|
- **Drunk Historian**: `!history` - Historical "facts" with varying sobriety
|
|
|
|
### Utility
|
|
- **Basic**: `!ping`, `!help`, `!time`
|
|
- **Combo**: Track message combos in channels
|
|
- **Bot Reply**: Responds to other bots
|
|
|
|
## Admin Commands
|
|
|
|
- `!reloadplugins` - Reload all plugins (megasconed only)
|
|
|
|
## Plugin Development
|
|
|
|
See `plugin_template.js` for creating new plugins. Plugins support:
|
|
- Command registration
|
|
- Event handling (onMessage, etc.)
|
|
- Persistent storage
|
|
- Initialization and cleanup
|
|
|
|
## Recent Changes
|
|
|
|
### Duck Hunt Enhancements (Latest)
|
|
- Added hunt/feed mechanic (80% hunt, 20% feed)
|
|
- New `!feed` command for feeding ducks
|
|
- Wrong action penalties for immersion
|
|
- Persistent score storage
|
|
- Channel control commands (`!stopducks`/`!startducks`)
|
|
|
|
### Bot Structure Cleanup
|
|
- Renamed `debug_bot.js` to `botmain.js` as main bot
|
|
- Removed Windows Zone.Identifier files
|
|
- Organized file structure for clarity
|
|
|
|
## Technical Notes
|
|
|
|
- Uses Node.js with net module for IRC connection
|
|
- SQLite3 for data persistence in some plugins
|
|
- Plugin system with hot-reloading capability
|
|
- Comprehensive error handling and logging
|
|
- Automatic reconnection on disconnect
|
|
|
|
## File Structure
|
|
|
|
```
|
|
cancerbot/
|
|
├── botmain.js # Main bot file
|
|
├── complete_irc_bot.js # Alternative bot
|
|
├── bot_template.js # Bot template
|
|
├── plugin_template.js # Plugin template
|
|
├── plugins/ # Plugin directory
|
|
│ ├── duck_hunt_plugin.js
|
|
│ ├── coinflip_plugin.js
|
|
│ ├── [other plugins...]
|
|
│ ├── duck_hunt_scores.json
|
|
│ └── [other score files...]
|
|
├── package.json
|
|
└── README.md
|
|
```
|
|
|
|
Enjoy your holiday! 🦆🏖️ |