Add documentation on allow.
This commit is contained in:
parent
b96fc2e772
commit
e0187bd2c8
@ -658,8 +658,10 @@ async fn handle_user_consent(ctx: &mut VerbContext<'_>, source_player: &Item,
|
|||||||
Some(msg) => {
|
Some(msg) => {
|
||||||
match ctx.trans.find_session_for_player(&to_user_item.item_code).await? {
|
match ctx.trans.find_session_for_player(&to_user_item.item_code).await? {
|
||||||
None => {},
|
None => {},
|
||||||
Some((session, _)) =>
|
Some((session, session_dat)) =>
|
||||||
ctx.trans.queue_for_session(&session, Some(&(msg + "\n"))).await?
|
if cmd.consent_type != ConsentType::Sex || !session_dat.less_explicit_mode {
|
||||||
|
ctx.trans.queue_for_session(&session, Some(&(msg + "\n"))).await?;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,13 +115,68 @@ static REGISTERED_HELP_PAGES: phf::Map<&'static str, &'static str> = phf_map! {
|
|||||||
Hint: get and drop support an item name, but you can also prefix it \
|
Hint: get and drop support an item name, but you can also prefix it \
|
||||||
with a number - e.g. <bold>get 2 whip<reset>. Instead of a number, you can \
|
with a number - e.g. <bold>get 2 whip<reset>. Instead of a number, you can \
|
||||||
use <bold>all<reset>. You can also omit the item name to match any \
|
use <bold>all<reset>. You can also omit the item name to match any \
|
||||||
possession, e.g. <bold>drop all<reset> will drop everything you have.")
|
possession, e.g. <bold>drop all<reset> will drop everything you have."),
|
||||||
|
"allow" =>
|
||||||
|
ansi!("<bold>allow<reset> is the corner-stone of Blastmud's consent system. Consents in \
|
||||||
|
Blastmud let you choose how you want to play with other players (it only affects players, \
|
||||||
|
not NPCs). There are 4 types of consent: <bold>fight<reset> (for hostile actions like \
|
||||||
|
attack or pick), <bold>medicine<reset> (for medical actions, including those that might \
|
||||||
|
crit fail and do harm), <bold>gifts<reset> (lets them give you things), and \
|
||||||
|
<bold>visit<reset> (lets them on to a tile owned by you legally).\n\
|
||||||
|
\n\
|
||||||
|
To allow, an individual, use the syntax <bold>allow <reset>type <bold>from <reset>player options\n\
|
||||||
|
Options can be blank to use defaults, or can be one or more of the following, separated by spaces:\n\
|
||||||
|
\t<bold>until<reset> n <bold>minutes<reset> - replace n with a number. You can use hours, days, or weeks instead of minutes. This makes the consent expire. Fight expires after a week if you don't give a shorter period, and all other consent types have no expiry unless you specify one.\n\
|
||||||
|
\t<bold>until death<reset> - makes the consent valid only until you next die.\n\
|
||||||
|
\t<bold>allow private<reset> - makes the consent valid even in privately owned places. This is the default for anything except fight.\n\
|
||||||
|
\t<bold>disallow private<reset> - the opposite of allow private.\n\
|
||||||
|
\t<bold>in<reset> place - limits where fighting can happen to selected public places. You can use \
|
||||||
|
<bold>here<reset>, or if you know the code, a place name. You can use this option more than once to allow \
|
||||||
|
any place, and if you don't use the option, it means anywhere (subject to allow private).\n\
|
||||||
|
\t<bold>allow pick<reset> - fight only - include picking in your consent.\n\
|
||||||
|
\t<bold>allow revoke<reset> - fight only - allows the player to revoke any time with disallow.\n\
|
||||||
|
\n\
|
||||||
|
Consents for anything except fight take effect immediately to let the other player do the action.\n\
|
||||||
|
Consents for fight take effect when the other player executes a reciprocal allow command.\n\
|
||||||
|
Consents for anything except than fight can be revoked instantly with:\n\
|
||||||
|
\t<bold>disallow<reset> action <bold>from<reset> player\n\
|
||||||
|
Consent for fight can be revoked similarly if the consent used the <bold>allow revoke<reset> option. \
|
||||||
|
Otherwise, attempting to revoke informs the other player, and it is revoked when they also issue a \
|
||||||
|
disallow command.")
|
||||||
};
|
};
|
||||||
|
|
||||||
static EXPLICIT_HELP_PAGES: phf::Map<&'static str, &'static str> = phf_map! {
|
static EXPLICIT_HELP_PAGES: phf::Map<&'static str, &'static str> = phf_map! {
|
||||||
"fuck" =>
|
"fuck" =>
|
||||||
ansi!("Type <bold>fuck <lt>name><reset> to fuck someone. It only works if \
|
ansi!("Type <bold>fuck <lt>name><reset> to fuck someone. It only works if \
|
||||||
they have consented.")
|
they have consented."),
|
||||||
|
"allow" =>
|
||||||
|
ansi!("<bold>allow<reset> is the corner-stone of Blastmud's consent system. Consents in \
|
||||||
|
Blastmud let you choose how you want to play with other players (it only affects players, \
|
||||||
|
not NPCs). There are 5 types of consent: <bold>fight<reset> (for hostile actions like \
|
||||||
|
attack or pick), <bold>medicine<reset> (for medical actions, including those that might \
|
||||||
|
crit fail and do harm), <bold>gifts<reset> (lets them give you things), \
|
||||||
|
<bold>visit<reset> (lets them on to a tile owned by you legally), and <bold>fuck<reset> \
|
||||||
|
(lets them do fun but dirty things to you).\n\
|
||||||
|
\n\
|
||||||
|
To allow, an individual, use the syntax <bold>allow <reset>type <bold>from <reset>player options\n\
|
||||||
|
Options can be blank to use defaults, or can be one or more of the following, separated by spaces:\n\
|
||||||
|
\t<bold>until <reset> n <bold>minutes<reset> - replace n with a number. You can use hours, days, or weeks instead of minutes. This makes the consent expire. Fight expires after a week if you don't give a shorter period, and all other consent types have no expiry unless you specify one.\n\
|
||||||
|
\t<bold>until death<reset> - makes the consent valid only until you next die.\n\
|
||||||
|
\t<bold>allow private<reset> - makes the consent valid even in privately owned places. This is the default for anything except fight.\n\
|
||||||
|
\t<bold>disallow private<reset> - the opposite of allow private.\n\
|
||||||
|
\t<bold>in<reset> place - limits where fighting can happen to selected public places. You can use \
|
||||||
|
<bold>here<reset>, or if you know the code, a place name. You can use this option more than once to allow \
|
||||||
|
any place, and if you don't use the option, it means anywhere (subject to allow private).\n\
|
||||||
|
\t<bold>allow pick<reset> - fight only - include picking in your consent.\n\
|
||||||
|
\t<bold>allow revoke<reset> - fight only - allows the player to revoke any time with disallow.\n\
|
||||||
|
\n\
|
||||||
|
Consents for anything except fight take effect immediately to let the other player do the action.\n\
|
||||||
|
Consents for fight take effect when the other player executes a reciprocal allow command.\n\
|
||||||
|
Consents for anything except than fight can be revoked instantly with:\n\
|
||||||
|
\t<bold>disallow<reset> action <bold>from<reset> player\n\
|
||||||
|
Consent for fight can be revoked similarly if the consent used the <bold>allow revoke<reset> option. \
|
||||||
|
Otherwise, attempting to revoke informs the other player, and it is revoked when they also issue a \
|
||||||
|
disallow command.")
|
||||||
};
|
};
|
||||||
|
|
||||||
pub struct Verb;
|
pub struct Verb;
|
||||||
@ -138,7 +193,7 @@ impl UserVerb for Verb {
|
|||||||
} else {
|
} else {
|
||||||
help = help.or_else(|| REGISTERED_HELP_PAGES.get(remaining));
|
help = help.or_else(|| REGISTERED_HELP_PAGES.get(remaining));
|
||||||
if !ctx.session_dat.less_explicit_mode {
|
if !ctx.session_dat.less_explicit_mode {
|
||||||
help = help.or_else(|| EXPLICIT_HELP_PAGES.get(remaining))
|
help = EXPLICIT_HELP_PAGES.get(remaining).or(help);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
help = help.or_else(|| ALWAYS_HELP_PAGES.get(remaining));
|
help = help.or_else(|| ALWAYS_HELP_PAGES.get(remaining));
|
||||||
|
Loading…
Reference in New Issue
Block a user