Implement pet nicknames system - database, IRC command, validation

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
megaproxy 2025-07-14 16:57:41 +01:00
parent 4de0c1a124
commit 3098be7f36
3 changed files with 101 additions and 2 deletions

View file

@ -7,7 +7,7 @@ class PetManagement(BaseModule):
"""Handles team, pets, and future pet management commands"""
def get_commands(self):
return ["team", "pets", "activate", "deactivate", "swap"]
return ["team", "pets", "activate", "deactivate", "swap", "nickname"]
async def handle_command(self, channel, nickname, command, args):
if command == "team":
@ -20,6 +20,8 @@ class PetManagement(BaseModule):
await self.cmd_deactivate(channel, nickname, args)
elif command == "swap":
await self.cmd_swap(channel, nickname, args)
elif command == "nickname":
await self.cmd_nickname(channel, nickname, args)
async def cmd_team(self, channel, nickname):
"""Show active pets (channel display)"""
@ -158,4 +160,28 @@ class PetManagement(BaseModule):
self.send_message(channel, f"{nickname}: Pet swap completed!")
else:
self.send_pm(nickname, f"{result['error']}")
self.send_message(channel, f"{nickname}: Pet swap failed - check PM for details!")
self.send_message(channel, f"{nickname}: Pet swap failed - check PM for details!")
async def cmd_nickname(self, channel, nickname, args):
"""Set a nickname for a pet"""
if len(args) < 2:
self.send_message(channel, f"{nickname}: Usage: !nickname <pet> <new_nickname>")
self.send_message(channel, f"Example: !nickname Charmander Flamey")
return
player = await self.require_player(channel, nickname)
if not player:
return
# Split args into pet identifier and new nickname
pet_identifier = args[0]
new_nickname = " ".join(args[1:])
result = await self.database.set_pet_nickname(player["id"], pet_identifier, new_nickname)
if result["success"]:
old_name = result["old_name"]
new_name = result["new_nickname"]
self.send_message(channel, f"{nickname}: {old_name} is now nicknamed '{new_name}'!")
else:
self.send_message(channel, f"{nickname}: {result['error']}")