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)