From d3b59b2312a145d7b2ca03c9e13b9ca39d1a5b1b Mon Sep 17 00:00:00 2001 From: Griatch Date: Fri, 4 Dec 2020 20:05:59 +0100 Subject: [PATCH] Make the rplanguage contrib give better error on grammar/phoneme mismatch --- evennia/contrib/rplanguage.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/evennia/contrib/rplanguage.py b/evennia/contrib/rplanguage.py index a4dc931674..576628e44f 100644 --- a/evennia/contrib/rplanguage.py +++ b/evennia/contrib/rplanguage.py @@ -64,7 +64,7 @@ Usage: "oy ua uh uw y p b t d f v t dh s z sh zh ch jh k " \ "ng g m n l r w", vowels = "eaoiuy" - grammar = "v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc " \ + prammar = "v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc " \ "vcvvccvvc cvcvvcvvcc vcvcvvccvcvv", word_length_variance = 1 noun_postfix = "'la" @@ -280,7 +280,13 @@ class LanguageHandler(DefaultScript): # use the corresponding length structure = choice(grammar[wlen]) for match in _RE_GRAMMAR.finditer(structure): - new_word += choice(grammar2phonemes[match.group()]) + try: + new_word += choice(grammar2phonemes[match.group()]) + except IndexError: + raise IndexError( + "Could not find a matching phoneme for the grammar " + f"'{match.group()}'. Make there is at least one phoneme matching this " + "combination of consonants and vowels.") translation[word.lower()] = new_word.lower() if manual_translations: