All pastes #1087323 Raw Edit

Auto-Voice Script

public text v1 · immutable
#1087323 ·published 2008-07-30 16:21 UTC
rendered paste body
;#############################################
;#      Channel Management Script v1.0       #
;#############################################

alias cm.help {
  echo -ae Commands:
  echo -a /av.addchan Syntax: 4/av.addchan #channel 1 Adds specified channel to the auto-voice list
  echo -a /av.delchan Syntax: 4/av.delchan #channel 1 Deletes specified channel from the auto-voice list
  echo -a /av.viewlist Syntax: 4/av.viewlist 1 Lets you view the list of channels currently with auto-voice enabled 
}
alias hash.init {
  hmake ChanManagement 100
  hadd ChanManagement av.Channels
  hadd ChanManagement av.Exceptions
}

on *:START: {
  hmake ChanManagement 100
  if $isFile(ChanManagement.hsh) { 
    hload ChanManagement ChanManagement.hsh
  }
  Else {
    hash.init
    hsave -o ChanManagement ChanManagement.hsh
  }
}

on *:EXIT: {
  hsave -o ChanManagement ChanManagement.hsh
  hfree ChanManagement
}

on *:JOIN:#: {
  if (!$findtok($hget(ChanManagement,av.Exceptions),$address($nick,3),1,32)) {
    if ($istok($hget(ChanManagement,av.Channels),$chan,32)) {
      if (!$istok($hget(ChanManagement,av.Channels),$nick,32)) {
        .mode $chan +v $nick
      }
    }
  }
}

alias av.addchan { 
  hadd ChanManagement av.Channels $addtok($hget(ChanManagement,av.Channels),$$1,32)
  echo -ae Channel added to the auto-voice channel list.
}

alias av.delchan { 
  if ($findtok($hget(ChanManagement,av.Channels),$$1,1,32)) {
    hadd ChanManagement av.Channels $deltok($hget(ChanManagement,av.Channels),$findtok($hget(ChanManagement,av.Channels),$$1,1,32),32)
    echo -ae Channel deleted from the auto-voice channel list.
  }
  Else { echo -ae Channel not found in the auto-voice channel list. }
}

alias av.delexcept { 
  if ($findtok($hget(ChanManagement,av.Exceptions),$address($$1,3),1,32)) {
    hadd ChanManagement av.Exceptions $deltok($hget(ChanManagement,av.Exceptions),$findtok($hget(ChanManagement,av.Exceptions),$address($$1,3),1,32),32)
    echo -ae User deleted from the auto-voice exceptions list.
  }
  Else { echo -ae User not found in the auto-voice exceptions list. }
}

alias av.addexcept {
  hadd ChanManagement av.Exceptions $addtok($hget(ChanManagement,av.Exceptions),$address($$1,3),32)
  echo -ae User added to auto-voice exceptions list.
}

alias av.viewlist {
  if ($hget(ChanManagement,av.Channels)) {
    var %x = $numtok($hget(ChanManagement,av.Channels),32)
    echo -ae Returning 2 %x 1 channels with auto-voice enabled:
    while (%x) {
      echo -a $gettok($hget(ChanManagement,av.Channels),%x,32)
      dec %x
    }
  }
}