From f95dd3f2aa8ad2cf746073a535fb0cc94e3bef13 Mon Sep 17 00:00:00 2001 From: trhr Date: Sun, 5 Apr 2020 23:54:10 -0500 Subject: [PATCH] #1445 #1709 - Latinify character names in .create() --- evennia/objects/objects.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 25731923e6..42952a874b 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -2065,6 +2065,7 @@ class DefaultCharacter(DefaultObject): # Set the supplied key as the name of the intended object kwargs["key"] = key + key = cls._validate(key) # Get home for character kwargs["home"] = ObjectDB.objects.get_id(kwargs.get("home", settings.DEFAULT_HOME)) @@ -2115,6 +2116,22 @@ class DefaultCharacter(DefaultObject): return obj, errors + def _validate(self, key): + """ + Validate that character name is acceptable prior to creating. Note that this should be refactored + to support i18n for non-latin scripts, but as we (currently) have no bug reports requesting better + support of non-latin character sets, requiring character names to be latinified is an acceptable option. + + Args: + key (str) : The name of the character + + Returns: + key (str) : A valid name. + """ + from evennia.utils.utils import latinify + key = latinify(key, default="X") + return key + def basetype_setup(self): """ Setup character-specific security.