mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-11 00:07:55 +00:00
feat: implement system proxy commands
This commit is contained in:
parent
047bdd870d
commit
cb0a9eaf9f
11 changed files with 93 additions and 29 deletions
|
|
@ -1,7 +1,8 @@
|
|||
use std::{env, fmt::Write, fs, path::PathBuf, str::FromStr};
|
||||
|
||||
use command_parser::{
|
||||
command, parameter::{Parameter, ParameterKind}, token::Token
|
||||
parameter::{Parameter, ParameterKind},
|
||||
token::Token,
|
||||
};
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
|
@ -16,6 +17,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
|
||||
writeln!(&mut glue, "#nullable enable\n")?;
|
||||
writeln!(&mut glue, "using PluralKit.Core;\n")?;
|
||||
writeln!(&mut glue, "using Myriad.Types;")?;
|
||||
writeln!(&mut glue, "namespace PluralKit.Bot;\n")?;
|
||||
|
||||
let mut record_fields = String::new();
|
||||
|
|
@ -114,7 +116,11 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
}
|
||||
}
|
||||
let mut command_reply_format = String::new();
|
||||
if command.flags.iter().any(|flag| flag.get_name() == "plaintext") {
|
||||
if command
|
||||
.flags
|
||||
.iter()
|
||||
.any(|flag| flag.get_name() == "plaintext")
|
||||
{
|
||||
writeln!(
|
||||
&mut command_reply_format,
|
||||
r#"if (plaintext) return ReplyFormat.Plaintext;"#,
|
||||
|
|
@ -166,6 +172,7 @@ fn get_param_ty(kind: ParameterKind) -> &'static str {
|
|||
ParameterKind::PrivacyLevel => "string",
|
||||
ParameterKind::Toggle => "bool",
|
||||
ParameterKind::Avatar => "ParsedImage",
|
||||
ParameterKind::GuildRef => "Guild",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -178,6 +185,7 @@ fn get_param_param_ty(kind: ParameterKind) -> &'static str {
|
|||
ParameterKind::PrivacyLevel => "PrivacyLevel",
|
||||
ParameterKind::Toggle => "Toggle",
|
||||
ParameterKind::Avatar => "Avatar",
|
||||
ParameterKind::GuildRef => "Guild",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ interface CommandResult {
|
|||
interface Parameter {
|
||||
MemberRef(string member);
|
||||
SystemRef(string system);
|
||||
GuildRef(string guild);
|
||||
MemberPrivacyTarget(string target);
|
||||
PrivacyLevel(string level);
|
||||
OpaqueString(string raw);
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ pub enum CommandResult {
|
|||
pub enum Parameter {
|
||||
MemberRef { member: String },
|
||||
SystemRef { system: String },
|
||||
GuildRef { guild: String },
|
||||
MemberPrivacyTarget { target: String },
|
||||
PrivacyLevel { level: String },
|
||||
OpaqueString { raw: String },
|
||||
|
|
@ -41,6 +42,7 @@ 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 },
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue