Made the charcreate lock (only allow one char/player) for MULTISESSION_MODE<2 a part of the respective command rather than globally in the module.

This commit is contained in:
Griatch 2015-08-13 09:06:27 +02:00
parent b1b1912e8c
commit 2cdb13143d

View file

@ -34,7 +34,6 @@ __all__ = ("CmdOOCLook", "CmdIC", "CmdOOC", "CmdPassword", "CmdQuit",
"CmdColorTest", "CmdQuell") "CmdColorTest", "CmdQuell")
# force max nr chars to 1 if mode is 0 or 1 # force max nr chars to 1 if mode is 0 or 1
MAX_NR_CHARACTERS = MULTISESSION_MODE < 2 and 1 or MAX_NR_CHARACTERS
BASE_PLAYER_TYPECLASS = settings.BASE_PLAYER_TYPECLASS BASE_PLAYER_TYPECLASS = settings.BASE_PLAYER_TYPECLASS
PERMISSION_HIERARCHY = settings.PERMISSION_HIERARCHY PERMISSION_HIERARCHY = settings.PERMISSION_HIERARCHY
@ -104,7 +103,9 @@ class CmdOOCLook(MuxPlayerCommand):
string += "\n\n {whelp{n - more commands" string += "\n\n {whelp{n - more commands"
string += "\n {wooc <Text>{n - talk on public channel" string += "\n {wooc <Text>{n - talk on public channel"
if is_su or len(characters) < MAX_NR_CHARACTERS: charmax = MAX_NR_CHARACTERS if MULTISESSION_MODE > 1 else 1
if is_su or len(characters) < charmax:
if not characters: if not characters:
string += "\n\n You don't have any characters yet. See {whelp @charcreate{n for creating one." string += "\n\n You don't have any characters yet. See {whelp @charcreate{n for creating one."
else: else:
@ -117,7 +118,7 @@ class CmdOOCLook(MuxPlayerCommand):
string += "\n\nAvailable character%s (%i/unlimited):" % (string_s_ending, len(characters)) string += "\n\nAvailable character%s (%i/unlimited):" % (string_s_ending, len(characters))
else: else:
string += "\n\nAvailable character%s%s:" % (string_s_ending, string += "\n\nAvailable character%s%s:" % (string_s_ending,
MAX_NR_CHARACTERS > 1 and " (%i/%i)" % (len(characters), MAX_NR_CHARACTERS) or "") charmax > 1 and " (%i/%i)" % (len(characters), charmax) or "")
for char in characters: for char in characters:
csessid = char.sessid.get() csessid = char.sessid.get()
@ -176,10 +177,13 @@ class CmdCharCreate(MuxPlayerCommand):
return return
key = self.lhs key = self.lhs
desc = self.rhs desc = self.rhs
charmax = MAX_NR_CHARACTERS if MULTISESSION_MODE > 1 else 1
if not player.is_superuser and \ if not player.is_superuser and \
(player.db._playable_characters and (player.db._playable_characters and
len(player.db._playable_characters) >= MAX_NR_CHARACTERS): len(player.db._playable_characters) >= charmax):
self.msg("You may only create a maximum of %i characters." % MAX_NR_CHARACTERS) self.msg("You may only create a maximum of %i characters." % charmax)
return return
# create the character # create the character
from evennia.objects.models import ObjectDB from evennia.objects.models import ObjectDB