From: Jeremy Stanley Date: Wed, 29 Nov 2017 16:41:35 +0000 (+0000) Subject: Convert mappings and sequences from flow to block X-Git-Tag: 0.0.1~113 X-Git-Url: https://mudpy.org/gitweb?a=commitdiff_plain;h=1e9fd62ecb7c3f1563d674cb6417272524a516be;p=mudpy.git Convert mappings and sequences from flow to block For ease of readability, standardize on indented block-style YAML mapping and sequence definitions in sample data and configuration. Also wrap long lines, add explicit document start markers and introduce spaces in commented lines to ease future checking with the yamllint utility's default style rules. --- diff --git a/etc/mudpy.yaml b/etc/mudpy.yaml index 6259200..45f1d14 100644 --- a/etc/mudpy.yaml +++ b/etc/mudpy.yaml @@ -1,56 +1,84 @@ +--- _copy: Copyright (c) 2004-2017 Jeremy Stanley . Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. _desc: This is the top-level configuration file for mudpy service. -_load: [ archetype.yaml, command.yaml, menu.yaml, sample ] +_load: + - archetype.yaml + - command.yaml + - menu.yaml + - sample _lock: true -.mudpy.filing.groups: { account: { flags: [ private ] } } -.mudpy.filing.prefix: "." -.mudpy.filing.search: [ "", "etc", "share", "data" ] -.mudpy.filing.stash: "data" +.mudpy.filing.groups: + account: + flags: + - private +.mudpy.filing.prefix: . +.mudpy.filing.search: + - "" + - etc + - share + - data +.mudpy.filing.stash: data -.mudpy.linguistic.actions: { "?": "ask", ",": "begin", "-": "begin", ":": "begin", ";": "begin", "!": "exclaim", "...": "muse", ".": "say" } +.mudpy.linguistic.actions: + ?: ask + ",": begin + -: begin + :: begin + ;: begin + "!": exclaim + ...: muse + .: say .mudpy.linguistic.default_punctuation: . -.mudpy.linguistic.typos: { "i": "I", "i'd": "I'd", "i'll": "I'll", "i'm": "I'm", "teh": "the", "theyre": "they're", "youre": "you're" } +.mudpy.linguistic.typos: + i: I + i'd: I'd + i'll: I'll + i'm: I'm + teh: the + theyre: they're + youre: you're -.mudpy.limit.admins: [ admin ] +.mudpy.limit.admins: + - admin .mudpy.limit.avatars: 7 -#.mudpy.limit.backups: 10 +# .mudpy.limit.backups: 10 .mudpy.limit.password_tries: 3 -#.mudpy.log.file: mudpy.log +# .mudpy.log.file: var/mudpy.log .mudpy.log.lines: 1000 .mudpy.log.stdout: true -#.mudpy.log.syslog: mudpy +# .mudpy.log.syslog: mudpy .mudpy.movement.down.enter_term: above .mudpy.movement.down.exit_term: downward -.mudpy.movement.down.vector: [0,0,-1] +.mudpy.movement.down.vector: [0, 0, -1] .mudpy.movement.east.enter_term: the west .mudpy.movement.east.exit_term: to the east -.mudpy.movement.east.vector: [1,0,0] +.mudpy.movement.east.vector: [1, 0, 0] .mudpy.movement.north.enter_term: the south .mudpy.movement.north.exit_term: to the north -.mudpy.movement.north.vector: [0,1,0] +.mudpy.movement.north.vector: [0, 1, 0] .mudpy.movement.south.enter_term: the north .mudpy.movement.south.exit_term: to the south -.mudpy.movement.south.vector: [0,-1,0] +.mudpy.movement.south.vector: [0, -1, 0] .mudpy.movement.up.enter_term: below .mudpy.movement.up.exit_term: upward -.mudpy.movement.up.vector: [0,0,1] +.mudpy.movement.up.vector: [0, 0, 1] .mudpy.movement.west.enter_term: the east .mudpy.movement.west.exit_term: to the west -.mudpy.movement.west.vector: [-1,0,0] +.mudpy.movement.west.vector: [-1, 0, 0] -.mudpy.network.host: '::1' +.mudpy.network.host: ::1 .mudpy.network.port: 4000 -#.mudpy.process.daemon: true -#.mudpy.process.pidfile: mudpy.pid +# .mudpy.process.daemon: true +# .mudpy.process.pidfile: var/mudpy.pid .mudpy.timing.idle.disconnect.active: 6048000 .mudpy.timing.idle.disconnect.default: 6000 diff --git a/mudpy/tests/fixtures/test_daemon.yaml b/mudpy/tests/fixtures/test_daemon.yaml index 2a35aac..6814feb 100644 --- a/mudpy/tests/fixtures/test_daemon.yaml +++ b/mudpy/tests/fixtures/test_daemon.yaml @@ -1,3 +1,4 @@ +--- _copy: Copyright (c) 2004-2017 Jeremy Stanley . Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. @@ -5,20 +6,47 @@ _copy: Copyright (c) 2004-2017 Jeremy Stanley . _desc: This is an alternative top-level configuration with some values adjusted to better suit automated testing scenarios. -_load: [ archetype.yaml, command.yaml, menu.yaml, sample ] +_load: + - archetype.yaml + - command.yaml + - menu.yaml + - sample _lock: true -.mudpy.filing.groups: { account: { flags: [ private ] } } -.mudpy.filing.prefix: "." -.mudpy.filing.search: [ "", "etc", "share", "data" ] -.mudpy.filing.stash: "data" +.mudpy.filing.groups: + account: + flags: + - private +.mudpy.filing.prefix: . +.mudpy.filing.search: + - "" + - etc + - share + - data +.mudpy.filing.stash: data -.mudpy.linguistic.actions: { "?": "ask", ",": "begin", "-": "begin", ":": "begin", ";": "begin", "!": "exclaim", "...": "muse", ".": "say" } +.mudpy.linguistic.actions: + ?: ask + ",": begin + -: begin + :: begin + ;: begin + "!": exclaim + ...: muse + .: say .mudpy.linguistic.default_punctuation: . -.mudpy.linguistic.typos: { "i": "I", "i'd": "I'd", "i'll": "I'll", "i'm": "I'm", "teh": "the", "theyre": "they're", "youre": "you're" } +.mudpy.linguistic.typos: + i: I + i'd: I'd + i'll: I'll + i'm: I'm + teh: the + theyre: they're + youre: you're -.mudpy.limit.admins: [ admin ] +.mudpy.limit.admins: + - admin .mudpy.limit.avatars: 7 .mudpy.limit.backups: 3 .mudpy.limit.password_tries: 3 @@ -26,28 +54,28 @@ _lock: true .mudpy.log.file: var/mudpy.log .mudpy.log.lines: 1000 .mudpy.log.stdout: true -#.mudpy.log.syslog: mudpy +# .mudpy.log.syslog: mudpy .mudpy.movement.down.enter_term: above .mudpy.movement.down.exit_term: downward -.mudpy.movement.down.vector: [0,0,-1] +.mudpy.movement.down.vector: [0, 0, -1] .mudpy.movement.east.enter_term: the west .mudpy.movement.east.exit_term: to the east -.mudpy.movement.east.vector: [1,0,0] +.mudpy.movement.east.vector: [1, 0, 0] .mudpy.movement.north.enter_term: the south .mudpy.movement.north.exit_term: to the north -.mudpy.movement.north.vector: [0,1,0] +.mudpy.movement.north.vector: [0, 1, 0] .mudpy.movement.south.enter_term: the north .mudpy.movement.south.exit_term: to the south -.mudpy.movement.south.vector: [0,-1,0] +.mudpy.movement.south.vector: [0, -1, 0] .mudpy.movement.up.enter_term: below .mudpy.movement.up.exit_term: upward -.mudpy.movement.up.vector: [0,0,1] +.mudpy.movement.up.vector: [0, 0, 1] .mudpy.movement.west.enter_term: the east .mudpy.movement.west.exit_term: to the west -.mudpy.movement.west.vector: [-1,0,0] +.mudpy.movement.west.vector: [-1, 0, 0] -.mudpy.network.host: '::1' +.mudpy.network.host: ::1 .mudpy.network.port: 4000 .mudpy.process.daemon: true diff --git a/sample/__init__.yaml b/sample/__init__.yaml index 4d4c945..f4dde51 100644 --- a/sample/__init__.yaml +++ b/sample/__init__.yaml @@ -1,9 +1,12 @@ +--- _copy: Copyright (c) 2004-2017 Jeremy Stanley . Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. _desc: This is an index file for a sample collection of elements. -_load: [ area.yaml, prop.yaml ] +_load: + - area.yaml + - prop.yaml _lock: true diff --git a/sample/area.yaml b/sample/area.yaml index 6bc13ce..66f2b23 100644 --- a/sample/area.yaml +++ b/sample/area.yaml @@ -1,3 +1,4 @@ +--- _copy: Copyright (c) 2004-2017 Jeremy Stanley . Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. @@ -5,37 +6,56 @@ _copy: Copyright (c) 2004-2017 Jeremy Stanley . _desc: This is a set of sample locations for testing and demonstration purposes. -area.-1,0,0.description: This is the West Sample Location. It is merely provided as an example of what an area might look like. -area.-1,0,0.gridlinks: ['east'] +area.-1,0,0.description: This is the West Sample Location. It is merely + provided as an example of what an area might look like. +area.-1,0,0.gridlinks: + - east area.-1,0,0.name: West Sample Location area.-1,0,0.terrain: inside -area.0,-1,0.description: This is the South Sample Location. It is merely provided as an example of what an area might look like. -area.0,-1,0.gridlinks: ['north'] +area.0,-1,0.description: This is the South Sample Location. It is merely + provided as an example of what an area might look like. +area.0,-1,0.gridlinks: + - north area.0,-1,0.name: South Sample Location area.0,-1,0.terrain: inside -area.0,0,-1.description: This is the Lower Sample Location. It is merely provided as an example of what an area might look like. -area.0,0,-1.gridlinks: ['up'] +area.0,0,-1.description: This is the Lower Sample Location. It is merely + provided as an example of what an area might look like. +area.0,0,-1.gridlinks: + - up area.0,0,-1.name: Lower Sample Location area.0,0,-1.terrain: inside -area.0,0,0.description: This is the Center Sample Location. It is merely provided as an example of what an area might look like. -area.0,0,0.gridlinks: ['down', 'east', 'north', 'south', 'up', 'west'] +area.0,0,0.description: This is the Center Sample Location. It is merely + provided as an example of what an area might look like. +area.0,0,0.gridlinks: + - down + - east + - north + - south + - up + - west area.0,0,0.name: Center Sample Location area.0,0,0.terrain: inside -area.0,0,1.description: This is the Upper Sample Location. It is merely provided as an example of what an area might look like. -area.0,0,1.gridlinks: ['down'] +area.0,0,1.description: This is the Upper Sample Location. It is merely + provided as an example of what an area might look like. +area.0,0,1.gridlinks: + - down area.0,0,1.name: Upper Sample Location area.0,0,1.terrain: inside -area.0,1,0.description: This is the North Sample Location. It is merely provided as an example of what an area might look like. -area.0,1,0.gridlinks: ['south'] +area.0,1,0.description: This is the North Sample Location. It is merely + provided as an example of what an area might look like. +area.0,1,0.gridlinks: + - south area.0,1,0.name: North Sample Location area.0,1,0.terrain: inside -area.1,0,0.description: This is the East Sample Location. It is merely provided as an example of what an area might look like. -area.1,0,0.gridlinks: ['west'] +area.1,0,0.description: This is the East Sample Location. It is merely + provided as an example of what an area might look like. +area.1,0,0.gridlinks: + - west area.1,0,0.name: East Sample Location area.1,0,0.terrain: inside diff --git a/sample/prop.yaml b/sample/prop.yaml index 73576fb..bdf254d 100644 --- a/sample/prop.yaml +++ b/sample/prop.yaml @@ -1,3 +1,4 @@ +--- _copy: Copyright (c) 2004-2017 Jeremy Stanley . Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. diff --git a/share/archetype.yaml b/share/archetype.yaml index f1c345e..c51a639 100644 --- a/share/archetype.yaml +++ b/share/archetype.yaml @@ -1,3 +1,4 @@ +--- _copy: Copyright (c) 2004-2017 Jeremy Stanley . Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. @@ -9,4 +10,5 @@ _lock: true archetype.actor.is_actor: true archetype.avatar.default_location: area.0,0,0 -archetype.avatar.inherit: [ archetype.actor ] +archetype.avatar.inherit: + - archetype.actor diff --git a/share/command.yaml b/share/command.yaml index 67bfb7d..f0da2fc 100644 --- a/share/command.yaml +++ b/share/command.yaml @@ -1,3 +1,4 @@ +--- _copy: Copyright (c) 2004-2017 Jeremy Stanley . Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. @@ -8,32 +9,41 @@ _lock: true command.chat.action: command_chat(actor) command.chat.description: Enter and leave chat mode. -command.chat.help: The chat command toggles chat mode. When in chat mode, all input is passed as a parameter to the say command, unless prepended by an exclamation mark (!). For example, to leave chat mode, use:$(eol)$(eol) !chat +command.chat.help: The chat command toggles chat mode. When in chat mode, all + input is passed as a parameter to the say command, unless prepended by an + exclamation mark (!). For example, to leave chat mode, + use:$(eol)$(eol) !chat command.chat.see_also: say command.create.action: command_create(actor, parameters) command.create.administrative: true command.create.description: Create a new element in the universe. -command.create.help: Ways to create an element:$(eol)$(eol) create actor:fred$(eol) create other:garply foo/bar/baz +command.create.help: Ways to create an element:$(eol)$(eol) create + actor:fred$(eol) create other:garply foo/bar/baz command.delete.action: command_delete(actor, parameters) command.delete.administrative: true command.delete.description: Delete an existing facet from an element. -command.delete.help: You can delete any facet of an element as follows:$(eol)$(eol) delete area:boardroom terrain +command.delete.help: You can delete any facet of an element as + follows:$(eol)$(eol) delete area:boardroom terrain command.destroy.action: command_destroy(actor, parameters) command.destroy.administrative: true command.destroy.description: Destroy an existing element in the universe. -command.destroy.help: You can destroy any element in the universe as follows:$(eol)$(eol) destroy prop:dagger +command.destroy.help: You can destroy any element in the universe as + follows:$(eol)$(eol) destroy prop:dagger command.halt.action: command_halt(actor, parameters) command.halt.administrative: true command.halt.description: Shut down the world. -command.halt.help: This will save all active accounts, disconnect all clients and stop the entire program. +command.halt.help: This will save all active accounts, disconnect all clients + and stop the entire program. command.help.action: command_help(actor, parameters) command.help.description: List commands or get help on one. -command.help.help: This will list all comand words available to you along with a brief description or, alternatively, give you detailed information on one command. +command.help.help: This will list all comand words available to you along with + a brief description or, alternatively, give you detailed information on one + command. command.look.action: command_look(actor, parameters) command.look.description: Look around. @@ -41,28 +51,48 @@ command.look.help: With the look command, you can see where you are. command.move.action: command_move(actor, parameters) command.move.description: Move in a specific direction. -command.move.help: You move in a direction by entering:$(eol)$(eol) move north +command.move.help: You move in a direction by entering:$(eol)$(eol) move + north command.quit.action: command_quit(actor) command.quit.description: Leave the World. -command.quit.help: This will deactivate your avatar and return you to the main menu. +command.quit.help: This will deactivate your avatar and return you to the main + menu. command.reload.action: command_reload(actor) command.reload.administrative: true command.reload.description: Reload modules and data. -command.reload.help: This will reload all python modules and read-only data files. +command.reload.help: This will reload all python modules and read-only data + files. command.say.action: command_say(actor, parameters) command.say.description: State something out loud. -command.say.help: This allows you to speak to other characters within the same area. If you end your sentence with punctuation, the message displayed will incorporate an appropriate action (ask, exclaim, et cetera). It will also correct common typographical errors, add punctuation and capitalize your sentence as needed (assuming you speak one sentence per line). For example:$(eol)$(eol) > say youre sure i went teh wrong way?$(eol) You ask, "You're sure I went the wrong way?"$(eol)$(eol)If necessary, enclose literal statements in quotation marks:$(eol)$(eol) > say "youre sure i went teh wrong way?"$(eol) You say, "youre sure i went teh wrong way?" +command.say.help: This allows you to speak to other characters within the same + area. If you end your sentence with punctuation, the message displayed will + incorporate an appropriate action (ask, exclaim, et cetera). It will also + correct common typographical errors, add punctuation and capitalize your + sentence as needed (assuming you speak one sentence per line). For + example:$(eol)$(eol) > say youre sure i went teh wrong way?$(eol) You + ask, "You're sure I went the wrong way?"$(eol)$(eol)If necessary, enclose + literal statements in quotation marks:$(eol)$(eol) > say "youre sure i + went teh wrong way?"$(eol) You say, "youre sure i went teh wrong way?" command.say.see_also: chat command.set.action: command_set(actor, parameters) command.set.administrative: true command.set.description: Set a facet of an element. -command.set.help: Invoke it like this:$(eol)$(eol) set actor:dominique description You see nothing special. +command.set.help: Invoke it like this:$(eol)$(eol) set actor:dominique + description You see nothing special. command.show.action: command_show(actor, parameters) command.show.administrative: true command.show.description: Show various data. -command.show.help: Here are the possible incantations ( is required, [option] is optional, (note) is a note):$(eol)$(eol) show groups (list all element group names)$(eol) show group (list the elements in a group)$(eol) show element (list facet definitions for an element)$(eol) show file (list elements in a file)$(eol) show files (list all element data files)$(eol) show log [level [start [stop]]] (list logs above level from start to stop)$(eol) show result (evaluates a python expression)$(eol) show time (returns several current timer values) +command.show.help: Here are the possible incantations ( is required, + [option] is optional, (note) is a note):$(eol)$(eol) show groups (list + all element group names)$(eol) show group (list the elements in a + group)$(eol) show element (list facet definitions for an + element)$(eol) show file (list elements in a + file)$(eol) show files (list all element data files)$(eol) show log + [level [start [stop]]] (list logs above level from start to + stop)$(eol) show result (evaluates a python + expression)$(eol) show time (returns several current timer values) diff --git a/share/menu.yaml b/share/menu.yaml index 60a838b..2f756b0 100644 --- a/share/menu.yaml +++ b/share/menu.yaml @@ -1,3 +1,4 @@ +--- _copy: Copyright (c) 2004-2017 Jeremy Stanley . Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. @@ -10,9 +11,11 @@ menu.activate_avatar.action: user.activate_avatar_by_index(int(choice)-1) menu.activate_avatar.action_a: pass menu.activate_avatar.branch_a: main_utility menu.activate_avatar.choice_a: abort selection -menu.activate_avatar.create: dict([(str(x+1),y) for x,y in enumerate(user.list_avatar_names())]) +menu.activate_avatar.create: dict([(str(x+1),y) for x,y in + enumerate(user.list_avatar_names())]) menu.activate_avatar.default: "1" -menu.activate_avatar.description: This is the list of avatars available for you to awaken. +menu.activate_avatar.description: This is the list of avatars available for you + to awaken. menu.activate_avatar.prompt: Whom would you like to awaken? menu.active.prompt: @@ -26,10 +29,13 @@ menu.checking_new_account_name.choice_d: disconnect now menu.checking_new_account_name.choice_g: go back menu.checking_new_account_name.choice_n: new account menu.checking_new_account_name.default: d -menu.checking_new_account_name.description: There is no existing account for "$(account)" (note that an account name is not the same as a character name). Would you like to create a new account by this name, go back and enter a different name or disconnect now? +menu.checking_new_account_name.description: There is no existing account for + "$(account)" (note that an account name is not the same as a character + name). Would you like to create a new account by this name, go back and + enter a different name or disconnect now? menu.checking_new_account_name.prompt: "Enter your choice:" -menu.checking_password.echo: off +menu.checking_password.echo: false menu.checking_password.error_incorrect: Incorrect password, please try again... menu.checking_password.prompt: "Password:" @@ -37,7 +43,8 @@ menu.choose_gender.action: user.avatar.set("gender", user.menu_choices[choice]) menu.choose_gender.branch: choose_name menu.choose_gender.choice_f: female menu.choose_gender.choice_m: male -menu.choose_gender.description: First, your new avatar needs a birth gender. Avatars are one of male or female at birth. +menu.choose_gender.description: First, your new avatar needs a birth gender. + Avatars are one of male or female at birth. menu.choose_gender.prompt: "Pick a birth gender for your new avatar:" menu.choose_name.action: user.avatar.set("name", user.menu_choices[choice]) @@ -52,7 +59,11 @@ menu.choose_name.create_5: random_name() menu.choose_name.create_6: random_name() menu.choose_name.create_7: random_name() menu.choose_name.default: g -menu.choose_name.description: Your new avatar needs a name. This will be the name with which $(tpsp) grew up, and will initially be the name by which $(tpsp) is known to others. There are ways for your new avatar to make a name for $(tpop)self over time, so $(tpsp) won't be stuck going by such an unremarkable name forever. +menu.choose_name.description: Your new avatar needs a name. This will be the + name with which $(tpsp) grew up, and will initially be the name by which + $(tpsp) is known to others. There are ways for your new avatar to make a + name for $(tpop)self over time, so $(tpsp) won't be stuck going by such an + unremarkable name forever. menu.choose_name.prompt: "Choose a name for $(tpop):" menu.delete_account.action_y: user.destroy() @@ -61,31 +72,41 @@ menu.delete_account.branch_y: disconnecting menu.delete_account.choice_n: no, don't delete my account menu.delete_account.choice_y: yes, permanently delete my account menu.delete_account.default: n -menu.delete_account.description: By deleting your account, all your avatars will also be permanently deleted. -menu.delete_account.prompt: Are you certain you wish to permanently delete your account? +menu.delete_account.description: By deleting your account, all your avatars + will also be permanently deleted. +menu.delete_account.prompt: Are you certain you wish to permanently delete your + account? -menu.delete_avatar.action: user.delete_avatar(user.account.get("avatars")[int(choice)-1]) +menu.delete_avatar.action: user.delete_avatar( + user.account.get("avatars")[int(choice)-1]) menu.delete_avatar.action_a: pass menu.delete_avatar.branch: main_utility menu.delete_avatar.branch_a: main_utility menu.delete_avatar.choice_a: abort selection -menu.delete_avatar.create: dict([(str(x+1),y) for x,y in enumerate(user.list_avatar_names())]) +menu.delete_avatar.create: dict([(str(x+1),y) for x,y in + enumerate(user.list_avatar_names())]) menu.delete_avatar.default: a -menu.delete_avatar.description: This is the list of avatars available for you to delete. +menu.delete_avatar.description: This is the list of avatars available for you + to delete. menu.delete_avatar.prompt: Whom would you like to delete? menu.disconnecting.prompt: $(red)Disconnecting...$(nrm)$(eol) -menu.disconnecting_duplicates.prompt: $(red)Closing your previous connection...$(nrm)$(eol) +menu.disconnecting_duplicates.prompt: $(red)Closing your previous + connection...$(nrm)$(eol) menu.entering_account_name.description: $(inc:login.txt) -menu.entering_account_name.error_bad_name: Your account name needs to contain only digits (0-9) and letters (a-z). +menu.entering_account_name.error_bad_name: Your account name needs to contain + only digits (0-9) and letters (a-z). menu.entering_account_name.prompt: "Identify yourself:" -menu.entering_new_password.echo: off -menu.entering_new_password.error_weak: That is a weak password... Try something at least 7 characters long with a combination of mixed-case letters, numbers and punctuation/spaces. +menu.entering_new_password.echo: false +menu.entering_new_password.error_weak: That is a weak password... Try something + at least 7 characters long with a combination of mixed-case letters, + numbers and punctuation/spaces. menu.entering_new_password.prompt: 'Enter a new password for "$(account)":' -menu.entering_new_password.error_differs: The two passwords did not match. Try again... +menu.entering_new_password.error_differs: The two passwords did not match. Try + again... menu.active.initial: @@ -101,10 +122,13 @@ menu.main_utility.choice_d: delete an unwanted avatar menu.main_utility.choice_l: leave for now menu.main_utility.choice_p: permanently remove your account menu.main_utility.demand_a: user.account.get("avatars") -menu.main_utility.demand_c: len(user.account.get("avatars")) < universe.contents["mudpy.limit"].get("avatars") +menu.main_utility.demand_c: len(user.account.get("avatars")) < + universe.contents["mudpy.limit"].get("avatars") menu.main_utility.demand_d: user.account.get("avatars") -menu.main_utility.description: $(red)$(inc:banner.txt)$(nrm)$(eol)$(eol)From here you can awaken, create and delete avatars. An avatar is your persona in the World. You can also leave or permanently delete your account. +menu.main_utility.description: $(red)$(inc:banner.txt)$(nrm)$(eol)$(eol)From + here you can awaken, create and delete avatars. An avatar is your persona + in the World. You can also leave or permanently delete your account. menu.main_utility.prompt: What would you like to do? -menu.verifying_new_password.echo: off +menu.verifying_new_password.echo: false menu.verifying_new_password.prompt: "Enter the same new password again:"