X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/5366977b4f3c7a50d170bf7a1e29b14c74944db7..d3455e2c7e2f9040e1b7628d9cf52b26a24dcefc:/extensions/m_ojoin.c diff --git a/extensions/m_ojoin.c b/extensions/m_ojoin.c index 3a769c2..53ed832 100644 --- a/extensions/m_ojoin.c +++ b/extensions/m_ojoin.c @@ -16,29 +16,26 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * - * $Id: m_ojoin.c 3161 2007-01-25 07:23:01Z nenolod $ + * $Id: m_ojoin.c 3554 2007-08-10 22:31:14Z jilles $ */ #include "stdinc.h" -#include "tools.h" -#include "patricia.h" #include "channel.h" -#include "client.h" +#include "client.h" #include "ircd.h" #include "numeric.h" -#include "s_log.h" +#include "logger.h" #include "s_serv.h" #include "s_conf.h" -#include "s_newconf.h" +#include "s_newconf.h" #include "send.h" #include "whowas.h" #include "irc_string.h" -#include "hash.h" +#include "hash.h" #include "msg.h" #include "parse.h" #include "modules.h" - static int mo_ojoin(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]); @@ -49,7 +46,7 @@ struct Message ojoin_msgtab = { mapi_clist_av1 ojoin_clist[] = { &ojoin_msgtab, NULL }; -DECLARE_MODULE_AV1(ojoin, NULL, NULL, ojoin_clist, NULL, NULL, "$Revision: 3161 $"); +DECLARE_MODULE_AV1(ojoin, NULL, NULL, ojoin_clist, NULL, NULL, "$Revision: 3554 $"); /* ** mo_ojoin @@ -65,7 +62,7 @@ mo_ojoin(struct Client *client_p, struct Client *source_p, int parc, const char /* admins only */ if(!IsOperAdmin(source_p)) { - sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "ojoin"); + sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "admin"); return 0; } @@ -105,7 +102,10 @@ mo_ojoin(struct Client *client_p, struct Client *source_p, int parc, const char if(*parv[1] == '@') { add_user_to_channel(chptr, source_p, CHFL_CHANOP); - sendto_server(client_p, chptr, NOCAPS, NOCAPS, + sendto_server(client_p, chptr, CAP_TS6, NOCAPS, + ":%s SJOIN %ld %s + :@%s", + me.id, (long) chptr->channelts, chptr->chname, source_p->id); + sendto_server(client_p, chptr, NOCAPS, CAP_TS6, ":%s SJOIN %ld %s + :@%s", me.name, (long) chptr->channelts, chptr->chname, source_p->name); sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN %s", @@ -118,7 +118,10 @@ mo_ojoin(struct Client *client_p, struct Client *source_p, int parc, const char else if(*parv[1] == '+') { add_user_to_channel(chptr, source_p, CHFL_VOICE); - sendto_server(client_p, chptr, NOCAPS, NOCAPS, + sendto_server(client_p, chptr, CAP_TS6, NOCAPS, + ":%s SJOIN %ld %s + :+%s", + me.id, (long) chptr->channelts, chptr->chname, source_p->id); + sendto_server(client_p, chptr, NOCAPS, CAP_TS6, ":%s SJOIN %ld %s + :+%s", me.name, (long) chptr->channelts, chptr->chname, source_p->name); sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN %s", @@ -130,7 +133,10 @@ mo_ojoin(struct Client *client_p, struct Client *source_p, int parc, const char else { add_user_to_channel(chptr, source_p, CHFL_PEON); - sendto_server(client_p, chptr, NOCAPS, NOCAPS, + sendto_server(client_p, chptr, CAP_TS6, NOCAPS, + ":%s JOIN %ld %s +", + source_p->id, (long) chptr->channelts, chptr->chname); + sendto_server(client_p, chptr, NOCAPS, CAP_TS6, ":%s SJOIN %ld %s + :%s", me.name, (long) chptr->channelts, chptr->chname, source_p->name); sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN %s", @@ -147,7 +153,7 @@ mo_ojoin(struct Client *client_p, struct Client *source_p, int parc, const char source_p->name, chptr->chname, chptr->topic_info, chptr->topic_time); } - source_p->localClient->last_join_time = CurrentTime; + source_p->localClient->last_join_time = rb_current_time(); channel_member_names(chptr, source_p, 1); return 0;