implement admin commands

This commit is contained in:
dusk 2025-10-04 01:57:48 +00:00
parent 5198f7d83b
commit a268f75d32
No known key found for this signature in database
15 changed files with 263 additions and 287 deletions

View file

@ -260,11 +260,13 @@ fn command_callback_to_name(cb: &str) -> String {
fn get_param_ty(kind: ParameterKind) -> &'static str {
match kind {
ParameterKind::OpaqueString | ParameterKind::OpaqueStringRemainder => "string",
ParameterKind::OpaqueInt => "int",
ParameterKind::MemberRef => "PKMember",
ParameterKind::MemberRefs => "List<PKMember>",
ParameterKind::GroupRef => "PKGroup",
ParameterKind::GroupRefs => "List<PKGroup>",
ParameterKind::SystemRef => "PKSystem",
ParameterKind::UserRef => "User",
ParameterKind::MemberPrivacyTarget => "MemberPrivacySubject",
ParameterKind::GroupPrivacyTarget => "GroupPrivacySubject",
ParameterKind::SystemPrivacyTarget => "SystemPrivacySubject",
@ -280,11 +282,13 @@ fn get_param_ty(kind: ParameterKind) -> &'static str {
fn get_param_param_ty(kind: ParameterKind) -> &'static str {
match kind {
ParameterKind::OpaqueString | ParameterKind::OpaqueStringRemainder => "Opaque",
ParameterKind::OpaqueInt => "Number",
ParameterKind::MemberRef => "Member",
ParameterKind::MemberRefs => "Members",
ParameterKind::GroupRef => "Group",
ParameterKind::GroupRefs => "Groups",
ParameterKind::SystemRef => "System",
ParameterKind::UserRef => "User",
ParameterKind::MemberPrivacyTarget => "MemberPrivacyTarget",
ParameterKind::GroupPrivacyTarget => "GroupPrivacyTarget",
ParameterKind::SystemPrivacyTarget => "SystemPrivacyTarget",

View file

@ -13,6 +13,7 @@ interface Parameter {
GroupRef(string group);
GroupRefs(sequence<string> groups);
SystemRef(string system);
UserRef(u64 user_id);
MessageRef(u64? guild_id, u64? channel_id, u64 message_id);
ChannelRef(u64 channel_id);
GuildRef(u64 guild_id);
@ -21,6 +22,7 @@ interface Parameter {
SystemPrivacyTarget(string target);
PrivacyLevel(string level);
OpaqueString(string raw);
OpaqueInt(i32 raw);
Toggle(boolean toggle);
Avatar(string avatar);
Null();

View file

@ -37,6 +37,9 @@ pub enum Parameter {
SystemRef {
system: String,
},
UserRef {
user_id: u64,
},
MessageRef {
guild_id: Option<u64>,
channel_id: Option<u64>,
@ -63,6 +66,9 @@ pub enum Parameter {
OpaqueString {
raw: String,
},
OpaqueInt {
raw: i32,
},
Toggle {
toggle: bool,
},
@ -80,11 +86,13 @@ impl From<ParameterValue> for Parameter {
ParameterValue::GroupRef(group) => Self::GroupRef { group },
ParameterValue::GroupRefs(groups) => Self::GroupRefs { groups },
ParameterValue::SystemRef(system) => Self::SystemRef { system },
ParameterValue::UserRef(user_id) => Self::UserRef { user_id },
ParameterValue::MemberPrivacyTarget(target) => Self::MemberPrivacyTarget { target },
ParameterValue::GroupPrivacyTarget(target) => Self::GroupPrivacyTarget { target },
ParameterValue::SystemPrivacyTarget(target) => Self::SystemPrivacyTarget { target },
ParameterValue::PrivacyLevel(level) => Self::PrivacyLevel { level },
ParameterValue::OpaqueString(raw) => Self::OpaqueString { raw },
ParameterValue::OpaqueInt(raw) => Self::OpaqueInt { raw },
ParameterValue::Toggle(toggle) => Self::Toggle { toggle },
ParameterValue::Avatar(avatar) => Self::Avatar { avatar },
ParameterValue::MessageRef(guild_id, channel_id, message_id) => Self::MessageRef {