mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-11 16:20:13 +00:00
implement proxied message and permcheck commands
This commit is contained in:
parent
2b304457cc
commit
e4f38c76a9
19 changed files with 233 additions and 155 deletions
|
|
@ -266,6 +266,8 @@ fn get_param_ty(kind: ParameterKind) -> &'static str {
|
|||
ParameterKind::PrivacyLevel => "PrivacyLevel",
|
||||
ParameterKind::Toggle => "bool",
|
||||
ParameterKind::Avatar => "ParsedImage",
|
||||
ParameterKind::MessageRef => "Message.Reference",
|
||||
ParameterKind::ChannelRef => "Channel",
|
||||
ParameterKind::GuildRef => "Guild",
|
||||
}
|
||||
}
|
||||
|
|
@ -284,6 +286,8 @@ fn get_param_param_ty(kind: ParameterKind) -> &'static str {
|
|||
ParameterKind::PrivacyLevel => "PrivacyLevel",
|
||||
ParameterKind::Toggle => "Toggle",
|
||||
ParameterKind::Avatar => "Avatar",
|
||||
ParameterKind::MessageRef => "Message",
|
||||
ParameterKind::ChannelRef => "Channel",
|
||||
ParameterKind::GuildRef => "Guild",
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,9 @@ interface Parameter {
|
|||
GroupRef(string group);
|
||||
GroupRefs(sequence<string> groups);
|
||||
SystemRef(string system);
|
||||
GuildRef(string guild);
|
||||
MessageRef(u64? guild_id, u64? channel_id, u64 message_id);
|
||||
ChannelRef(u64 channel_id);
|
||||
GuildRef(u64 guild_id);
|
||||
MemberPrivacyTarget(string target);
|
||||
GroupPrivacyTarget(string target);
|
||||
SystemPrivacyTarget(string target);
|
||||
|
|
|
|||
|
|
@ -22,19 +22,53 @@ pub enum CommandResult {
|
|||
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum Parameter {
|
||||
MemberRef { member: String },
|
||||
MemberRefs { members: Vec<String> },
|
||||
GroupRef { group: String },
|
||||
GroupRefs { groups: Vec<String> },
|
||||
SystemRef { system: String },
|
||||
GuildRef { guild: String },
|
||||
MemberPrivacyTarget { target: String },
|
||||
GroupPrivacyTarget { target: String },
|
||||
SystemPrivacyTarget { target: String },
|
||||
PrivacyLevel { level: String },
|
||||
OpaqueString { raw: String },
|
||||
Toggle { toggle: bool },
|
||||
Avatar { avatar: String },
|
||||
MemberRef {
|
||||
member: String,
|
||||
},
|
||||
MemberRefs {
|
||||
members: Vec<String>,
|
||||
},
|
||||
GroupRef {
|
||||
group: String,
|
||||
},
|
||||
GroupRefs {
|
||||
groups: Vec<String>,
|
||||
},
|
||||
SystemRef {
|
||||
system: String,
|
||||
},
|
||||
MessageRef {
|
||||
guild_id: Option<u64>,
|
||||
channel_id: Option<u64>,
|
||||
message_id: u64,
|
||||
},
|
||||
ChannelRef {
|
||||
channel_id: u64,
|
||||
},
|
||||
GuildRef {
|
||||
guild_id: u64,
|
||||
},
|
||||
MemberPrivacyTarget {
|
||||
target: String,
|
||||
},
|
||||
GroupPrivacyTarget {
|
||||
target: String,
|
||||
},
|
||||
SystemPrivacyTarget {
|
||||
target: String,
|
||||
},
|
||||
PrivacyLevel {
|
||||
level: String,
|
||||
},
|
||||
OpaqueString {
|
||||
raw: String,
|
||||
},
|
||||
Toggle {
|
||||
toggle: bool,
|
||||
},
|
||||
Avatar {
|
||||
avatar: String,
|
||||
},
|
||||
}
|
||||
|
||||
impl From<ParameterValue> for Parameter {
|
||||
|
|
@ -52,7 +86,13 @@ impl From<ParameterValue> for Parameter {
|
|||
ParameterValue::OpaqueString(raw) => Self::OpaqueString { raw },
|
||||
ParameterValue::Toggle(toggle) => Self::Toggle { toggle },
|
||||
ParameterValue::Avatar(avatar) => Self::Avatar { avatar },
|
||||
ParameterValue::GuildRef(guild) => Self::GuildRef { guild },
|
||||
ParameterValue::MessageRef(guild_id, channel_id, message_id) => Self::MessageRef {
|
||||
guild_id,
|
||||
channel_id,
|
||||
message_id,
|
||||
},
|
||||
ParameterValue::ChannelRef(channel_id) => Self::ChannelRef { channel_id },
|
||||
ParameterValue::GuildRef(guild_id) => Self::GuildRef { guild_id },
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue