mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Moved /room kick to /kick
This commit is contained in:
parent
6a2bc79ca6
commit
02a4beb6fe
@ -90,6 +90,7 @@ static char * _log_autocomplete(char *input, int *size);
|
||||
static char * _form_autocomplete(char *input, int *size);
|
||||
static char * _room_autocomplete(char *input, int *size);
|
||||
static char * _occupants_autocomplete(char *input, int *size);
|
||||
static char * _kick_autocomplete(char *input, int *size);
|
||||
|
||||
GHashTable *commands = NULL;
|
||||
|
||||
@ -318,6 +319,15 @@ static struct cmd_t command_defs[] =
|
||||
"info - Show room details.",
|
||||
NULL } } },
|
||||
|
||||
{ "/kick",
|
||||
cmd_kick, parse_args_with_freetext, 1, 2, NULL,
|
||||
{ "/kick nick [reason]", "Kick occupants from chat rooms.",
|
||||
{ "/kick nick [reason]",
|
||||
"-------------------",
|
||||
"nick - Nickname of the occupant to kick from the room.",
|
||||
"reason - Optional reason for kicking the occupant.",
|
||||
NULL } } },
|
||||
|
||||
{ "/occupants",
|
||||
cmd_occupants, parse_args, 1, 2, &cons_occupants_setting,
|
||||
{ "/occupants show|hide|default [show|hide]", "Show or hide room occupants.",
|
||||
@ -1264,7 +1274,6 @@ cmd_init(void)
|
||||
autocomplete_add(room_ac, "config");
|
||||
autocomplete_add(room_ac, "info");
|
||||
autocomplete_add(room_ac, "subject");
|
||||
autocomplete_add(room_ac, "kick");
|
||||
autocomplete_add(room_ac, "ban");
|
||||
autocomplete_add(room_ac, "role");
|
||||
autocomplete_add(room_ac, "affiliation");
|
||||
@ -1780,6 +1789,7 @@ _cmd_complete_parameters(char *input, int *size)
|
||||
g_hash_table_insert(ac_funcs, "/form", _form_autocomplete);
|
||||
g_hash_table_insert(ac_funcs, "/room", _room_autocomplete);
|
||||
g_hash_table_insert(ac_funcs, "/occupants", _occupants_autocomplete);
|
||||
g_hash_table_insert(ac_funcs, "/kick", _kick_autocomplete);
|
||||
|
||||
char parsed[*size+1];
|
||||
i = 0;
|
||||
@ -2320,6 +2330,23 @@ _occupants_autocomplete(char *input, int *size)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static char *
|
||||
_kick_autocomplete(char *input, int *size)
|
||||
{
|
||||
char *result = NULL;
|
||||
char *recipient = ui_current_recipient();
|
||||
Autocomplete nick_ac = muc_roster_ac(recipient);
|
||||
|
||||
if (nick_ac != NULL) {
|
||||
result = autocomplete_param_with_ac(input, size, "/kick", nick_ac, TRUE);
|
||||
if (result != NULL) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static char *
|
||||
_room_autocomplete(char *input, int *size)
|
||||
{
|
||||
@ -2394,13 +2421,6 @@ _room_autocomplete(char *input, int *size)
|
||||
return result;
|
||||
}
|
||||
|
||||
if (nick_ac != NULL) {
|
||||
result = autocomplete_param_with_ac(input, size, "/room kick", nick_ac, TRUE);
|
||||
if (result != NULL) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
if (jid_ac != NULL) {
|
||||
result = autocomplete_param_with_ac(input, size, "/room ban", jid_ac, TRUE);
|
||||
if (result != NULL) {
|
||||
|
@ -2107,6 +2107,40 @@ cmd_form(gchar **args, struct cmd_help_t help)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
cmd_kick(gchar **args, struct cmd_help_t help)
|
||||
{
|
||||
jabber_conn_status_t conn_status = jabber_get_connection_status();
|
||||
|
||||
if (conn_status != JABBER_CONNECTED) {
|
||||
cons_show("You are not currently connected.");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
win_type_t win_type = ui_current_win_type();
|
||||
if (win_type != WIN_MUC) {
|
||||
cons_show("Command '/kick' only applies in chat rooms.");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
char *room = ui_current_recipient();
|
||||
ProfWin *window = wins_get_by_recipient(room);
|
||||
|
||||
char *nick = args[0];
|
||||
if (nick) {
|
||||
if (muc_roster_contains_nick(room, nick)) {
|
||||
char *reason = args[1];
|
||||
iq_room_kick_occupant(room, nick, reason);
|
||||
} else {
|
||||
win_save_vprint(window, '!', NULL, 0, 0, "", "Occupant does not exist: %s", nick);
|
||||
}
|
||||
} else {
|
||||
cons_show("Usage: %s", help.usage);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
cmd_room(gchar **args, struct cmd_help_t help)
|
||||
{
|
||||
@ -2127,7 +2161,6 @@ cmd_room(gchar **args, struct cmd_help_t help)
|
||||
(g_strcmp0(args[0], "destroy") != 0) &&
|
||||
(g_strcmp0(args[0], "config") != 0) &&
|
||||
(g_strcmp0(args[0], "subject") != 0) &&
|
||||
(g_strcmp0(args[0], "kick") != 0) &&
|
||||
(g_strcmp0(args[0], "ban") != 0) &&
|
||||
(g_strcmp0(args[0], "role") != 0) &&
|
||||
(g_strcmp0(args[0], "affiliation") != 0) &&
|
||||
@ -2181,21 +2214,6 @@ cmd_room(gchar **args, struct cmd_help_t help)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (g_strcmp0(args[0], "kick") == 0) {
|
||||
char *nick = args[1];
|
||||
if (nick) {
|
||||
if (muc_roster_contains_nick(room, nick)) {
|
||||
char *reason = args[2];
|
||||
iq_room_kick_occupant(room, nick, reason);
|
||||
} else {
|
||||
win_save_vprint(window, '!', NULL, 0, 0, "", "Occupant does not exist: %s", nick);
|
||||
}
|
||||
} else {
|
||||
cons_show("Usage: %s", help.usage);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (g_strcmp0(args[0], "ban") == 0) {
|
||||
char *jid = args[1];
|
||||
if (jid) {
|
||||
|
@ -127,5 +127,6 @@ gboolean cmd_xmlconsole(gchar **args, struct cmd_help_t help);
|
||||
gboolean cmd_ping(gchar **args, struct cmd_help_t help);
|
||||
gboolean cmd_form(gchar **args, struct cmd_help_t help);
|
||||
gboolean cmd_occupants(gchar **args, struct cmd_help_t help);
|
||||
gboolean cmd_kick(gchar **args, struct cmd_help_t help);
|
||||
|
||||
#endif
|
||||
|
@ -22,7 +22,7 @@ typing=yellow
|
||||
gone=red
|
||||
error=red
|
||||
incoming=yellow
|
||||
roominfo=blue
|
||||
roominfo=yellow
|
||||
roommention=cyan
|
||||
me=blue
|
||||
them=green
|
||||
|
Loading…
Reference in New Issue
Block a user