# HG changeset patch # User Marcus Lundblad # Date 1267991112 0 # Node ID 2f73b0a78f4f8f1b8a8c148692e8c593cb129538 # Parent 537f8fd047c6517d504f2cb60cd7019bc68d253a jabber: Added a /mood command make up for the lost PurplePluginAction to set moods (for UIs that doesn't yet implement the new general mood setting API) diff -r 537f8fd047c6 -r 2f73b0a78f4f libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Sat Mar 06 21:38:42 2010 +0000 +++ b/libpurple/protocols/jabber/jabber.c Sun Mar 07 19:45:12 2010 +0000 @@ -3315,6 +3315,29 @@ } } +static void +jabber_cmd_mood(PurpleConversation *conv, + const char *cmd, char **args, char **error, void *data) +{ + JabberStream *js = conv->account->gc->proto_data; + + if (js->pep) { + /* if no argument was given, unset mood */ + if (!args | !args[0]) { + jabber_mood_set(js, NULL, NULL); + } else if (!args[1]) { + jabber_mood_set(js, args[0], NULL); + } else { + jabber_mood_set(js, args[0], args[1]); + } + } else { + /* account does not support PEP, can't set a mood */ + purple_conversation_write(conv, NULL, + _("Account does not support PEP, can't set mood"), + PURPLE_MESSAGE_ERROR, time(NULL)); + } +} + void jabber_register_commands(void) { PurpleCmdId id; @@ -3428,6 +3451,13 @@ "prpl-jabber", jabber_cmd_buzz, _("buzz: Buzz a user to get their attention"), NULL); jabber_cmds = g_slist_prepend(jabber_cmds, GUINT_TO_POINTER(id)); + + id = purple_cmd_register("mood", "ws", PURPLE_CMD_P_PRPL, + PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | + PURPLE_CMD_FLAG_PRPL_ONLY | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, + "prpl-jabber", jabber_cmd_mood, + _("mood: Set current user mood"), NULL); + jabber_cmds = g_slist_prepend(jabber_cmds, GUINT_TO_POINTER(id)); } void jabber_unregister_commands(void)