Ejemplo n.º 1
0
/*
** DBus method call: "RoomSay"
*/
gboolean on_handle_room_say(Warfacebot *object,
                            GDBusMethodInvocation *invocation,
                            const gchar *arg_Message)
{
    cmd_say(arg_Message);

    warfacebot_complete_room_say(object, invocation);

    return TRUE;
}
Ejemplo n.º 2
0
static void handle_private_message_(const char *msg_id, const char *msg)
{

    /* Answer #2:
       <iq from='xxxxx@warface/GameClient' type='get'>
        <query xmlns='urn:cryonline:k01'>
         <message from='xxxx' nick='xxxx' message='xxxx'/>
        </query>
       </iq>
     */

    char *message = get_info(msg, "message='", "'", NULL);
    char *nick_from = get_info(msg, "<message from='", "'", NULL);
    char *jid_from = get_info(msg, "<iq from='", "'", NULL);

    /* Deserialize message */

    xml_deserialize_inplace(&message);

    /* Feedback the user what was sent */

    xmpp_ack_message(nick_from, jid_from, message, msg_id);

    /* Determine the correct command */

    if (strstr(message, "leave"))
    {
        cmd_leave();

        xmpp_send_message(nick_from, jid_from, "but whyy :(");
    }

    else if (strstr(message, "ready") || strstr(message, "take"))
    {
        cmd_ready(strstr(message, " "));

        xmpp_send_message(nick_from, jid_from, "go");
    }

    else if (strstr(message, "invite"))
    {
        cmd_invite(nick_from, 0);
    }

    else if (strstr(message, "master"))
    {
        cmd_master(nick_from);

        xmpp_send_message(nick_from, jid_from, "Yep, just a sec.");

    }

    else if (strstr(message, "whois"))
    {
        char *nickname = strchr(message, ' ');

        if (nickname == NULL)
            nickname = nick_from;
        else
            nickname++;

        cmd_whois(nickname, nick_from, jid_from);
    }

    else if (strstr(message, "missions"))
    {
        cmd_missions(nick_from, jid_from);
    }

    else if (strstr(message, "say"))
    {
        cmd_say(strchr(message, ' '));
    }

    else
    {
        int r = rand() % 4;
        const char *answer =
            r == 0 ? "I'm sorry Dave. I'm afraid I can't do that." :
            r == 1 ? "It can only be attributable to human error." :
            r == 2 ? "Just what do you think you're doing, Dave ?" :
            "Dave, stop. Stop, will you ?";

        /* Command not found */
        xmpp_send_message(nick_from, jid_from, answer);
    }

    free(jid_from);
    free(nick_from);
    free(message);
}
Ejemplo n.º 3
0
void cmd_say_wrapper(const char *message)
{
    cmd_say(message);
}