returnfunction(cfg)returnfunction(cfgKey,valArray,expectType)--[[ -- Gets a message from the cfg table and formats it if appropriate. -- The function raises an error if the value from the cfg table is not -- of the type expectType. The default type for expectType is 'string'. -- If the table valArray is present, strings such as $1, $2 etc. in the -- message are substituted with values from the table keys [1], [2] etc. -- For example, if the message "foo-message" had the value 'Foo $2 bar $1.', -- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz." --]]localmsg=cfg[cfgKey]expectType=expectTypeor'string'iftype(msg)~=expectTypethenerror('message: type error in message cfg.'..cfgKey..' ('..expectType..' expected, got '..type(msg)..')',2)endifnotvalArraythenreturnmsgendlocalfunctiongetMessageVal(match)match=tonumber(match)returnvalArray[match]orerror('message: no value found for key $'..match..' in message cfg.'..cfgKey,4)endreturnmw.ustring.gsub(msg,'$([1-9][0-9]*)',getMessageVal)endend