D chan-mode System

By YmmaX on May 16, 2020

With this script users are automatically unhide under D chan-mode. Captha module is included and can be enabled.

;###
;# D chan-mode System
;# yM]x @ UnderNet
;###

ON *:LOAD: {
 .set %mychan $$?="Your #Channel"
}

on *:CONNECT: {
 if (%mychan != $null) {
  .timer 0 60 /mode %mychan
 }
}

RAW 324:*: {
 if ($2 == %mychan) {
  if (D isin $3) {
   .timerdmode 0 10 /names -d %mychan
  }
  if (D !isin $3) {
    if ($timer(dmode)) {
     .timerdmode off
    }
  }
 }
}
RAW 355:*: {
 if ($3 == %mychan) {
  if ($4-) {
   if (%Dcaptcha != on) {
    if ($me isop $3) {
     /mode $3 +vvv $4-
    }
    if ($me !isop $3) && (X isop $3) {
     /msg x voice $3 $4 $5 $6
    }
   }
   if (%Dcaptcha == on) {
    if (%captha_[ $+ [ $4 ] ] == $null) {
     .set %captha_ $+ $4 $rand(0,9) $+ $rand(a-z) $+ $rand(0,9) $+ $rand(A,Z) $+ $rand(0,9)
    }
    if (%captha_sent_[ $+ [ $4 ] ] == $null) {
     .msg $4 $4 hi! You are human? If so, please type here the following captcha (only 3 tries are allowed): %captha_[ $+ [ $4 ] ] | .msg $4 Also, if captha will be not validate, you will be blocked in %mychan channel, in 1 minute. | .set %captha_sent_ $+ $4 isset
     if ($me isop %mychan) { .timerban $+ $4 1 60 /mode %mychan +b $address($4,2) | .timerkick $+ $4 1 60 /kick %mychan $4 You did not respond to captha verification.
     if ($me !isop %mychan) && (X isop %mychan) { .timerban $+ $4 1 60 /msg x ban %mychan $address($4,2) 1h 75 You did not respond to captha verification.
    }
   }
  }
 }
}

on ^*:OPEN:?:*:{
 if (%Dcaptcha == on) {
  if (%captha_sent_[ $+ [ $nick ] ] != $null) {
   if ($strip($1) === %captha_[ $+ [ $nick ] ]) {
    if ($me isop %mychan) { /mode %mychan +v $nick }
    if ($me !isop %mychan) && (X isop %mychan) { /.msg x voice %mychan $nick }
    .unset %captha_[ $+ [ $nick ] ]
    .unset %captha_sent_[ $+ [ $nick ] ]
    .unset %captha_try_[ $+ [ $nick ] ]
    .timerban $+ $nick off
    .timerkick $+ $nick off
   }
   if ($strip($1) !== %captha_[ $+ [ $nick ] ]) && (%captha_try_[ $+ [ $nick ] ] < 4) {
    if ($me isop %mychan) { /kick %mychan $nick The captcha code you gave was incorrect. }
    if ($me !isop %mychan) && (X isop %mychan) { /.msg x kick %mychan $nick The captcha code you gave was incorrect. }
    if (%captha_try_[ $+ [ $nick ] ] == $null) { .set %captha_try_ $+ $nick 1 }
    if  (%captha_try_[ $+ [ $nick ] ] != $null) { inc %captha_try_[ $+ [ $nick ] }
   }
   if ($strip($1) !== %captha_[ $+ [ $nick ] ]) && (%captha_try_[ $+ [ $nick ] ] >= 3) {
    if ($me isop %mychan) { /mode %mychan +b $address($nick,2) | /kick %mychan $nick You gave too many incorrect captcha code. }
    if ($me !isop %mychan) && (X isop %mychan) { /.msg x ban %mychan $address($nick,2) 1h 75 You gave too many incorrect captcha code. }
    .unset %captha_[ $+ [ $nick ] ]
    .unset %captha_sent_[ $+ [ $nick ] ]
    .unset %captha_try_[ $+ [ $nick ] ]
    .timerban $+ $nick off
    .timerkick $+ $nick off
   }
  }
 }
}
on *:TEXT:*:?: {
 if (%Dcaptcha == on) {
  if (%captha_sent_[ $+ [ $nick ] ] != $null) {
   if ($strip($1) === %captha_[ $+ [ $nick ] ]) {
    if ($me isop %mychan) { /mode %mychan +v $nick }
    if ($me !isop %mychan) && (X isop %mychan) { /.msg x voice %mychan $nick }
    .unset %captha_[ $+ [ $nick ] ]
    .unset %captha_sent_[ $+ [ $nick ] ]
    .unset %captha_try_[ $+ [ $nick ] ]
    .timerban $+ $nick off
    .timerkick $+ $nick off
   }
   if ($strip($1) !== %captha_[ $+ [ $nick ] ]) && (%captha_try_[ $+ [ $nick ] ] < 4) {
    if ($me isop %mychan) { /kick %mychan $nick The captcha code you gave was incorrect. }
    if ($me !isop %mychan) && (X isop %mychan) { /.msg x kick %mychan $nick The captcha code you gave was incorrect. }
    if (%captha_try_[ $+ [ $nick ] ] == $null) { .set %captha_try_ $+ $nick 1 }
    if  (%captha_try_[ $+ [ $nick ] ] != $null) { inc %captha_try_[ $+ [ $nick ] }
   }
   if ($strip($1) !== %captha_[ $+ [ $nick ] ]) && (%captha_try_[ $+ [ $nick ] ] >= 3) {
    if ($me isop %mychan) { /mode %mychan +b $address($nick,2) | /kick %mychan $nick You gave too many incorrect captcha code. }
    if ($me !isop %mychan) && (X isop %mychan) { /.msg x ban %mychan $address($nick,2) 1h 75 You gave too many incorrect captcha code. }
    .unset %captha_[ $+ [ $nick ] ]
    .unset %captha_sent_[ $+ [ $nick ] ]
    .unset %captha_try_[ $+ [ $nick ] ]
    .timerban $+ $nick off
    .timerkick $+ $nick off
   }
  }
 }
}

menu status,channel {
 -
 D chan-mode System
 .Enable (Captcha):.set %Dcaptcha on
 .Disable (Captha):.set %Dcaptcha off
 -
}

/load -rs dcms.mrc

Comments

Sign in to comment.
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.