Uploading all files.

This commit is contained in:
2025-09-12 18:22:14 +01:00
parent 2034d6b109
commit feb1dc51d2
25 changed files with 3694 additions and 2 deletions

173
README.md
View File

@@ -1,3 +1,172 @@
# duckhunt
# 🦆 DuckHunt IRC Bot
DuckHunt IRC game bot.
A feature-rich IRC game bot where players hunt ducks, upgrade weapons, trade items, and compete on leaderboards!
## 🚀 Features
### 🎯 Core Game Mechanics
- **Different Duck Types**: Common, Rare, Golden, and Armored ducks with varying rewards
- **Weapon System**: Multiple weapon types (Basic Gun, Shotgun, Rifle) with durability
- **Ammunition Types**: Standard, Rubber Bullets, Explosive Rounds
- **Weapon Attachments**: Laser Sight, Extended Magazine, Bipod
- **Accuracy & Reliability**: Skill-based hit/miss and reload failure mechanics
### 🏦 Economy System
- **Shop**: Buy/sell weapons, attachments, and upgrades
- **Banking**: Deposit coins for interest, take loans
- **Trading**: Trade coins and items with other players
- **Insurance**: Protect your equipment from damage
- **Hunting Licenses**: Unlock premium features and bonuses
### 👤 Player Progression
- **Hunter Levels**: Gain XP and level up for better abilities
- **Account System**: Register accounts with password authentication
- **Multiple Auth Methods**: Nick-based, hostmask, or registered account
- **Persistent Stats**: All progress saved to SQLite database
### 🏆 Social Features
- **Leaderboards**: Compete for top rankings
- **Duck Alerts**: Get notified when rare ducks spawn
- **Sabotage**: Interfere with other players (for a cost!)
- **Comprehensive Help**: Detailed command reference
## 📋 Requirements
- Python 3.7+
- asyncio support
- SQLite3 (included with Python)
## 🛠️ Installation
1. Clone or download the bot files
2. Edit `config.json` with your IRC server details:
```json
{
"server": "irc.libera.chat",
"port": 6697,
"nick": "DuckHuntBot",
"channels": ["#yourchannel"],
"ssl": true,
"sasl": false,
"password": "",
"duck_spawn_min": 60,
"duck_spawn_max": 300
}
```
3. Test the bot:
```bash
python test_bot.py
```
4. Run the bot:
```bash
python duckhunt.py
```
## 🎮 Commands
### 🎯 Hunting
- `!bang` - Shoot at a duck (accuracy-based hit/miss)
- `!reload` - Reload weapon (can fail based on reliability)
- `!catch` - Catch a duck with your hands
- `!bef` - Befriend a duck instead of shooting
### 🛒 Economy
- `!shop` - View available items
- `!buy <number>` - Purchase items
- `!sell <number>` - Sell equipment
- `!bank` - Banking services
- `!trade <player> <item> <amount>` - Trade with others
### 📊 Stats & Info
- `!stats` - Detailed combat statistics
- `!duckstats` - Personal hunting record
- `!leaderboard` - Top players ranking
- `!license` - Hunting license management
### ⚙️ Settings
- `!alerts` - Toggle duck spawn notifications
- `!help` - Complete command reference
### 🔐 Account System
- `/msg BotNick register <username> <password>` - Register account
- `/msg BotNick identify <username> <password>` - Login to account
### 🎮 Advanced
- `!sabotage <player>` - Sabotage another hunter's weapon
## 🗂️ File Structure
```
duckhunt/
├── src/
│ ├── duckhuntbot.py # Main IRC bot logic
│ ├── game.py # Game mechanics and commands
│ ├── db.py # SQLite database handling
│ ├── auth.py # Authentication system
│ ├── items.py # Duck types, weapons, attachments
│ ├── logging_utils.py # Colored logging setup
│ └── utils.py # IRC message parsing
├── config.json # Bot configuration
├── duckhunt.py # Main entry point
├── test_bot.py # Test script
└── README.md # This file
```
## 🎯 Game Balance
### Duck Types & Rewards
- **Common Duck** 🦆: 1 coin, 10 XP (70% spawn rate)
- **Rare Duck** 🦆✨: 3 coins, 25 XP (20% spawn rate)
- **Golden Duck** 🥇🦆: 10 coins, 50 XP (8% spawn rate)
- **Armored Duck** 🛡️🦆: 15 coins, 75 XP (2% spawn rate, 3 health)
### Weapon Stats
- **Basic Gun**: 0% accuracy bonus, 100 durability, 1 attachment slot
- **Shotgun**: -10% accuracy, 80 durability, 2 slots, spread shot
- **Rifle**: +20% accuracy, 120 durability, 3 slots
### Progression
- Players start with 100 coins and basic stats
- Level up by gaining XP from successful hunts
- Unlock better equipment and abilities as you progress
## 🔧 Configuration
Edit `config.json` to customize:
- IRC server and channels
- Duck spawn timing (min/max seconds)
- SSL and SASL authentication
- Bot nickname
## 🛡️ Security
- Passwords are hashed with PBKDF2
- Account data stored separately from temporary nick data
- Multiple authentication methods supported
- Database uses prepared statements to prevent injection
## 🐛 Troubleshooting
1. **Bot won't connect**: Check server/port in config.json
2. **Database errors**: Ensure write permissions in bot directory
3. **Commands not working**: Verify bot has joined the channel
4. **Test failures**: Run `python test_bot.py` to diagnose issues
## 🎖️ Contributing
Feel free to add new features:
- More duck types and weapons
- Additional mini-games
- Seasonal events
- Guild/team systems
- Advanced trading mechanics
## 📄 License
This bot is provided as-is for educational and entertainment purposes.
---
🦆 **Happy Hunting!** 🦆