X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/1fe75e33ccfe31692f20633945cea14db888118a..82c11fc45cb57fc31f3dbfd97bd578865a0683ce:/modules/core/m_join.c diff --git a/modules/core/m_join.c b/modules/core/m_join.c index 81a6281..67360be 100644 --- a/modules/core/m_join.c +++ b/modules/core/m_join.c @@ -113,6 +113,9 @@ me_svsjoin(struct Client *client_p, struct Client *source_p, int parc, const cha if((target_p = find_person(parv[1])) == NULL) return 0; + if(!MyClient(target_p)) + return 0; + user_join(&me, target_p, parv[2], NULL); return 0; } @@ -532,7 +535,7 @@ ms_sjoin(struct Client *client_p, struct Client *source_p, int parc, const char { fl = 0; - for (i = 0; i < 2; i++) + for (i = 0; i < 4; i++) { if(*s == '!') { @@ -692,7 +695,7 @@ ms_sjoin(struct Client *client_p, struct Client *source_p, int parc, const char para[pargs++] = target_p->name; } } - if(fl & CHFL_CHANOP) + else if(fl & CHFL_CHANOP) { *mbuf++ = 'o'; para[pargs++] = target_p->name; @@ -742,7 +745,7 @@ ms_sjoin(struct Client *client_p, struct Client *source_p, int parc, const char para[pargs++] = target_p->name; } } - if(fl & CHFL_HALFOP) + else if(fl & CHFL_HALFOP) { *mbuf++ = 'h'; para[pargs++] = target_p->name;