All I did was restructure the (awful) goto statements and everything seems to be working. Would you mind debugging some yourself to see where something is going wrong, and providing reproducible steps, with your expected and actual results?

(these events need to be in their own file)

Code:
on @*:text:*:#:linkpost $1-
on @*:action:*:#:linkpost $1-
on @*:notice:*:#:linkpost $1-
alias -l linkpost {
  if (%p) || ($hfind(permit,$nick)) { return }

  inc -u4 %p
  var %purge /^!(link\so(n|ff)|(permit))\b/iS
  var %domain com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk
  var %link /(?<=^|\s)((?>\S{3,8}:\/\/|w{3}\56)\S+)|\56( $+ %domain $+ )\b/iS
  
  if ($findtok(%chanon1,#,1,32)) && ($nick(#,$nick,vr)) && ($regex($1-,%link)) {
    timeout # $nick | /mode # -b $nick
    msg # $nick You did not have permission to post a link ask a mod to !permit you
    msg # /timeout $nick 1
  }
  elseif ($regex($1-,%purge)) && ($regml(1) == permit) && ($nick isop #) && ($$2 ison #) {
    hadd -mz permit $v1 30 | notice $v1 You have 30 seconds to post a link. Starting now!
    msg # You now have 30 seconds to post a link!
  }
  elseif ($regml(1) == link on) && ($nick isop #) {
    if (!$istok(%chanon1,#,32),a,b) {
      set %chanon1 $addtok(%chanon,#,32)
      .msg # My Link Protection Is Now on in: $+($chr(2),#)
      halt
    }
    else {
      .msg # $nick $+ , my link protection is already on in $+($chr(2),#,$chr(2),!)
    }
  }
  elseif ($regml(1) == link off) && ($nick isop #) {
    if ($istok(%chanon1,#,32),c,d) {
      set %chanon1 $remtok(%chanon,#,1,32)
      .msg # My Link Protection Is Now off in: $+($chr(2),#)
      halt
    }
    else {
      .msg # $nick $+ , My link protection is already off!
    }
  }
}


Edit: This is a slow moving forum, no need to bump posts so soon (or ever)

Last edited by Loki12583; 21/01/14 06:59 PM.