/* expands to your usermode on channel, op '@', halfop '%', "+" voice */ static char *expando_cumode(SERVER_REC *server, void *item, int *free_ret) { if (IS_IRC_CHANNEL(item) && CHANNEL(item)->ownnick) { return NICK(CHANNEL(item)->ownnick)->op ? "@" : NICK(CHANNEL(item)->ownnick)->halfop ? "%" : NICK(CHANNEL(item)->ownnick)->voice ? "+" : ""; } return ""; }
/* expands to your usermode on channel, op '@', halfop '%', "+" voice or other */ static char *expando_cumode(SERVER_REC *server, void *item, int *free_ret) { if (IS_IRC_CHANNEL(item) && CHANNEL(item)->ownnick) { char other = NICK(CHANNEL(item)->ownnick)->other; if (other != '\0') { char *cumode = g_malloc(2); cumode[0] = other; cumode[1] = '\0'; *free_ret = TRUE; return cumode; } return NICK(CHANNEL(item)->ownnick)->op ? "@" : NICK(CHANNEL(item)->ownnick)->halfop ? "%" : NICK(CHANNEL(item)->ownnick)->voice ? "+" : ""; } return ""; }
void introduce_user(const char *user) { /* Watch out for infinite loops... */ #define LTSIZE 20 static int lasttimes[LTSIZE]; if (lasttimes[0] >= time(NULL)-3) fatal("introduce_user() loop detected"); memmove(lasttimes, lasttimes+1, sizeof(lasttimes)-sizeof(int)); lasttimes[LTSIZE-1] = time(NULL); #undef LTSIZE if (!user || stricmp(user, s_NickServ) == 0) NICK(s_NickServ, desc_NickServ, UMODE_o); if (!user || stricmp(user, s_ChanServ) == 0) { new_user(s_ChanServ); NICK(s_ChanServ, desc_ChanServ, UMODE_o); } }
void xmpp_nicklist_rename(MUC_REC *channel, XMPP_NICK_REC *nick, const char *oldnick, const char *newnick) { g_return_if_fail(IS_MUC(channel)); g_return_if_fail(IS_XMPP_NICK(nick)); g_return_if_fail(oldnick != NULL); g_return_if_fail(newnick != NULL); /* remove old nick from hash table */ nick_hash_remove(CHANNEL(channel), NICK(nick)); g_free(nick->nick); nick->nick = g_strdup(newnick); /* add new nick to hash table */ nick_hash_add(CHANNEL(channel), NICK(nick)); signal_emit("nicklist changed", 3, channel, nick, oldnick); if (strcmp(oldnick, channel->nick) == 0) { nicklist_set_own(CHANNEL(channel), NICK(nick)); g_free(channel->nick); channel->nick = g_strdup(newnick); } }
/* expands to your usermode on channel, op '@', halfop '%', "+" voice or other */ static char *expando_cumode(SERVER_REC *server, void *item, int *free_ret) { if (IS_IRC_CHANNEL(item) && CHANNEL(item)->ownnick) { char prefix = NICK(CHANNEL(item)->ownnick)->prefixes[0]; if (prefix != '\0') { char *cumode = g_malloc(2); cumode[0] = prefix; cumode[1] = '\0'; *free_ret = TRUE; return cumode; } } return ""; }
void introduce_user(const char *user) { #ifdef IRC_UNDERNET_P10 char *modos=NULL; #endif /* Watch out for infinite loops... */ #define LTSIZE 20 static int lasttimes[LTSIZE]; if (lasttimes[0] >= time(NULL)-3) fatal("introduce_user() loop detected"); memmove(lasttimes, lasttimes+1, sizeof(lasttimes)-sizeof(int)); lasttimes[LTSIZE-1] = time(NULL); #undef LTSIZE #ifdef IRC_UNDERNET_P10 if (!user || stricmp(user, s_NickServ) == 0 || stricmp(user, s_NickServP10) == 0) { s_NickServP10[0]=convert2y[ServerNumerico]; s_NickServP10[1]='\0'; strcat(s_NickServP10, "AA"); modos="+okdrh"; NICK(s_NickServ, modos, s_NickServP10, desc_NickServ); send_cmd(s_NickServ, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_NickServP10); send_cmd(s_NickServ, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_NickServP10); } if (!user || stricmp(user, s_ChanServ) == 0 || stricmp(user, s_ChanServP10) == 0) { s_ChanServP10[0]=convert2y[ServerNumerico]; s_ChanServP10[1]='\0'; strcat(s_ChanServP10, "AB"); modos="+Bkrhd"; NICK(s_ChanServ, modos, s_ChanServP10, desc_ChanServ); send_cmd(s_ChanServ, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_ChanServP10); send_cmd(s_ChanServ, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_ChanServP10); } if (!user || stricmp(user, s_MemoServ) == 0 || stricmp(user, s_MemoServP10) == 0) { s_MemoServP10[0]=convert2y[ServerNumerico]; s_MemoServP10[1]='\0'; strcat(s_MemoServP10, "AE"); modos="+krhd"; NICK(s_MemoServ, modos, s_MemoServP10, desc_MemoServ); send_cmd(s_MemoServ, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_MemoServP10); send_cmd(s_MemoServ, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_MemoServP10); } if (!user || stricmp(user, s_OperServ) == 0 || stricmp(user, s_OperServP10) == 0) { s_OperServP10[0]=convert2y[ServerNumerico]; s_OperServP10[1]='\0'; strcat(s_OperServP10, "AF"); modos="+Bkorhdi"; NICK(s_OperServ, modos, s_OperServP10, desc_OperServ); send_cmd(s_OperServ, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_OperServP10); send_cmd(s_OperServ, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_OperServP10); } if (!user || stricmp(user, s_NewsServ) == 0 || stricmp(user, s_NewsServP10) == 0) { s_NewsServP10[0]=convert2y[ServerNumerico]; s_NewsServP10[1]='\0'; strcat(s_NewsServP10, "AG"); modos="+krd"; NICK(s_NewsServ, modos, s_NewsServP10, desc_NewsServ); send_cmd(s_NewsServ, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_NewsServP10); send_cmd(s_NewsServ, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_NewsServP10); } if (!user || stricmp(user, s_SpamServ) == 0 || stricmp(user, s_SpamServP10) == 0) { s_SpamServP10[0]=convert2y[ServerNumerico]; s_SpamServP10[1]='\0'; strcat(s_SpamServP10, "AH"); modos="+kro"; NICK(s_SpamServ, modos, s_SpamServP10, desc_SpamServ); send_cmd(s_SpamServ, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_SpamServP10); send_cmd(s_SpamServ, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_SpamServP10); } if (!user || stricmp(user, s_GlobalNoticer) == 0 || stricmp(user, s_GlobalNoticerP10) == 0) { s_GlobalNoticerP10[0]=convert2y[ServerNumerico]; s_GlobalNoticerP10[1]='\0'; strcat(s_GlobalNoticerP10, "AI"); modos="+krhod"; NICK(s_GlobalNoticer, modos, s_GlobalNoticerP10, desc_GlobalNoticer); send_cmd(s_GlobalNoticer, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_GlobalNoticerP10); send_cmd(s_GlobalNoticer, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_GlobalNoticerP10); } if (!user || stricmp(user, s_HelpServ) == 0 || stricmp(user, s_HelpServP10) == 0) { s_HelpServP10[0]=convert2y[ServerNumerico]; s_HelpServP10[1]='\0'; strcat(s_HelpServP10, "AJ"); modos="+krd"; NICK(s_HelpServ, modos, s_HelpServP10, desc_HelpServ); send_cmd(s_HelpServ, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_HelpServP10); send_cmd(s_HelpServ, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_HelpServP10); } if (s_IrcIIHelp && (!user || stricmp(user, s_IrcIIHelp) == 0 || stricmp(user, s_IrcIIHelpP10) == 0)) { s_IrcIIHelpP10[0]=convert2y[ServerNumerico]; s_IrcIIHelpP10[1]='\0'; strcat(s_IrcIIHelpP10, "AK"); modos="+krd"; NICK(s_IrcIIHelp, modos, s_IrcIIHelpP10, desc_IrcIIHelp); send_cmd(s_IrcIIHelp, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_IrcIIHelpP10); send_cmd(s_IrcIIHelp, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_IrcIIHelpP10); } if (s_mIRCHelp && (!user || stricmp(user, s_mIRCHelp) == 0 || stricmp(user, s_mIRCHelpP10) == 0)) { s_IrcIIHelpP10[0]=convert2y[ServerNumerico]; s_IrcIIHelpP10[1]='\0'; strcat(s_IrcIIHelpP10, "AK"); modos="+krd"; NICK(s_mIRCHelp, modos, s_mIRCHelpP10, desc_mIRCHelp); send_cmd(s_IrcIIHelp, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_mIRCHelpP10); send_cmd(s_mIRCHelp, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_mIRCHelpP10); } if (!user || stricmp(user, s_EuskalIRCServ) == 0 || stricmp(user, s_EuskalIRCServP10) == 0) { s_EuskalIRCServP10[0]=convert2y[ServerNumerico]; s_EuskalIRCServP10[1]='\0'; strcat(s_EuskalIRCServP10, "AH"); modos="+kro"; NICK(s_EuskalIRCServ, modos, s_EuskalIRCServP10, desc_EuskalIRCServ); send_cmd(s_EuskalIRCServ, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_EuskalIRCServP10); send_cmd(s_EuskalIRCServ, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_EuskalIRCServP10); } if (!user || stricmp(user, s_CregServ) == 0 || stricmp(user, s_CregServP10) == 0) { s_CregServP10[0]=convert2y[ServerNumerico]; s_CregServP10[1]='\0'; strcat(s_CregServP10, "AJ"); modos="+krd"; NICK(s_CregServ, modos, s_CregServP10, desc_CregServ); send_cmd(s_CregServ, "J #%s", CanalOpers); send_cmd(ServerName, "M #%s +o %s", CanalOpers, s_CregServP10); send_cmd(s_CregServ, "J #%s", CanalAdmins); send_cmd(ServerName, "M #%s +o %s", CanalAdmins, s_CregServP10); } #else if (!user || stricmp(user, s_ChanServ) == 0) { NICK(s_ChanServ, desc_ChanServ); send_cmd(s_ChanServ, "MODE %s +Bbikdor", s_ChanServ); send_cmd(s_ChanServ, "JOIN #%s", CanalOpers); send_cmd(s_ChanServ, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_ChanServ); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalOpers, s_ChanServ); send_cmd(s_ChanServ, "MODE #%s +ntsil 1", CanalOpers); } if (!user || stricmp(user, s_NickServ) == 0) { NICK(s_NickServ, desc_NickServ); send_cmd(s_NickServ, "MODE %s +kdbBr", s_NickServ); send_cmd(s_NickServ, "JOIN #%s", CanalOpers); send_cmd(s_NickServ, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_NickServ); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalOpers, s_NickServ); } if (!user || stricmp(user, s_HelpServ) == 0) { NICK(s_HelpServ, desc_HelpServ); send_cmd(s_HelpServ, "MODE %s +dbBrk", s_HelpServ); send_cmd(s_HelpServ, "JOIN #%s", CanalAdmins); send_cmd(s_HelpServ, "JOIN #%s", CanalAyuda); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAyuda, s_HelpServ); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_HelpServ); } if (s_IrcIIHelp && (!user || stricmp(user, s_IrcIIHelp) == 0)) { NICK(s_IrcIIHelp, desc_IrcIIHelp); send_cmd(s_IrcIIHelp, "JOIN #%s", CanalAdmins); send_cmd(s_IrcIIHelp, "JOIN #%s", CanalAyuda); send_cmd(s_IrcIIHelp, "MODE %s +dbBrk", s_IrcIIHelp); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_IrcIIHelp); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAyuda, s_IrcIIHelp); } if (s_mIRCHelp && (!user || stricmp(user, s_mIRCHelp) == 0)) { NICK(s_mIRCHelp, desc_mIRCHelp); send_cmd(s_mIRCHelp, "JOIN #%s", CanalAdmins); send_cmd(s_mIRCHelp, "JOIN #%s", CanalAyuda); send_cmd(s_mIRCHelp, "MODE %s +dbBrk", s_mIRCHelp); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_mIRCHelp); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAyuda, s_mIRCHelp); } if (!user || stricmp(user, s_MemoServ) == 0) { NICK(s_MemoServ, desc_MemoServ); send_cmd(s_MemoServ, "MODE %s +krbdB", s_MemoServ); send_cmd(s_MemoServ, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_MemoServ); } if (!user || stricmp(user, s_OperServ) == 0) { NICK(s_OperServ, desc_OperServ); send_cmd(s_OperServ, "MODE %s +Bbikdor", s_OperServ); send_cmd(s_OperServ, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_OperServ); send_cmd(s_OperServ, "JOIN #%s", CanalOpers); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalOpers, s_OperServ); send_cmd(s_OperServ, "MODE #%s +ntsil 1", CanalAdmins); } if (!user || stricmp(user, s_CregServ) == 0) { NICK(s_CregServ, desc_CregServ); send_cmd(s_CregServ, "MODE %s +Bbikdor", s_CregServ); send_cmd(s_CregServ, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_CregServ); } if (!user || stricmp(user, s_EuskalIRCServ) == 0) { euskalirc(s_EuskalIRCServ, desc_EuskalIRCServ); send_cmd(s_EuskalIRCServ, "MODE %s +Bbikor", s_EuskalIRCServ); send_cmd(s_EuskalIRCServ, "JOIN #%s", CanalAdmins); send_cmd(s_EuskalIRCServ, "JOIN #%s", CanalAyuda); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAyuda, s_EuskalIRCServ); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_EuskalIRCServ); } if (!user || stricmp(user, s_BddServ) == 0) { CNICK(s_BddServ, desc_BddServ, "-", "-base.de.datos-"); send_cmd(s_BddServ, "MODE %s +iXkoBrd", s_BddServ); send_cmd(s_BddServ, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_BddServ); } if (!user || stricmp(user, s_GlobalNoticer) == 0) { NICK(s_GlobalNoticer, desc_GlobalNoticer); send_cmd(s_GlobalNoticer, "MODE %s +ikorBd", s_GlobalNoticer); send_cmd(s_GlobalNoticer, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_GlobalNoticer); } if (!user || stricmp(user, s_ShadowServ) == 0) { CNICK(s_ShadowServ, desc_ShadowServ, "-", "-"); send_cmd(s_ShadowServ, "MODE %s +rokbXBd", s_ShadowServ); send_cmd(s_ShadowServ, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_ShadowServ); } /* Esto, algún día funcionará... o eso espero ;) */ if (!user || stricmp(user, s_IpVirtual) == 0) { CNICK(s_IpVirtual, desc_IpVirtual, "ipvirtual", ServerName); send_cmd(s_IpVirtual, "MODE %s +rokhBX", s_IpVirtual); send_cmd(s_IpVirtual, "JOIN #%s", CanalAdmins); send_cmd(s_IpVirtual, "MODE #%s +o %s", CanalAdmins, s_IpVirtual); } if (!user || stricmp(user, s_NewsServ) == 0) { NICK(s_NewsServ, desc_NewsServ); send_cmd(s_NewsServ, "MODE %s +kBbord", s_NewsServ); send_cmd(s_NewsServ, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_NewsServ); } if (!user || stricmp(user, s_SpamServ) == 0) { SPAM(s_SpamServ, desc_SpamServ); send_cmd( s_SpamServ, "MODE %s +kBbor", s_SpamServ); send_cmd( s_SpamServ, "JOIN #%s", CanalAdmins); send_cmd(s_ChanServ, "MODE #%s +o %s", CanalAdmins, s_SpamServ); send_cmd(NULL, "STATS b"); } #endif }