mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Allow /role list and /affiliation list with no args
This commit is contained in:
parent
8b1d0bdc3f
commit
77684cda00
@ -1,5 +1,3 @@
|
||||
Reorganise/simplify room commands
|
||||
Add /room affiliation|role list with no arg to show all
|
||||
Fix room commands help
|
||||
Show role/affiliation on join
|
||||
Show role/affiliation on update
|
||||
|
@ -354,7 +354,7 @@ static struct cmd_t command_defs[] =
|
||||
{ "/affiliation set|list [affiliation] [jid]",
|
||||
"-----------------------------------------",
|
||||
"set affiliation jid - Set the affiliation of user with jid.",
|
||||
"list affiliation - List all users with the specified affiliation.",
|
||||
"list [affiliation] - List all users with the specified affiliation, or all if none specified.",
|
||||
"The affiliation may be one of owner, admin, member, outcast or none.",
|
||||
NULL } } },
|
||||
|
||||
@ -364,7 +364,7 @@ static struct cmd_t command_defs[] =
|
||||
{ "/role set|list [role] [nick]",
|
||||
"----------------------------",
|
||||
"set role nick - Set the role of occupant with nick.",
|
||||
"list role - List all occupants with the specified role.",
|
||||
"list [role] - List all occupants with the specified role, or all if none specified.",
|
||||
"The role may be one of moderator, participant, visitor or none.",
|
||||
NULL } } },
|
||||
|
||||
|
@ -2244,7 +2244,17 @@ cmd_affiliation(gchar **args, struct cmd_help_t help)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
char *room = ui_current_recipient();
|
||||
|
||||
char *affiliation = args[1];
|
||||
if (!affiliation) {
|
||||
iq_room_affiliation_list(room, "owner");
|
||||
iq_room_affiliation_list(room, "admin");
|
||||
iq_room_affiliation_list(room, "member");
|
||||
iq_room_affiliation_list(room, "outcast");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if ((g_strcmp0(affiliation, "owner") != 0) &&
|
||||
(g_strcmp0(affiliation, "admin") != 0) &&
|
||||
(g_strcmp0(affiliation, "member") != 0) &&
|
||||
@ -2254,7 +2264,6 @@ cmd_affiliation(gchar **args, struct cmd_help_t help)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
char *room = ui_current_recipient();
|
||||
ProfWin *window = wins_get_by_recipient(room);
|
||||
|
||||
if (g_strcmp0(cmd, "list") == 0) {
|
||||
@ -2303,7 +2312,16 @@ cmd_role(gchar **args, struct cmd_help_t help)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
char *room = ui_current_recipient();
|
||||
|
||||
char *role = args[1];
|
||||
if (!role) {
|
||||
iq_room_role_list(room, "moderator");
|
||||
iq_room_role_list(room, "participant");
|
||||
iq_room_role_list(room, "visitor");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if ((g_strcmp0(role, "visitor") != 0) &&
|
||||
(g_strcmp0(role, "participant") != 0) &&
|
||||
(g_strcmp0(role, "moderator") != 0) &&
|
||||
@ -2312,14 +2330,11 @@ cmd_role(gchar **args, struct cmd_help_t help)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
char *room = ui_current_recipient();
|
||||
ProfWin *window = wins_get_by_recipient(room);
|
||||
|
||||
if (g_strcmp0(cmd, "list") == 0) {
|
||||
if (g_strcmp0(role, "none") == 0) {
|
||||
win_save_print(window, '!', NULL, 0, 0, "", "Cannot list users with no role.");
|
||||
} else if (g_strcmp0(role, "visitor") == 0) {
|
||||
win_save_print(window, '!', NULL, 0, 0, "", "Cannot list users with visitor role.");
|
||||
} else {
|
||||
iq_room_role_list(room, role);
|
||||
}
|
||||
|
@ -1936,6 +1936,7 @@ _ui_handle_room_affiliation_list(const char * const room, const char * const aff
|
||||
win_save_print(window, '!', NULL, 0, 0, "", "");
|
||||
} else {
|
||||
win_save_vprint(window, '!', NULL, 0, 0, "", "No users found with affiliation: %s", affiliation);
|
||||
win_save_print(window, '!', NULL, 0, 0, "", "");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1974,6 +1975,7 @@ _ui_handle_room_role_list(const char * const room, const char * const role, GSLi
|
||||
win_save_print(window, '!', NULL, 0, 0, "", "");
|
||||
} else {
|
||||
win_save_vprint(window, '!', NULL, 0, 0, "", "No occupants found with role: %s", role);
|
||||
win_save_print(window, '!', NULL, 0, 0, "", "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user