""" Command sets All commands in the game must be grouped in a cmdset. A given command can be part of any number of cmdsets and cmdsets can be added/removed and merged onto entities at runtime. To create new commands to populate the cmdset, see `commands/command.py`. This module wraps the default command sets of Evennia; overloads them to add/remove commands from the default lineup. You can create your own cmdsets by inheriting from them or directly from `evennia.CmdSet`. """ from evennia import default_cmds from commands.cmdcustomexamine import CmdCustomExamine from evennia.contrib.base_systems.building_menu import GenericBuildingCmd from evennia.contrib.game_systems import mail from evennia.contrib.game_systems.clothing import ClothedCharacterCmdSet from evennia.contrib.game_systems.multidescer import CmdMultiDesc from evennia.contrib.grid import simpledoor from evennia.contrib.grid.ingame_map_display import MapDisplayCmdSet from lib.pronounsub.commands import * from lib.rpsystem.rpsystem import RPSystemCmdSet class CharacterCmdSet(default_cmds.CharacterCmdSet): """ The `CharacterCmdSet` contains general in-game commands like `look`, `get`, etc available on in-game Character objects. It is merged with the `AccountCmdSet` when an Account puppets a Character. """ key = "DefaultCharacter" def at_cmdset_creation(self): """ Populates the cmdset """ super().at_cmdset_creation() # # any commands you add below will overload the default ones. # # building_menu self.add(GenericBuildingCmd()) # mail self.add(mail.CmdMail()) self.add(mail.CmdMailCharacter()) # multidescer self.add(CmdMultiDesc()) # ingame_map_display self.add(MapDisplayCmdSet) # simpledoor self.add(simpledoor.SimpleDoorCmdSet) # rpsystem self.add(RPSystemCmdSet()) # Clothing: wear self.add(ClothedCharacterCmdSet()) # gendersub self.add(PronounAdminCommand()) self.add(PronounsCommand()) # Overrides @examine self.add(CmdCustomExamine()) class AccountCmdSet(default_cmds.AccountCmdSet): """ This is the cmdset available to the Account at all times. It is combined with the `CharacterCmdSet` when the Account puppets a Character. It holds game-account-specific commands, channel commands, etc. """ key = "DefaultAccount" def at_cmdset_creation(self): """ Populates the cmdset """ super().at_cmdset_creation() # # any commands you add below will overload the default ones. # class UnloggedinCmdSet(default_cmds.UnloggedinCmdSet): """ Command set available to the Session before being logged in. This holds commands like creating a new account, logging in, etc. """ key = "DefaultUnloggedin" def at_cmdset_creation(self): """ Populates the cmdset """ super().at_cmdset_creation() # # any commands you add below will overload the default ones. # class SessionCmdSet(default_cmds.SessionCmdSet): """ This cmdset is made available on Session level once logged in. It is empty by default. """ key = "DefaultSession" def at_cmdset_creation(self): """ This is the only method defined in a cmdset, called during its creation. It should populate the set with command instances. As and example we just add the empty base `Command` object. It prints some info. """ super().at_cmdset_creation() # # any commands you add below will overload the default ones. #