Mute Bans

By SaNCaKx on Nov 08, 2016

on *:load: { 
  .echo -aq $input(Author: SaNCaK $+ $crlf $+ $crlf $+ Addon: Mute Ban $chr(40) $+ v5.4 $+ $chr(41) $+ $crlf $+ $crlf $+ Released at: 03 28 2014 $+ $crlf $+ $crlf $+ Contact: sancak@outlook.com.tr $+ $crlf $+ $crlf $+ Thank you for using this Addon,igo,Addon: Mute Ban $chr(40) $+ v5.4 $+ $chr(41))
  .echo -s _____________________________________________________
  .echo -s 0,1 Loading Mute Ban Add-On... 
  .echo -s 0,1 You are running mIRC $version on $os  $+ .
  .echo -s ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
}
on *:unload: { 
  .echo -aq $input(Author: SaNCaK $+ $crlf $+ $crlf $+ Addon: Mute Ban $chr(40) $+ v5.4 $+ $chr(41) $+ $crlf $+ $crlf $+ Released at: 03 28 2014 $+ $crlf $+ $crlf $+ Contact: sancak@outlook.com.tr $+ $crlf $+ $crlf $+ Unloading...,igo,Addon: Mute Ban $chr(40) $+ v5.4 $+ $chr(41))
}
menu nicklist {
  -
  .Mute
  ..$iif(!$hget(MuteEnforce,$+($network,$chan,$address($$1,2))),$style(2)) RemoveMute $$1: {
    var %mask $+($network,$chan,$address($$1,2))
    hdel MuteEnforce %mask
    if ($timer(%mask).com) {
      $v1
      .notice $$1 Your ban has been lifted early! You may now speak in $+($chan,.) Please try not to repeat the same activity that caused you to be muted.
      $+(.timer,%mask) off
    }
    else mode $chan -b $+(m:,$address($$1,2))
  }
  ..Mute $$1
  ...3 Minutes:mute $$1 180 $$?="Reason for Muting $$1"
  ...5 Minutes:mute $$1 300 $$?="Reason for Muting $$1"
  ...10 Minutes:mute $$1 600 $$?="Reason for Muting $$1"
  ...30 Minutes:mute $$1 1800 $$?="Reason for Muting $$1"
  ...60 Minutes:mute $$1 3600 $$?="Reason for Muting $$1"
  ...Set Time: {
      var %length $$?="Length of ban in minutes"
      mute $$1 $calc(%length * 60) $$?="Reason for Muting $$1"
    }
}
alias -l mute {
  var %nick $$1 
  if (%nick ison $chan) && ($regex($nick(#,$me).pnick,/[~&!@%]/)) {
    ialcheck %nick
    var %usermodes $replace($remove($nick(#,%nick).pnick,%nick),~,q,&,a,!,a,@,o,%,h,+,v), %addy $iif($address(%nick,2),$v1,%nick)
    mode $chan $+(+b-,%usermodes) $+(m:,%addy) $str($+(%nick,$chr(32)),$len(%usermodes))
    hadd -m MuteEnforce $+($network,$chan,%addy) mute
    if ($$2 isnum) {
      $+(.timer,$network,$chan,%addy) 1 $$2 removeMute $+($network,$chan,%addy) $chan $+(-b+,%usermodes) $+(m:,%addy) $str($+(%nick,$chr(32)),$len(%usermodes))
      msg $chan $+(,%nick,) You have been Muted! Duration: $duration($2) Reason: $iif($3-,$3-,Intolerable Behavior!)
    }
    else msg $chan %nick You have been Muted! $+(Reason:,$iif($2-,$2-,Intolerable Behavior!))
  }
  else echo -a Error: Either %nick is not on $chan or you do not have the correct privileges to use the mute command.
}
alias -l ialcheck {
  if (!$ial($1)) .who $1
}
alias -l removeMute {
  if ($($+($,$0),2) !ison $2) mode $2 -b $4
  else mode $2-
  hdel MuteEnforce $1
}
alias -l parseMode {
  tokenize 32 $1
  var %start 1, %finish $len($1), %+-, %modes -1, %location $+(parseMode,$chr(3),$network,$chr(3),$chan)
  while (%start <= %finish) {
    if ($mid($1,%start,1) isin +-) { %+- = $replace($v1,+,1,-,-1) | inc %modes }
    elseif ($mid($1,%start,1) isin qaohvb) {
      var %mode $+($v1,$($+($,$calc(%start - %modes)),2))
      hadd -m %location %mode $calc($hget(%location,%mode) + %+-)
    }
    inc %start
  }
  var %hash $regsubex($regsubex($str(.,$hget(%location,0).item),/(.)/g,$+($hget(%location,\n).data,$hget(%location,\n).item,$chr(32))),/(\b0[^\s]*)/g,)
  if ($hget(%location)) hfree $v1
  var %count 1, %max $numtok(%hash,32), %return, %temp
  while (%count <= %max) {
    %temp = $gettok(%hash,%count,32)
    %return = $+(%return,$chr(32),$iif($left(%temp,1) == -,$+(-,$mid(%temp,3)),$+(+,$mid(%temp,2))))
    inc %count
  } 
  return %return
}
On !*:rawmode:#: {
  checkMutes $network $chan $parsemode($1-)
}
alias -l checkMutes {
  var %network $1, %chan $2, %modes $3-
  tokenize 32 %modes
  checkMute %network %chan $*
}
alias -l checkMute {
  var %mode $left($3,2), %target $mid($3,3)
  if ((%mode isincs +v+h+o+a+q) && ($hget(MuteEnforce,$+($1,$2,$address(%target,2))))) mode $2 $replace(%mode,+,-) %target
  elseif ((%mode == -b) && ($hget(MuteEnforce,$+($1,$2,$gettok(%target,-1,58))))) mode $chan +b %target
}
;Syntax /m Nick TimeinMinutes Reason
alias m mute $$1 $iif($2 isnum,$calc($2 * 60),180 $2) $3-

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.