comparison src/protocols/jabber/jabber.c @ 9152:f65be7c97812

[gaim-migrate @ 9936] committing before I screw this up more committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Mon, 31 May 2004 07:23:50 +0000
parents 933a19e3a6b3
children b6051a2d3bb5
comparison
equal deleted inserted replaced
9151:e672ee8a12ec 9152:f65be7c97812
1308 JabberChat *chat = jabber_chat_find_by_conv(conv); 1308 JabberChat *chat = jabber_chat_find_by_conv(conv);
1309 jabber_chat_part(chat, args ? args[0] : NULL); 1309 jabber_chat_part(chat, args ? args[0] : NULL);
1310 return GAIM_CMD_RET_OK; 1310 return GAIM_CMD_RET_OK;
1311 } 1311 }
1312 1312
1313 static GaimCmdRet jabber_cmd_chat_ban(GaimConversation *conv,
1314 const char *cmd, char **args, char **error)
1315 {
1316 JabberChat *chat = jabber_chat_find_by_conv(conv);
1317
1318 if(!args || !args[0])
1319 return GAIM_CMD_RET_FAILED;
1320
1321 if(!jabber_chat_ban_user(chat, args[0], args[1])) {
1322 *error = g_strdup_printf(_("Unable to ban user %s"), args[0]);
1323 return GAIM_CMD_RET_FAILED;
1324 }
1325
1326 return GAIM_CMD_RET_OK;
1327 }
1328
1329 static GaimCmdRet jabber_cmd_chat_invite(GaimConversation *conv,
1330 const char *cmd, char **args, char **error)
1331 {
1332 if(!args || !args[0])
1333 return GAIM_CMD_RET_FAILED;
1334
1335 jabber_chat_invite(gaim_conversation_get_gc(conv),
1336 gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv)), args[1] ? args[1] : "",
1337 args[0]);
1338
1339 return GAIM_CMD_RET_OK;
1340 }
1341
1342 static GaimCmdRet jabber_cmd_chat_join(GaimConversation *conv,
1343 const char *cmd, char **args, char **error)
1344 {
1345 JabberChat *chat = jabber_chat_find_by_conv(conv);
1346 GHashTable *components;
1347
1348 if(!args || !args[0])
1349 return GAIM_CMD_RET_FAILED;
1350
1351 components = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);
1352
1353 g_hash_table_replace(components, "room", args[0]);
1354 g_hash_table_replace(components, "server", chat->server);
1355 g_hash_table_replace(components, "handle", chat->handle);
1356 if(args[1])
1357 g_hash_table_replace(components, "password", args[1]);
1358
1359 jabber_chat_join(gaim_conversation_get_gc(conv), components);
1360
1361 g_hash_table_destroy(components);
1362 return GAIM_CMD_RET_OK;
1363 }
1364
1365 static GaimCmdRet jabber_cmd_chat_kick(GaimConversation *conv,
1366 const char *cmd, char **args, char **error)
1367 {
1368 JabberChat *chat = jabber_chat_find_by_conv(conv);
1369
1370 if(!args || !args[0])
1371 return GAIM_CMD_RET_FAILED;
1372
1373 if(!jabber_chat_kick_user(chat, args[0], args[1])) {
1374 *error = g_strdup_printf(_("Unable to kick user %s"), args[0]);
1375 return GAIM_CMD_RET_FAILED;
1376 }
1377
1378 return GAIM_CMD_RET_OK;
1379 }
1380
1381 static GaimCmdRet jabber_cmd_chat_msg(GaimConversation *conv,
1382 const char *cmd, char **args, char **error)
1383 {
1384 JabberChat *chat = jabber_chat_find_by_conv(conv);
1385 char *who;
1386
1387 who = g_strdup_printf("%s@%s/%s", chat->room, chat->server, args[0]);
1388
1389 jabber_message_send_im(gaim_conversation_get_gc(conv), who, args[1], 0);
1390
1391 g_free(who);
1392 return GAIM_CMD_RET_OK;
1393 }
1394
1313 static void jabber_register_commands(void) 1395 static void jabber_register_commands(void)
1314 { 1396 {
1315 gaim_cmd_register("config", "", GAIM_CMD_P_PRPL, 1397 gaim_cmd_register("config", "", GAIM_CMD_P_PRPL,
1316 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY, "prpl-jabber", 1398 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY, "prpl-jabber",
1317 jabber_cmd_chat_config, _("Configure a chat room")); 1399 jabber_cmd_chat_config, _("Configure a chat room"));
1331 /* XXX: there needs to be a core /topic cmd, methinks */ 1413 /* XXX: there needs to be a core /topic cmd, methinks */
1332 gaim_cmd_register("topic", "s", GAIM_CMD_P_PRPL, 1414 gaim_cmd_register("topic", "s", GAIM_CMD_P_PRPL,
1333 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY | 1415 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY |
1334 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", 1416 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",
1335 jabber_cmd_chat_topic, _("View or change the topic")); 1417 jabber_cmd_chat_topic, _("View or change the topic"));
1418 gaim_cmd_register("ban", "ws", GAIM_CMD_P_PRPL,
1419 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY |
1420 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",
1421 jabber_cmd_chat_ban, _("Ban a user from the room"));
1422 gaim_cmd_register("invite", "ws", GAIM_CMD_P_PRPL,
1423 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY |
1424 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",
1425 jabber_cmd_chat_invite, _("Invite a user to the room"));
1426 gaim_cmd_register("join", "ws", GAIM_CMD_P_PRPL,
1427 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY |
1428 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",
1429 jabber_cmd_chat_join, _("Join a chat on this server"));
1430 gaim_cmd_register("kick", "ws", GAIM_CMD_P_PRPL,
1431 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY |
1432 GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",
1433 jabber_cmd_chat_kick, _("Kick a user from the room"));
1434 gaim_cmd_register("msg", "ws", GAIM_CMD_P_PRPL,
1435 GAIM_CMD_FLAG_CHAT | GAIM_CMD_FLAG_PRPL_ONLY,
1436 "prpl-jabber",
1437 jabber_cmd_chat_msg, _("Send a private message to another user"));
1336 } 1438 }
1337 1439
1338 static GaimPluginPrefFrame * 1440 static GaimPluginPrefFrame *
1339 get_plugin_pref_frame(GaimPlugin *plugin) { 1441 get_plugin_pref_frame(GaimPlugin *plugin) {
1340 GaimPluginPrefFrame *frame; 1442 GaimPluginPrefFrame *frame;