Petbot/help.html
megaproxy adcd5afd85 Update help documentation with comprehensive pet healing system
- Update inventory section header to "Inventory & Healing System"
- Add \!heal command documentation with 1-hour cooldown details
- Enhance \!use command description to include revive functionality
- Add comprehensive Pet Healing System info box covering:
  - Fainted pet mechanics and restrictions
  - Revive items (50% and 100% HP restoration)
  - Heal command with cooldown system
  - Auto-recovery after 30 minutes to 1 HP
  - Travel permissions with fainted pets
- Add Pet Fainting System section to Battle System:
  - Battle defeat mechanics
  - Available healing options
  - Strategic impact and type advantages
- Update item rarity categories to include Revive (rare) and Max Revive (epic)
- Maintain consistent styling and navigation structure
- Provide complete user guidance for pet health management

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 11:33:07 +00:00

918 lines
No EOL
41 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PetBot - Command Help</title>
<style>
:root {
--bg-primary: #0f0f23;
--bg-secondary: #1e1e3f;
--bg-tertiary: #2a2a4a;
--text-primary: #cccccc;
--text-secondary: #999999;
--text-accent: #66ff66;
--border-color: #333366;
--hover-color: #3a3a5a;
--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
--gradient-secondary: linear-gradient(135deg, #ff6b6b 0%, #feca57 100%);
--gradient-tertiary: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
--shadow-dark: 0 4px 20px rgba(0,0,0,0.3);
--shadow-glow: 0 0 20px rgba(102, 255, 102, 0.2);
}
* {
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', 'Roboto', 'Arial', sans-serif;
max-width: 1400px;
margin: 0 auto;
padding: 20px;
background: var(--bg-primary);
color: var(--text-primary);
line-height: 1.6;
min-height: 100vh;
}
.back-link {
color: var(--text-accent);
text-decoration: none;
margin-bottom: 20px;
display: inline-block;
font-weight: 500;
}
.back-link:hover {
text-decoration: underline;
}
.header {
text-align: center;
background: var(--gradient-primary);
color: white;
padding: 30px;
border-radius: 15px;
margin-bottom: 30px;
box-shadow: var(--shadow-dark);
}
.header h1 {
margin: 0;
font-size: 2.5em;
font-weight: 700;
}
.header p {
margin: 10px 0 0 0;
font-size: 1.2em;
opacity: 0.9;
}
.section {
background: var(--bg-secondary);
border-radius: 15px;
margin-bottom: 30px;
box-shadow: var(--shadow-dark);
border: 1px solid var(--border-color);
overflow: hidden;
}
.section-header {
background: var(--gradient-primary);
color: white;
padding: 20px 25px;
font-size: 1.3em;
font-weight: 700;
}
.section-content {
padding: 25px;
}
.command-grid {
display: grid;
gap: 20px;
}
.command {
border: 1px solid var(--border-color);
border-radius: 12px;
overflow: hidden;
transition: all 0.3s ease;
background: var(--bg-tertiary);
}
.command:hover {
transform: translateY(-3px);
box-shadow: 0 8px 25px rgba(102, 255, 102, 0.15);
border-color: var(--text-accent);
}
.command-name {
background: var(--bg-primary);
padding: 15px 20px;
font-family: 'Fira Code', 'Courier New', monospace;
font-weight: bold;
color: var(--text-accent);
border-bottom: 1px solid var(--border-color);
font-size: 1.2em;
text-shadow: 0 0 10px rgba(102, 255, 102, 0.3);
}
.command-desc {
padding: 20px;
line-height: 1.7;
color: var(--text-primary);
}
.command-example {
background: var(--bg-primary);
padding: 12px 20px;
font-family: 'Fira Code', 'Courier New', monospace;
color: var(--text-secondary);
border-top: 1px solid var(--border-color);
font-size: 0.95em;
}
.info-box {
background: var(--bg-tertiary);
padding: 20px;
border-radius: 12px;
margin: 20px 0;
border: 1px solid var(--border-color);
}
.info-box h4 {
margin: 0 0 15px 0;
color: var(--text-accent);
font-size: 1.1em;
font-weight: 600;
}
.info-box ul {
margin: 0;
padding-left: 25px;
}
.info-box li {
margin: 8px 0;
color: var(--text-primary);
}
.info-box strong {
color: var(--text-accent);
}
.footer {
text-align: center;
margin-top: 50px;
padding: 30px;
background: var(--bg-secondary);
border-radius: 15px;
color: var(--text-secondary);
box-shadow: var(--shadow-dark);
border: 1px solid var(--border-color);
}
.tip {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 20px;
border-radius: 12px;
margin: 20px 0;
font-weight: 500;
text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.badge {
display: inline-block;
background: var(--text-accent);
color: var(--bg-primary);
padding: 4px 8px;
border-radius: 6px;
font-size: 0.8em;
font-weight: bold;
margin-left: 8px;
}
.gym-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 15px;
margin: 15px 0;
}
.gym-card {
background: var(--bg-primary);
padding: 15px;
border-radius: 8px;
border: 1px solid var(--border-color);
}
.gym-card strong {
color: var(--text-accent);
}
/* Quick Navigation */
.quick-nav {
background: var(--bg-secondary);
border-radius: 15px;
padding: 20px;
margin-bottom: 30px;
box-shadow: var(--shadow-dark);
border: 1px solid var(--border-color);
}
.quick-nav h3 {
color: var(--text-accent);
margin: 0 0 15px 0;
font-size: 1.2em;
text-align: center;
}
.nav-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 10px;
}
.nav-item {
background: var(--bg-tertiary);
padding: 12px 16px;
border-radius: 8px;
text-align: center;
transition: all 0.3s ease;
border: 1px solid var(--border-color);
}
.nav-item:hover {
background: var(--hover-color);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(102, 255, 102, 0.15);
}
.nav-item a {
color: var(--text-primary);
text-decoration: none;
font-weight: 500;
font-size: 0.9em;
display: block;
}
.nav-item a:hover {
color: var(--text-accent);
}
/* Smooth scrolling for anchor links */
html {
scroll-behavior: smooth;
}
/* Section anchor targets */
.section {
scroll-margin-top: 20px;
}
/* Back to top button */
.back-to-top {
position: fixed;
bottom: 30px;
right: 30px;
width: 50px;
height: 50px;
background: var(--gradient-primary);
color: white;
border: none;
border-radius: 50%;
font-size: 18px;
cursor: pointer;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
z-index: 1000;
box-shadow: 0 4px 15px rgba(0,0,0,0.3);
}
.back-to-top.show {
opacity: 1;
visibility: visible;
}
.back-to-top:hover {
transform: translateY(-3px);
box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}
/* Mobile responsiveness for navigation */
@media (max-width: 768px) {
.nav-grid {
grid-template-columns: repeat(2, 1fr);
gap: 8px;
}
.nav-item {
padding: 10px 12px;
}
.nav-item a {
font-size: 0.8em;
}
}
</style>
</head>
<body>
<a href="/" class="back-link">← Back to Game Hub</a>
<div class="header">
<h1>📚 PetBot Commands</h1>
<p>Complete guide to Pokemon-style pet collecting in IRC</p>
</div>
<div class="quick-nav">
<h3>🧭 Quick Navigation</h3>
<div class="nav-grid">
<div class="nav-item"><a href="#getting-started">🚀 Getting Started</a></div>
<div class="nav-item"><a href="#exploration">🌍 Exploration</a></div>
<div class="nav-item"><a href="#battle-system">⚔️ Battle System</a></div>
<div class="nav-item"><a href="#gym-battles">🏛️ Gym Battles</a></div>
<div class="nav-item"><a href="#pet-management">🐾 Pet Management</a></div>
<div class="nav-item"><a href="#inventory">🎒 Inventory</a></div>
<div class="nav-item"><a href="#community-events">🎯 Community Events</a></div>
<div class="nav-item"><a href="#achievements">🏆 Achievements</a></div>
<div class="nav-item"><a href="#web-interface">🌐 Web Interface</a></div>
<div class="nav-item"><a href="#bot-status">🤖 Bot Status</a></div>
<div class="nav-item"><a href="#rate-limiting">⚡ Rate Limiting</a></div>
<div class="nav-item"><a href="#admin-commands">🛡️ Admin Commands</a></div>
</div>
</div>
<div class="section" id="getting-started">
<div class="section-header">🚀 Getting Started</div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!start</div>
<div class="command-desc">Begin your pet collecting journey! Creates your trainer account and gives you your first starter pet.</div>
<div class="command-example">Example: !start</div>
</div>
<div class="command">
<div class="command-name">!help</div>
<div class="command-desc">Get a link to this comprehensive command reference page.</div>
<div class="command-example">Example: !help</div>
</div>
<div class="command">
<div class="command-name">!stats</div>
<div class="command-desc">View your basic trainer information including level, experience, and money.</div>
<div class="command-example">Example: !stats</div>
</div>
</div>
</div>
</div>
<div class="section" id="exploration">
<div class="section-header">🌍 Exploration & Travel</div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!explore</div>
<div class="command-desc">Search your current location for wild pets or items. You might find pets to battle/catch or discover useful items!</div>
<div class="command-example">Example: !explore</div>
</div>
<div class="command">
<div class="command-name">!travel &lt;location&gt;</div>
<div class="command-desc">Move to a different location. Each area has unique pets and gyms. Some locations require achievements to unlock.</div>
<div class="command-example">Example: !travel whispering woods</div>
</div>
<div class="command">
<div class="command-name">!weather</div>
<div class="command-desc">Check the current weather effects in your location. Weather affects which pet types spawn more frequently.</div>
<div class="command-example">Example: !weather</div>
</div>
<div class="command">
<div class="command-name">!where / !location</div>
<div class="command-desc">See which location you're currently in and get information about the area.</div>
<div class="command-example">Example: !where</div>
</div>
<div class="command">
<div class="command-name">!wild [location]</div>
<div class="command-desc">Show wild pets available in your current location or a specified location. Helps you see what pets you can encounter.</div>
<div class="command-example">Example: !wild or !wild crystal caves</div>
</div>
</div>
<div class="info-box">
<h4>🗺️ Available Locations</h4>
<ul>
<li><strong>Starter Town</strong> - Peaceful starting area (Fire/Water/Grass pets)</li>
<li><strong>Whispering Woods</strong> - Ancient forest (Grass pets + new species: Vinewrap, Bloomtail)</li>
<li><strong>Electric Canyon</strong> - Charged valley (Electric/Rock pets)</li>
<li><strong>Crystal Caves</strong> - Underground caverns (Rock/Crystal pets)</li>
<li><strong>Frozen Tundra</strong> - Icy wasteland (Ice/Water pets)</li>
<li><strong>Dragon's Peak</strong> - Ultimate challenge (Fire/Rock/Ice pets)</li>
</ul>
</div>
<div class="info-box">
<h4>🌤️ Weather Effects</h4>
<ul>
<li><strong>Sunny</strong> - 1.5x Fire/Grass spawns (1-2 hours)</li>
<li><strong>Rainy</strong> - 2.0x Water spawns (45-90 minutes)</li>
<li><strong>Thunderstorm</strong> - 2.0x Electric spawns (30-60 minutes)</li>
<li><strong>Blizzard</strong> - 1.7x Ice/Water spawns (1-2 hours)</li>
<li><strong>Earthquake</strong> - 1.8x Rock spawns (30-90 minutes)</li>
<li><strong>Calm</strong> - Normal spawns (1.5-3 hours)</li>
</ul>
</div>
</div>
</div>
<div class="section" id="battle-system">
<div class="section-header">⚔️ Battle System</div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!catch / !capture</div>
<div class="command-desc">Attempt to catch a wild pet that appeared during exploration. Success depends on the pet's level and rarity.</div>
<div class="command-example">Example: !catch</div>
</div>
<div class="command">
<div class="command-name">!battle</div>
<div class="command-desc">Start a turn-based battle with a wild pet. Defeat it to gain experience and money for your active pet.</div>
<div class="command-example">Example: !battle</div>
</div>
<div class="command">
<div class="command-name">!attack &lt;move&gt;</div>
<div class="command-desc">Use a specific move during battle. Each move has different power, type, and effects.</div>
<div class="command-example">Example: !attack flamethrower</div>
</div>
<div class="command">
<div class="command-name">!moves</div>
<div class="command-desc">View all available moves for your active pet, including their types and power levels.</div>
<div class="command-example">Example: !moves</div>
</div>
<div class="command">
<div class="command-name">!flee</div>
<div class="command-desc">Attempt to escape from the current battle. Not always successful!</div>
<div class="command-example">Example: !flee</div>
</div>
</div>
<div class="info-box">
<h4>💀 Pet Fainting System</h4>
<ul>
<li><strong>Battle Defeat</strong> - Pets that lose battles will faint and cannot be used until healed</li>
<li><strong>Healing Options</strong> - Use Revive items, !heal command, or wait 30 minutes for auto-recovery</li>
<li><strong>Strategic Impact</strong> - Plan your battles carefully to avoid having all pets faint</li>
<li><strong>Type Advantages</strong> - Use type matchups to win battles and avoid fainting</li>
</ul>
</div>
</div>
</div>
<div class="section" id="gym-battles">
<div class="section-header">🏛️ Gym Battles <span class="badge">NEW!</span></div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!gym</div>
<div class="command-desc">List all gyms in your current location with your progress. Shows victories and next difficulty level.</div>
<div class="command-example">Example: !gym</div>
</div>
<div class="command">
<div class="command-name">!gym list</div>
<div class="command-desc">Show all gyms across all locations with your badge collection progress.</div>
<div class="command-example">Example: !gym list</div>
</div>
<div class="command">
<div class="command-name">!gym challenge "&lt;name&gt;"</div>
<div class="command-desc">Challenge a gym leader! You must be in the same location as the gym. Difficulty increases with each victory.</div>
<div class="command-example">Example: !gym challenge "Forest Guardian"</div>
</div>
<div class="command">
<div class="command-name">!gym info "&lt;name&gt;"</div>
<div class="command-desc">Get detailed information about a gym including leader, theme, team, and badge details.</div>
<div class="command-example">Example: !gym info "Storm Master"</div>
</div>
<div class="command">
<div class="command-name">!forfeit</div>
<div class="command-desc">Forfeit your current gym battle if you're losing or want to try a different strategy.</div>
<div class="command-example">Example: !forfeit</div>
</div>
</div>
<div class="tip">
💡 <strong>Gym Strategy:</strong> Each gym specializes in a specific type. Bring pets with type advantages! The more you beat a gym, the harder it gets, but the better the rewards!
</div>
<div class="info-box">
<h4>🏆 Gym Leaders & Badges</h4>
<div class="gym-list">
<div class="gym-card">
<strong>🍃 Forest Guardian</strong><br>
Location: Starter Town<br>
Leader: Trainer Verde<br>
Theme: Grass-type
</div>
<div class="gym-card">
<strong>🌳 Nature's Haven</strong><br>
Location: Whispering Woods<br>
Leader: Elder Sage<br>
Theme: Grass-type
</div>
<div class="gym-card">
<strong>⚡ Storm Master</strong><br>
Location: Electric Canyon<br>
Leader: Captain Volt<br>
Theme: Electric-type
</div>
<div class="gym-card">
<strong>💎 Stone Crusher</strong><br>
Location: Crystal Caves<br>
Leader: Miner Magnus<br>
Theme: Rock-type
</div>
<div class="gym-card">
<strong>❄️ Ice Breaker</strong><br>
Location: Frozen Tundra<br>
Leader: Arctic Queen<br>
Theme: Ice/Water-type
</div>
<div class="gym-card">
<strong>🐉 Dragon Slayer</strong><br>
Location: Dragon's Peak<br>
Leader: Champion Drake<br>
Theme: Fire-type
</div>
</div>
</div>
</div>
</div>
<div class="section" id="pet-management">
<div class="section-header">🐾 Pet Management</div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!team</div>
<div class="command-desc">View your active team of pets with their levels, HP, and status.</div>
<div class="command-example">Example: !team</div>
</div>
<div class="command">
<div class="command-name">!pets</div>
<div class="command-desc">View your complete pet collection with detailed stats and information via web interface.</div>
<div class="command-example">Example: !pets</div>
</div>
<div class="command">
<div class="command-name">!activate &lt;pet&gt;</div>
<div class="command-desc">Add a pet to your active battle team. You can have multiple active pets for different situations.</div>
<div class="command-example">Example: !activate flamey</div>
</div>
<div class="command">
<div class="command-name">!deactivate &lt;pet&gt;</div>
<div class="command-desc">Remove a pet from your active team and put it in storage.</div>
<div class="command-example">Example: !deactivate aqua</div>
</div>
<div class="command">
<div class="command-name">!nickname &lt;pet&gt; &lt;new_nickname&gt;</div>
<div class="command-desc">Give a custom nickname to one of your pets. Use their current name or ID to reference them.</div>
<div class="command-example">Example: !nickname flamey "Blazer"</div>
</div>
</div>
</div>
</div>
<div class="section" id="inventory">
<div class="section-header">🎒 Inventory & Healing System <span class="badge">UPDATED!</span></div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!inventory / !inv / !items</div>
<div class="command-desc">View all items in your inventory organized by category. Shows quantities and item descriptions.</div>
<div class="command-example">Example: !inventory</div>
</div>
<div class="command">
<div class="command-name">!use &lt;item name&gt;</div>
<div class="command-desc">Use a consumable item from your inventory. Items can heal pets, boost stats, revive fainted pets, or provide other benefits.</div>
<div class="command-example">Example: !use Small Potion, !use Revive</div>
</div>
<div class="command">
<div class="command-name">!heal</div>
<div class="command-desc">Heal all your active pets to full health. Has a 1-hour cooldown to prevent abuse.</div>
<div class="command-example">Example: !heal</div>
</div>
</div>
<div class="info-box">
<h4>🎯 Item Categories & Rarities</h4>
<ul>
<li><strong>○ Common (15%)</strong> - Small Potions, basic healing items</li>
<li><strong>◇ Uncommon (8-12%)</strong> - Large Potions, battle boosters, special berries</li>
<li><strong>◆ Rare (3-6%)</strong> - Super Potions, Revive items, speed elixirs, location treasures</li>
<li><strong>★ Epic (2-3%)</strong> - Max Revive, evolution stones, rare crystals, ancient artifacts</li>
<li><strong>✦ Legendary (1%)</strong> - Lucky charms, ancient fossils, ultimate items</li>
</ul>
</div>
<div class="tip">
💡 <strong>Item Discovery:</strong> Find items while exploring! Each location has unique treasures. Items stack in your inventory and can be used anytime.
</div>
<div class="info-box">
<h4>🏥 Pet Healing System</h4>
<ul>
<li><strong>Fainted Pets</strong> - Pets that lose battles faint and cannot be used until healed</li>
<li><strong>Revive Items</strong> - Use Revive (50% HP) or Max Revive (100% HP) to restore fainted pets</li>
<li><strong>!heal Command</strong> - Heals all active pets to full health (1-hour cooldown)</li>
<li><strong>Auto-Recovery</strong> - Fainted pets automatically recover to 1 HP after 30 minutes</li>
<li><strong>Travel Allowed</strong> - You can still travel and explore with fainted pets</li>
</ul>
</div>
</div>
<div class="section" id="community-events">
<div class="section-header">🎯 Community Events <span class="badge">NEW!</span></div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!events</div>
<div class="command-desc">View all active community events that all players can participate in together.</div>
<div class="command-example">Example: !events</div>
</div>
<div class="command">
<div class="command-name">!event &lt;id&gt;</div>
<div class="command-desc">Get detailed information about a specific community event, including progress and leaderboard.</div>
<div class="command-example">Example: !event 1</div>
</div>
<div class="command">
<div class="command-name">!contribute &lt;id&gt;</div>
<div class="command-desc">Contribute to a community event. Everyone who participates gets rewards when the event completes!</div>
<div class="command-example">Example: !contribute 1</div>
</div>
<div class="command">
<div class="command-name">!eventhelp</div>
<div class="command-desc">Get detailed help about the community events system and how it works.</div>
<div class="command-example">Example: !eventhelp</div>
</div>
</div>
<div class="info-box">
<h4>🤝 How Community Events Work</h4>
<ul>
<li><strong>Collaborative Goals</strong> - All players work together toward shared objectives</li>
<li><strong>Progress Tracking</strong> - Events show progress bars and contribution leaderboards</li>
<li><strong>Time Limited</strong> - Events have deadlines and expire if not completed</li>
<li><strong>Difficulty Levels</strong> - ⭐ Easy, ⭐⭐ Medium, ⭐⭐⭐ Hard events with better rewards</li>
<li><strong>Automatic Spawning</strong> - New events appear regularly for ongoing engagement</li>
</ul>
</div>
<div class="info-box">
<h4>🎪 Event Types</h4>
<ul>
<li><strong>🏪 Resource Gathering</strong> - Help collect supplies for the community</li>
<li><strong>🐾 Pet Rescue</strong> - Search for and rescue missing pets</li>
<li><strong>🎪 Community Projects</strong> - Work together on town improvement projects</li>
<li><strong>🚨 Emergency Response</strong> - Help during natural disasters or crises</li>
<li><strong>🔬 Research</strong> - Assist scientists with important discoveries</li>
</ul>
</div>
<div class="tip">
💡 <strong>Event Strategy:</strong> Check !events regularly for new opportunities! Higher difficulty events give better rewards, and contributing more increases your reward multiplier when the event completes.
</div>
</div>
</div>
<div class="section" id="achievements">
<div class="section-header">🏆 Achievements & Progress</div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!achievements</div>
<div class="command-desc">View your achievement progress and see which new locations you've unlocked.</div>
<div class="command-example">Example: !achievements</div>
</div>
</div>
<div class="info-box">
<h4>🎯 Location Unlock Requirements</h4>
<ul>
<li><strong>Pet Collector</strong> (5 pets) → Unlocks Whispering Woods</li>
<li><strong>Spark Collector</strong> (2 Electric species) → Unlocks Electric Canyon</li>
<li><strong>Rock Hound</strong> (3 Rock species) → Unlocks Crystal Caves</li>
<li><strong>Ice Breaker</strong> (5 Water/Ice species) → Unlocks Frozen Tundra</li>
<li><strong>Dragon Tamer</strong> (15 pets + 3 Fire species) → Unlocks Dragon's Peak</li>
</ul>
</div>
</div>
<div class="section" id="web-interface">
<div class="section-header">🌐 Web Interface</div>
<div class="section-content">
<div class="tip">
Access detailed information through the web dashboard at <strong>http://petz.rdx4.com/</strong>
<ul style="margin-top: 10px;">
<li><strong>Player Profiles</strong> - Complete stats, pet collections, and inventories</li>
<li><strong>Leaderboard</strong> - Top players by level and achievements</li>
<li><strong>Locations Guide</strong> - All areas with spawn information</li>
<li><strong>Gym Badges</strong> - Display your earned badges and progress</li>
<li><strong>Interactive Map</strong> - See where all players are exploring</li>
<li><strong>Team Builder</strong> - Drag-and-drop team management with PIN verification</li>
</ul>
</div>
</div>
</div>
<div class="section" id="bot-status">
<div class="section-header">🤖 Bot Status & Utilities</div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!status</div>
<div class="command-desc">Check the bot's current connection status and basic system information.</div>
<div class="command-example">Example: !status</div>
</div>
<div class="command">
<div class="command-name">!uptime</div>
<div class="command-desc">See how long the bot has been running since last restart.</div>
<div class="command-example">Example: !uptime</div>
</div>
<div class="command">
<div class="command-name">!ping</div>
<div class="command-desc">Test the bot's responsiveness with a simple ping-pong test.</div>
<div class="command-example">Example: !ping</div>
</div>
</div>
<div class="info-box">
<h4>🔧 System Status</h4>
<ul>
<li><strong>Connection Monitoring</strong> - Bot automatically monitors its IRC connection</li>
<li><strong>Auto-Reconnect</strong> - Automatically reconnects if connection is lost</li>
<li><strong>Background Tasks</strong> - Weather updates, event spawning, and data validation</li>
<li><strong>Rate Limiting</strong> - Built-in protection against spam and abuse</li>
</ul>
</div>
</div>
</div>
<div class="section" id="rate-limiting">
<div class="section-header">⚡ Rate Limiting & Fair Play</div>
<div class="section-content">
<div class="info-box">
<h4>🛡️ Rate Limiting System</h4>
<p>PetBot uses a sophisticated rate limiting system to ensure fair play and prevent spam. Commands are organized into categories with different limits:</p>
<ul>
<li><strong>Basic Commands</strong> (!help, !ping, !status) - 20 per minute, 5 burst capacity</li>
<li><strong>Gameplay Commands</strong> (!explore, !battle, !catch) - 10 per minute, 3 burst capacity</li>
<li><strong>Management Commands</strong> (!pets, !activate, !stats) - 5 per minute, 2 burst capacity</li>
<li><strong>Web Interface</strong> - 60 requests per minute, 10 burst capacity</li>
</ul>
</div>
<div class="info-box">
<h4>📊 How It Works</h4>
<ul>
<li><strong>Token Bucket Algorithm</strong> - You have a "bucket" of tokens that refills over time</li>
<li><strong>Burst Capacity</strong> - You can use multiple commands quickly up to the burst limit</li>
<li><strong>Refill Rate</strong> - Tokens refill based on the requests per minute limit</li>
<li><strong>Cooldown Period</strong> - Brief cooldown after hitting limits before trying again</li>
</ul>
</div>
<div class="info-box">
<h4>⚠️ Violations & Penalties</h4>
<ul>
<li><strong>3 violations</strong> - Warning threshold reached (logged)</li>
<li><strong>10 violations</strong> - Temporary 5-minute ban from all commands</li>
<li><strong>Admin Override</strong> - Admins can unban users and reset violations</li>
<li><strong>Automatic Cleanup</strong> - Old violations and bans are automatically cleared</li>
</ul>
</div>
<div class="command-grid">
<div class="command">
<div class="command-name">!rate_stats</div>
<div class="command-desc">View global rate limiting statistics (Admin only).</div>
<div class="command-example">Example: !rate_stats</div>
</div>
<div class="command">
<div class="command-name">!rate_user &lt;username&gt;</div>
<div class="command-desc">Check rate limiting status for a specific user (Admin only).</div>
<div class="command-example">Example: !rate_user playername</div>
</div>
<div class="command">
<div class="command-name">!rate_unban &lt;username&gt;</div>
<div class="command-desc">Manually unban a user from rate limiting (Admin only).</div>
<div class="command-example">Example: !rate_unban playername</div>
</div>
<div class="command">
<div class="command-name">!rate_reset &lt;username&gt;</div>
<div class="command-desc">Reset violations for a user (Admin only).</div>
<div class="command-example">Example: !rate_reset playername</div>
</div>
</div>
<div class="info-box">
<h4>💡 Tips for Smooth Gameplay</h4>
<ul>
<li><strong>Play Naturally</strong> - Normal gameplay rarely hits rate limits</li>
<li><strong>Use the Web Interface</strong> - Higher limits for browsing and pet management</li>
<li><strong>Spread Out Commands</strong> - Avoid rapid-fire command spamming</li>
<li><strong>Check Your Status</strong> - If you get rate limited, wait a moment before trying again</li>
</ul>
</div>
</div>
</div>
<div class="section" id="admin-commands">
<div class="section-header">🛡️ Admin Commands</div>
<div class="section-content">
<div class="command-grid">
<div class="command">
<div class="command-name">!reload</div>
<div class="command-desc">Reload all bot modules without restarting the bot (Admin only).</div>
<div class="command-example">Example: !reload</div>
</div>
<div class="command">
<div class="command-name">!setweather &lt;location|all&gt; &lt;weather_type&gt; [duration]</div>
<div class="command-desc">Manually set weather for a location or all locations (Admin only).</div>
<div class="command-example">Example: !setweather all sunny 120</div>
</div>
<div class="command">
<div class="command-name">!spawnevent [difficulty]</div>
<div class="command-desc">Force spawn a community event with optional difficulty 1-3 (Admin only).</div>
<div class="command-example">Example: !spawnevent 2</div>
</div>
<div class="command">
<div class="command-name">!startevent [type] [difficulty]</div>
<div class="command-desc">Start a specific event type. Without args, shows available types (Admin only).</div>
<div class="command-example">Example: !startevent resource_gathering 2</div>
</div>
</div>
<div class="info-box">
<h4>🔑 Admin Access</h4>
<ul>
<li><strong>Single Admin User</strong> - Only one designated admin user can use these commands</li>
<li><strong>Module Management</strong> - Reload modules without restarting the entire bot</li>
<li><strong>Weather Control</strong> - Force weather changes for testing or events</li>
<li><strong>Event Management</strong> - Spawn community events on demand</li>
</ul>
</div>
<div class="tip">
⚠️ <strong>Admin Note:</strong> These commands require admin privileges and can affect the entire bot system. Use with caution and always test changes in a development environment first.
</div>
</div>
</div>
<div class="footer">
<p><strong>🎮 PetBot v0.2.0</strong> - Pokemon-style pet collecting for IRC</p>
<p>Catch pets • Battle gyms • Collect items • Earn badges • Explore locations • Join community events</p>
<p style="margin-top: 15px; opacity: 0.7;">
Need help? Ask in the channel or visit the web dashboard for detailed information!<br>
<strong>New Features:</strong> Community Events • Interactive Map • Team Builder • Enhanced Admin Tools
</p>
</div>
<!-- Back to Top Button -->
<button class="back-to-top" id="backToTop" onclick="scrollToTop()"></button>
<script>
// Show/hide back to top button
window.addEventListener('scroll', function() {
const backToTopBtn = document.getElementById('backToTop');
if (window.pageYOffset > 300) {
backToTopBtn.classList.add('show');
} else {
backToTopBtn.classList.remove('show');
}
});
// Smooth scroll to top function
function scrollToTop() {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
}
// Add smooth scrolling to all navigation links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({
behavior: 'smooth',
block: 'start'
});
}
});
});
</script>
</body>
</html>