X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/3da167f2074d2d8a44dd672ac11171e4c3a4ec21..6f659342dcffe7019f480223fe1ebb55a78818b6:/modules/core/m_metadata.c diff --git a/modules/core/m_metadata.c b/modules/core/m_metadata.c index 889bd88..dc85dfb 100644 --- a/modules/core/m_metadata.c +++ b/modules/core/m_metadata.c @@ -33,16 +33,32 @@ DECLARE_MODULE_AV1(metadata, NULL, NULL, metadata_clist, NULL, NULL, "$Revision$ void me_metadata(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) { - struct Client *target_p; + if(parv[2][0] == '#') + { + struct Channel *chptr; - if((target_p = find_client(parv[2])) == NULL) - return; + if((chptr = find_channel(parv[2])) == NULL) + return; - if(!target_p->user) - return; + if(!strcmp(parv[1], "ADD") && parv[4] != NULL) + channel_metadata_add(chptr, parv[3], parv[4], 0); + if(!strcmp(parv[1], "DELETE") && parv[3] != NULL) + channel_metadata_delete(chptr, parv[3], 0); + } - if(!strcmp(parv[1], "ADD") && parv[4] != NULL) - user_metadata_add(target_p, parv[3], parv[4], 0); - if(!strcmp(parv[1], "DELETE") && parv[3] != NULL) - user_metadata_delete(target_p, parv[3], 0); -} \ No newline at end of file + else + { + struct Client *target_p; + + if((target_p = find_client(parv[2])) == NULL) + return; + + if(!target_p->user) + return; + + if(!strcmp(parv[1], "ADD") && parv[4] != NULL) + user_metadata_add(target_p, parv[3], parv[4], 0); + if(!strcmp(parv[1], "DELETE") && parv[3] != NULL) + user_metadata_delete(target_p, parv[3], 0); + } +}