implement members list, search later

This commit is contained in:
dusk 2025-09-28 15:34:47 +00:00
parent 228a177ea3
commit 3e7898e5cc
No known key found for this signature in database
3 changed files with 23 additions and 6 deletions

View file

@ -173,6 +173,8 @@ public partial class CommandTree
Commands.GroupRandomMember(var param, var flags) => ctx.Execute<Random>(GroupMemberRandom, m => m.GroupMember(ctx, param.target, flags.all, flags.show_embed)),
Commands.SystemLink => ctx.Execute<SystemLink>(Link, m => m.LinkSystem(ctx)),
Commands.SystemUnlink(var param, _) => ctx.Execute<SystemLink>(Unlink, m => m.UnlinkAccount(ctx, param.target)),
Commands.MembersList => ctx.Execute<SystemList>(SystemList, m => m.MemberList(ctx, ctx.System)),
Commands.SystemMembersList(var param, _) => ctx.Execute<SystemList>(SystemList, m => m.MemberList(ctx, param.target)),
_ =>
// this should only ever occur when deving if commands are not implemented...
ctx.Reply(
@ -410,10 +412,8 @@ public partial class CommandTree
private async Task HandleSystemCommandTargeted(Context ctx, PKSystem target)
{
if (ctx.Match("list", "l", "members", "ls"))
await ctx.CheckSystem(target).Execute<SystemList>(SystemList, m => m.MemberList(ctx, target));
else if (ctx.Match("find", "search", "query", "fd", "s"))
await ctx.CheckSystem(target).Execute<SystemList>(SystemFind, m => m.MemberList(ctx, target));
if (ctx.Match("find", "search", "query", "fd", "s"))
await ctx.CheckSystem(target).Execute<SystemList>(SystemFind, m => m.MemberList(ctx, target)); // TODO: this lmao (ParseListOptions)
else if (ctx.Match("groups", "gs"))
await ctx.CheckSystem(target).Execute<Groups>(GroupList, g => g.ListSystemGroups(ctx, target));
else if (ctx.Match("id"))

View file

@ -1,8 +1,18 @@
use command_parser::token::TokensIterator;
use super::*;
pub fn member() -> (&'static str, [&'static str; 1]) {
("member", ["m"])
}
pub fn targetted() -> TokensIterator {
tokens!(member(), MemberRef)
}
pub fn cmds() -> impl Iterator<Item = Command> {
let member = ("member", ["m"]);
let member_target = tokens!(member, MemberRef);
let member = member();
let member_target = targetted();
let name = ("name", ["n"]);
let description = ("description", ["desc"]);
@ -288,7 +298,10 @@ pub fn cmds() -> impl Iterator<Item = Command> {
[command!(member_target, "soulscream" => "member_soulscream").show_in_suggestions(false)]
.into_iter();
let member_list = [command!(member, "list" => "members_list")].into_iter();
member_new_cmd
.chain(member_list)
.chain(member_info_cmd)
.chain(member_name_cmd)
.chain(member_description_cmd)

View file

@ -251,6 +251,9 @@ pub fn edit() -> impl Iterator<Item = Command> {
]
.into_iter();
let system_list =
[command!(system_target, ("members", ["list"]) => "system_members_list")].into_iter();
system_new_cmd
.chain(system_name_self_cmd)
.chain(system_server_name_self_cmd)
@ -278,4 +281,5 @@ pub fn edit() -> impl Iterator<Item = Command> {
.chain(system_info_cmd)
.chain(system_front_cmd)
.chain(system_link)
.chain(system_list)
}