Skip to content
Chatcore Network

Chatcore Window Access List

A TG007 community discussion started by Travis.

Discussion 1 post
Page 1 of 1
Open
Topic #15027 · 1 published post · 1,098 views

This hasn't been tested thoroughly. Please report any errors here.

 

If you have more than 50 entries in your access list and you upload them you will probably flood out. I will soon release my connection which will fix that for you, otherwise you can script for it on your own.

 

Opens a window access list for each room separately. While open, access list auto updates every 60 seconds. Includes nicklist code to add to the access list. Delete, edit entries, clear access list, save and load.

 

on *:start:{
  if (!$isdir(lists)) mkdir lists
  if (!$isdir(lists\axis)) mkdir lists\axis 
}
alias axis {
  if (-* iswm $1) {
    if ($me !isop $2) return You are not an Op on $2
    if ($1 = -a) access $2 add $$input(What level? $crlf Owner $crlf Host $crlf Voice $crlf Grant $crlf Deny,e,$network Axis) $$input(What Address?,e,$network Axis) $$input(For how many minutes? $crlf Forever: 0 $crlf One Day: 1440,e,$network Axis) $input(Comment,e,$network Axis)
    elseif ($1 = -u) && ($exists($3)) {
      access $2 clear
      var %x = $lines($3)
      while ($read($3,%x)) {
        access $2 add $read($3,%x)
        dec %x   
      }
      error -n ChatCore $crlf Axis Upload Complete
      .timerax_ 1 1 axis $2
    }
    else access $2 delete $3 $6
    if (-l* iswm $1) access $2 add $right($1,-2) $6 $5 $7-
    elseif (-d* iswm $1) access $2 add $3 $6 $right($1,-2) $7-
    elseif ($1 = -c) access $2 add $3 $6 $5 %ccore_comment
    .timerax -m 1 500 axis $2
  }
  if (#* !iswm $1) || ($me !isop $1) return No Channel Given
  var %x_ = $+(@aXis_,$1)
  if (!$window(%x_)) {
    if ($2) {
      .timerautoax_ $+ $1 off
      return
    }  
    window -De2k0lsv -t12,32,10,90,20 %x_
    .timerautoax_ $+ $1 0 60 axis $1 x
  }
  elseif (!$2) window -a %x_
  clear %x_
  aline -l %x_ 15Level $chr(9) Set By $chr(9) 0 $chr(9) Mask $chr(9) Comments
  access $1 list
}
on *:close:@axis_*:.timerautoax_ $+ $right($target,-6) off
raw *:*:{
  if ($network != irc.chatcore.org) return
  if ($numeric = 804) {
    if (%axsave_ [ $+ [ $2 ] ]) write $ifmatch $3-5 $7-
    elseif ($window($+(@axis_,$2))) aline -l $+(@axis_,$2) $3 $chr(9) $6 $chr(9) $5 $chr(9) $4 $chr(9) $7-
  }
  elseif ($numeric = 805) {
    if (%axsave_ [ $+ [ $2 ] ]) {
      unset %axsave_ [ $+ [ $2 ] ]
      error -n $network $crlf Axis Save Complete
    }
  }
  ;halt access raw data in status window
  if (80* iswm $numeric) halt
}
menu channel {
  $iif($me isop #,Axis List):axis #
}
menu nicklist {
  $iif($me isop #,Access)
  .Deny:access # add deny $$1
  .-
  .Owner:access # add owner $$1
  .Host:access # add host $$1
  .Voice:access # add voice $$1
  .Grant:access # add grant $$1
}
menu @axis_* {
  rclick:window -a $menu
  lbclick:editbox $menu $replace($sline($menu,1),$chr(9),$chr(32))
  $style(2) $right($menu,-6) aXis List:Return
  -
  $iif($sline($menu,1),Edit)
  .Level
  ..$iif($left($gettok($sline($menu,1),1,9),-1) = owner,$style(3)) Owner:axis -lOwner $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))
  ..$iif($left($gettok($sline($menu,1),1,9),-1) = host,$style(3)) Host:axis -lHost $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))
  ..$iif($left($gettok($sline($menu,1),1,9),-1) = voice,$style(3)) Voice:axis -lVoice $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))
  ..$iif($left($gettok($sline($menu,1),1,9),-1) = grant,$style(3)) Grant:axis -lGrant $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))
  ..$iif($left($gettok($sline($menu,1),1,9),-1) = deny,$style(3)) Deny:axis -lDeny $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))

  .Duration
  ..$iif($mid($gettok($sline($menu,1),3,9),2,1) = 0,$style(3)) Forever:axis -d0 $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))
  ..$iif($mid($gettok($sline($menu,1),3,9),2,1) = 10080,$style(3)) 1 Week:axis -d10080 $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))
  ..$iif($mid($gettok($sline($menu,1),3,9),2,1) = 1440,$style(3)) 24 hours:axis -d1440 $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))
  ..$iif($mid($gettok($sline($menu,1),3,9),2,1) = 60,$style(3)) 1 hour:axis -d60 $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))
  ..$iif($mid($gettok($sline($menu,1),3,9),2,1) = 30,$style(3)) 30 min:axis -30 $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))

  .Mask:axis $+(-m,$$?="Enter New Mask") $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32))
  .Comment:{ set -e %ccore_comment $$?="Enter New Comment" | axis -c $right($menu,-6) $replace($remove($sline($menu,1),$chr(32)),$chr(9),$chr(32)) }
  $iif($sline($menu,1),Delete):axis - $right($menu,-6) $replace($sline($menu,1),$chr(9),$chr(32))
  $iif(!$sline($menu,1) && $me isop $right($menu,-6),Add):axis -a $right($menu,-6)
  -
  Clear
  ..Owners:{ access $right($menu,-6) clear owner | axis $right($menu,-6) }
  ..Hosts:{ access $right($menu,-6) clear host | axis $right($menu,-6) }
  ..Voiced:{ access $right($menu,-6) clear voice | axis $right($menu,-6) }
  ..Grants:{ access $right($menu,-6) clear grant | axis $right($menu,-6) }
  ..Denies:{ access $right($menu,-6) clear deny | axis $right($menu,-6) }
  ..All:{ access $right($menu,-6) clear | axis $right($menu,-6) }
  Save:{ set %axsave_ $+ $right($menu,-6) $sfile($mircdirlists\axis\ $+ $right($menu,-6) $+ _axis.txt,Axis Save,Save) | .raw access $right($menu,-6) list }
  Load:axis -u $right($menu,-6) $sfile($mircdirlists\axis\,Axis UpLoad,UpLoad)
  -
  Refresh aXis:axis $right($menu,-6)
}