void cmd_leave_wrapper(void) { cmd_leave(); }
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); }