1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-24 03:54:20 +00:00
royalnet/rpgpack/commands/dndedit.py

35 lines
981 B
Python
Raw Normal View History

2019-11-11 09:34:05 +00:00
import re
from royalnet.commands import *
from .dndnew import DndnewCommand
2019-12-04 00:47:00 +00:00
from ..tables import DndCharacter
2020-02-18 13:48:21 +00:00
from ..utils import get_active_character
2019-11-11 09:34:05 +00:00
class DndeditCommand(DndnewCommand):
name: str = "dndedit"
description: str = "Edit the active DnD character."
aliases = ["de", "dnde", "edit", "dedit"]
async def run(self, args: CommandArgs, data: CommandData) -> None:
character_sheet = args.joined()
2020-02-18 13:48:21 +00:00
active_character = await get_active_character(data)
2020-03-16 19:03:49 +00:00
2020-02-18 13:48:21 +00:00
if active_character is None:
2019-11-11 09:34:05 +00:00
raise CommandError("You don't have an active character.")
2020-03-16 19:03:49 +00:00
char: DndCharacter = active_character.character
if character_sheet == "":
await data.reply(char.to_edit_string())
return
2019-11-11 09:34:05 +00:00
arguments = self._parse(character_sheet)
for key in arguments:
char.__setattr__(key, arguments[key])
await data.session_commit()
await data.reply(f"✅ Edit successful!")