feat: implement system proxy commands

This commit is contained in:
dusk 2025-04-04 05:24:09 +09:00
parent 047bdd870d
commit cb0a9eaf9f
No known key found for this signature in database
11 changed files with 93 additions and 29 deletions

View file

@ -12,6 +12,7 @@ pub enum ParameterValue {
OpaqueString(String),
MemberRef(String),
SystemRef(String),
GuildRef(String),
MemberPrivacyTarget(String),
PrivacyLevel(String),
Toggle(bool),
@ -42,6 +43,7 @@ impl Display for Parameter {
}
ParameterKind::MemberRef => write!(f, "<target member>"),
ParameterKind::SystemRef => write!(f, "<target system>"),
ParameterKind::GuildRef => write!(f, "<target guild>"),
ParameterKind::MemberPrivacyTarget => write!(f, "<privacy target>"),
ParameterKind::PrivacyLevel => write!(f, "[privacy level]"),
ParameterKind::Toggle => write!(f, "on/off"),
@ -74,6 +76,7 @@ pub enum ParameterKind {
OpaqueStringRemainder,
MemberRef,
SystemRef,
GuildRef,
MemberPrivacyTarget,
PrivacyLevel,
Toggle,
@ -87,6 +90,7 @@ impl ParameterKind {
ParameterKind::OpaqueStringRemainder => "string",
ParameterKind::MemberRef => "target",
ParameterKind::SystemRef => "target",
ParameterKind::GuildRef => "target",
ParameterKind::MemberPrivacyTarget => "member_privacy_target",
ParameterKind::PrivacyLevel => "privacy_level",
ParameterKind::Toggle => "toggle",
@ -114,8 +118,13 @@ impl ParameterKind {
Toggle::from_str(input).map(|t| ParameterValue::Toggle(t.into()))
}
ParameterKind::Avatar => Ok(ParameterValue::Avatar(input.into())),
ParameterKind::GuildRef => Ok(ParameterValue::GuildRef(input.into())),
}
}
pub(crate) fn skip_if_cant_match(&self) -> bool {
matches!(self, ParameterKind::Toggle)
}
}
pub enum MemberPrivacyTargetKind {