]> jfr.im git - irc/quakenet/newserv.git/blobdiff - chanserv/usercmds/userflags.c
ACHIEVEMENTS: Big update
[irc/quakenet/newserv.git] / chanserv / usercmds / userflags.c
index 9702143323aec955f9871cb570a3db3f656b097f..8792ded87fc1e9d5a0d7623b23c6a7de0dcc4ff7 100644 (file)
@@ -11,8 +11,8 @@
  * CMDHELP: Changes your current user flags, where:
  * CMDHELP: flags - changes to apply, in the usual flag letters preceded by +/- format.
  * CMDHELP: Valid user flags are:
- * CMDHELP:  +c ACH'MENTS - enables achievements system - allows use of achievement commands
- * CMDHELP:                 and sends achievement messages.
+ * DISHELP:  +c ACH'MENTS - enables achievements system - allows use of achievement commands
+ * DISHELP:                 and sends achievement messages.
  * CMDHELP:  +n NOTICE    - causes the bot to sent you NOTICEs.  If this flag is not set the
  * CMDHELP:                 bot will communicate using PRIVMSG.
  */
@@ -25,7 +25,6 @@
 int csu_douserflags(void *source, int cargc, char **cargv) {
   nick *sender=source;
   reguser *rup=getreguserfromnick(sender), *target;
-  authname *anp;
   int arg=0, wasorisoper;
   flag_t flagmask, changemask, oldflags;
   char flagbuf[30];
@@ -80,6 +79,10 @@ int csu_douserflags(void *source, int cargc, char **cargv) {
     if (UIsDev(rup))
       changemask=QUFLAG_ALL;
     
+    if (time(NULL) > ACHIEVEMENTS_START) {
+      changemask |= QUFLAG_ACHIEVEMENTS;
+    }
+    
     wasorisoper = UHasOperPriv(target);
     setflags(&target->flags, changemask, cargv[arg], ruflags, REJECT_NONE);
     wasorisoper |= UHasOperPriv(target);
@@ -92,7 +95,7 @@ int csu_douserflags(void *source, int cargc, char **cargv) {
     cs_log(sender,"USERFLAGS #%s %s (%s -> %s)",target->username,cargv[arg],flagbuf,printflags(target->flags, ruflags));
 
     /* only warn about interesting changes */
-    if((target->flags ^ oldflags) & ~(QUFLAG_NOTICE | QUFLAG_INFO | QUFLAG_TRUST)) {
+    if((target->flags ^ oldflags) & ~(QUFLAG_NOTICE | QUFLAG_INFO | QUFLAG_TRUST | QUFLAG_ACHIEVEMENTS)) {
       chanservwallmessage("%s (%s) just used USERFLAGS on %s %s (%s -> %s)",sender->nick,rup->username,target->username,cargv[arg],flagbuf,printflags(target->flags,ruflags));
 
 #ifdef AUTHGATE_WARNINGS
@@ -113,7 +116,7 @@ int csu_douserflags(void *source, int cargc, char **cargv) {
   if (cs_privcheck(QPRIV_VIEWUSERFLAGS, sender))
     flagmask=QUFLAG_ALL;
   else
-    flagmask=QUFLAG_INFO | QUFLAG_NOTICE | QUFLAG_OPER | QUFLAG_HELPER | QUFLAG_DEV | QUFLAG_ADMIN | QUFLAG_STAFF;
+    flagmask=QUFLAG_INFO | QUFLAG_NOTICE | QUFLAG_OPER | QUFLAG_HELPER | QUFLAG_DEV | QUFLAG_ADMIN | QUFLAG_STAFF | QUFLAG_ACHIEVEMENTS;
   
   chanservstdmessage(sender, QM_CURUSERFLAGS, target->username, printflagsornone(target->flags & flagmask, ruflags));