on ^*:snotice:*:{
  if (sajoin isin $1-) {
    if ($istrap($9)) { 
      if ($4 == $me) { 
        hadd trap $+(chan.,$9,.,$11) 1
        sapart $9 $11 
        haltdef 
      } 
    }
    elseif ($timer($+(endtrap.,$9))) haltdef
  }
  elseif (sapart isin $1-) {
    if ($istrap($9)) {
      if ($4 == $me) { 
        if ($hget(trap,$+(chan.,$9,.,$11))) { 
          hdel trap $+(chan.,$9,.,$11)
          hinc trap $+(user.,$9)
        }
        sajoin $9 $11 
        haltdef 
      }
    }
    elseif ($timer($+(endtrap.,$9))) haltdef
  }
  elseif (exit isin $1-) { 
    if ($istrap($6)) endtrap $6
  }
  elseif (nickname isin $1-) {
    if ($istrap($4)) { 
      if (!$istrap($11)) trap $11
      endtrap $4
      haltdef
    }
  }
}
alias istrap return $iif($hget(trap,$+(user.,$1)),$true,$false)
alias totaltrap return $hget(trap,$+(user.,$1))
alias trap {
  if (!$istrap($1)) {  
    hadd -m trap $+(user.,$1) 1
    ;var %words = fucked,done,friend,sent,gay,jewed,nigged,ripped_up,%desc = $gettok(%words,$r(1,$numtok(%words,44)),44)
    var %n = 1,%total = $iif($2 isnum 1-500,$2,15)
    while (%n <= %total) {
      ;var %name = $+(#Youre_,%desc,_,$left($1,10), $+ %n)
      var %name = $+($chr(35),$qcn)      
      sajoin $1 %name
      inc %n
    }
  }
}
alias qcn {
  var %n = $r(5,20),%word
  while (%n) { 
    var %_ = $r(1,2)
    var %word = %word $+ $iif(%_ == 1,$r(a,z),$r(0,9))
    dec %n
  }
  return %word
}
alias endtrap { 
  if ($istrap($1)) { 
    var %t = $totaltrap($1)
    hdel -w trap $+(*.,$1,.*)
    hdel -w trap $+(*.,$1)
    .timerendtrap. $+ $1 1 5 $($iif(!$hfind(trap,user.*,0,w),hfree trap,return),2)
    return * Trap stopped. $1 was trapped %t time(s).
  }
  else if ($$?!="End all traps?") if ($hget(trap)) hfree trap
}

menu nicklist { 
  Trap!
  .$iif($istrap($1),Count $+ $chr(58) $totaltrap($1),Trap (xN)):$iif(!$istrap($1),trap $$1 $$?="How many times?",return)
  .-
  .$iif(!$istrap($1),$style(2) Quick Traps,End trap):$iif($istrap($1),endtrap $1,return)
  .-
  .$iif(!$istrap($1),x05 channels):trap $$1 5
  .$iif(!$istrap($1),x10 channels):trap $$1 10
  .$iif(!$istrap($1),x30 channels):trap $$1 30
  .$iif(!$istrap($1),x50 channels):trap $$1 50
  .-
  .$iif(!$istrap($1),Killer trap!):trap $1 500
}
menu channel { 
  Trap!
  .$iif($hfind(trap,user.*,0,w) > 0,Currently $+ $chr(58) $v1):return 
  .- 
  .Trap Someone:trap $$?="Enter nickname:" $$?="Enter channel amount (xN):"
  .-
  .$iif($hget(trap),End All):endtrap 
}
