menu Channel { Check Access: CheckAccess } alias CheckAccess { CheckAccess.GetData } #CheckAccess off on ^*:NOTICE:*:*:{ if ($nick == ChanServ) { haltdef if ($1- == Access denied.) { echo 4 -a Your access level for this channel is not high enough. .timer 1 5 .disable #CheckAccess } elseif ((*access list* !iswm $1-) && (*Num* !iswm $1-) && (*Lev* !iswm $1-)) { write AccessChecker_temp.txt $regsubex($1-,/ *\d+ +(-?\d+ +.+)/,\1) } elseif (*End of access list* iswm $1-) { CheckAccess.HandleEnd } elseif ($regex($1-,/Access list for (.+):/i)) { set %CheckAccess.channel $regml(1) echo 3 -a Access list for $regml(1) is being processed... } } } #CheckAccess end alias -l CheckAccess.HandleEnd { CheckAccess.Sortfile if ($dialog(CheckAccess.dialog) == $null) { CheckAccess.OpenDialog } else { loadbuf $lines(AccessChecker_temp2.txt) -or CheckAccess.dialog 1 AccessChecker_temp_sorted.txt did -ra CheckAccess.dialog 8 Entries: $lines(AccessChecker_temp2.txt) } .disable #CheckAccess } alias -l CheckAccess.GetData { .enable #CheckAccess .remove AccessChecker_temp.txt .remove AccessChecker_temp_sorted.txt .msg chanserv access $iif(%CheckAccess.channel,$v1,#) list } alias -l CheckAccess.Sortfile { .remove AccessChecker_temp_sorted.txt filter -ffa AccessChecker_temp.txt AccessChecker_temp_sorted.txt $iif($1 == Name,CheckAccess.Sortfile.ByName,CheckAccess.Sortfile.ByAccess) } alias -l CheckAccess.Sortfile.ByAccess { var %line1 = $regsubex($1,/(-?\d+) .*/,\1) var %line2 = $regsubex($2,/(-?\d+) .*/,\1) if (%line1 < %line2) { return 1 } elseif (%line1 == %line2) { var %line1text = $regsubex($1,/-?\d+ (.*)/,\1) var %line2text = $regsubex($2,/-?\d+ (.*)/,\1) if (%line1text < %line2text) { return -1 } else { return 1 } } else { return -1 } } alias -l CheckAccess.Sortfile.ByName { var %line1text = $regsubex($1,/-?\d+ (.*)/,\1) var %line2text = $regsubex($2,/-?\d+ (.*)/,\1) if (%line1text < %line2text) { return -1 } else { return 1 } } alias -l CheckAccess.OpenDialog { dialog -md CheckAccess.dialog CheckAccess.dialog } dialog -l CheckAccess.dialog { title Check Access - %CheckAccess.channel size -1 -1 205 210 option dbu list 1, 5 10 110 190 button "Update", 2, 130 10 70 20 button "Sort by Name", 3, 130 35 70 20 button "Sort by Access", 4, 130 60 70 20 button "Add", 5, 130 85 70 20 button "Edit", 6, 130 110 70 20 button "Remove", 7, 130 135 70 20 text "Entries:", 8, 5 200 40 10 } on *:DIALOG:CheckAccess.dialog:init:0:{ loadbuf $lines(AccessChecker_temp2.txt) -or $dname 1 AccessChecker_temp_sorted.txt did -ra CheckAccess.dialog 8 Entries: $lines(AccessChecker_temp_sorted.txt) } on *:DIALOG:CheckAccess.dialog:sclick:2:{ CheckAccess.GetData } on *:DIALOG:CheckAccess.dialog:sclick:3:{ CheckAccess.Sortfile Name loadbuf $lines(AccessChecker_temp_sorted.txt) -or $dname 1 AccessChecker_temp_sorted.txt } on *:DIALOG:CheckAccess.dialog:sclick:4:{ CheckAccess.Sortfile loadbuf $lines(AccessChecker_temp_sorted.txt) -or $dname 1 AccessChecker_temp_sorted.txt } on *:DIALOG:CheckAccess.dialog:sclick:5:{ cs access %CheckAccess.channel add $$?="Nick?" $$?="Access?" CheckAccess.GetData dialog -v $dname } on *:DIALOG:CheckAccess.dialog:sclick:6:{ if ($did(1).seltext) { cs access %CheckAccess.channel add $regsubex($v1,/-?\d+ (.*)/,\1) $$?="New Access Level?" CheckAccess.GetData } else { noop $input(You did not select any name.,ow,Selection Empty) } dialog -v $dname } on *:DIALOG:CheckAccess.dialog:sclick:7:{ if ($did(1).seltext && $input(Are you sure you want to delete $did(1).seltext $+ ?,w,Confirm)) { cs access %CheckAccess.channel del $regsubex($did(1).seltext,/-?\d+ (.*)/,\1) CheckAccess.GetData } else { noop $input(You did not select any name.,ow,Selection Empty) } dialog -v $dname } on *:DIALOG:CheckAccess.dialog:close:*:{ .remove AccessChecker_temp.txt .remove AccessChecker_temp_sorted.txt unset %CheckAccess.channel }