Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/commands.c @ 568:eb1df2371581
Add "/room kick"
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 03 Dec 2005 13:32:29 +0100 |
parents | 467fec046a9b |
children | 29806b0fe830 |
comparison
equal
deleted
inserted
replaced
567:6f490c725999 | 568:eb1df2371581 |
---|---|
156 compl_add_category_word(COMPL_MULTILINE, "verbatim"); | 156 compl_add_category_word(COMPL_MULTILINE, "verbatim"); |
157 | 157 |
158 // Room category | 158 // Room category |
159 compl_add_category_word(COMPL_ROOM, "invite"); | 159 compl_add_category_word(COMPL_ROOM, "invite"); |
160 compl_add_category_word(COMPL_ROOM, "join"); | 160 compl_add_category_word(COMPL_ROOM, "join"); |
161 compl_add_category_word(COMPL_ROOM, "kick"); | |
161 compl_add_category_word(COMPL_ROOM, "leave"); | 162 compl_add_category_word(COMPL_ROOM, "leave"); |
162 compl_add_category_word(COMPL_ROOM, "names"); | 163 compl_add_category_word(COMPL_ROOM, "names"); |
163 compl_add_category_word(COMPL_ROOM, "nick"); | 164 compl_add_category_word(COMPL_ROOM, "nick"); |
164 compl_add_category_word(COMPL_ROOM, "privmsg"); | 165 compl_add_category_word(COMPL_ROOM, "privmsg"); |
165 compl_add_category_word(COMPL_ROOM, "remove"); | 166 compl_add_category_word(COMPL_ROOM, "remove"); |
1174 return NULL; | 1175 return NULL; |
1175 } | 1176 } |
1176 | 1177 |
1177 if (param_needed) { | 1178 if (param_needed) { |
1178 if (!arg) { | 1179 if (!arg) { |
1179 scr_LogPrint(LPRINT_NORMAL, "Wrong or missing parameter"); | 1180 scr_LogPrint(LPRINT_NORMAL, "Missing parameter"); |
1180 return NULL; | 1181 return NULL; |
1181 } | 1182 } |
1182 } | 1183 } |
1183 | 1184 |
1184 if (arg) | 1185 if (arg) |
1239 } | 1240 } |
1240 | 1241 |
1241 roomname = buddy_getjid(bud); | 1242 roomname = buddy_getjid(bud); |
1242 jb_room_invite(roomname, jid, arg); | 1243 jb_room_invite(roomname, jid, arg); |
1243 scr_LogPrint(LPRINT_LOGNORM, "Invitation sent to <%s>", jid); | 1244 scr_LogPrint(LPRINT_LOGNORM, "Invitation sent to <%s>", jid); |
1245 free_arg_lst(paramlst); | |
1246 } | |
1247 | |
1248 static void room_kick(gpointer bud, char *arg) | |
1249 { | |
1250 char **paramlst; | |
1251 gchar *nick; | |
1252 const char *roomid = buddy_getjid(bud); | |
1253 | |
1254 paramlst = split_arg(arg, 2, 1); // nickname, reason | |
1255 nick = *paramlst; | |
1256 arg = *(paramlst+1); | |
1257 | |
1258 if (!nick || !*nick) { | |
1259 scr_LogPrint(LPRINT_NORMAL, "Missing parameter (nickname)"); | |
1260 free_arg_lst(paramlst); | |
1261 return; | |
1262 } | |
1263 | |
1264 jb_room_kickban(roomid, NULL, nick, 1, arg); | |
1265 | |
1244 free_arg_lst(paramlst); | 1266 free_arg_lst(paramlst); |
1245 } | 1267 } |
1246 | 1268 |
1247 static void room_leave(gpointer bud, char *arg) | 1269 static void room_leave(gpointer bud, char *arg) |
1248 { | 1270 { |
1374 if ((arg = check_room_subcommand(arg, TRUE, NULL)) != NULL) | 1396 if ((arg = check_room_subcommand(arg, TRUE, NULL)) != NULL) |
1375 room_join(bud, arg); | 1397 room_join(bud, arg); |
1376 } else if (!strcasecmp(subcmd, "invite")) { | 1398 } else if (!strcasecmp(subcmd, "invite")) { |
1377 if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL) | 1399 if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL) |
1378 room_invite(bud, arg); | 1400 room_invite(bud, arg); |
1401 } else if (!strcasecmp(subcmd, "kick")) { | |
1402 if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL) | |
1403 room_kick(bud, arg); | |
1379 } else if (!strcasecmp(subcmd, "leave")) { | 1404 } else if (!strcasecmp(subcmd, "leave")) { |
1380 if ((arg = check_room_subcommand(arg, FALSE, bud)) != NULL) | 1405 if ((arg = check_room_subcommand(arg, FALSE, bud)) != NULL) |
1381 room_leave(bud, arg); | 1406 room_leave(bud, arg); |
1382 } else if (!strcasecmp(subcmd, "names")) { | 1407 } else if (!strcasecmp(subcmd, "names")) { |
1383 if ((arg = check_room_subcommand(arg, FALSE, bud)) != NULL) | 1408 if ((arg = check_room_subcommand(arg, FALSE, bud)) != NULL) |