rendered paste body/*
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦ ¦¦
¦¦ AWAY SCRIPT by synth ¦¦
¦¦ irc.digitaltoxicty.net -j #digitaltoxicity ¦¦
¦¦ ¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
*/
alias away.intro {
set %away.version 2.2.4
echo -a
echo -a Away Script v $+ %away.version Successfully Loaded!
echo -a Copyright © 2005-2006. All Rights Reserved
echo -a Written by: 14synth7 Email: 14synth.seven@gmail.com
echo -a Preferences: To change settings, access 'Configuration' from your new "Away Script" right click menu.
echo -a For usage syntax, /away.help - easy for setting an away you will only use once, so you don't have to save it
echo -a
}
alias away.help {
echo -a
echo -a Usage: /away 03<nicksuffix> 07<away reason>
echo -a Ex: /away 03away 07I am currently away -- this would change your nick to '<currentname>|away' and your away reason as 'I am currently away'.
echo -a Ex: /away 03* 07I am currently away -- If you wish to have only an <away reason> and no <nicksuffix>, use a * in place of <nicksuffix>.
echo -a Ex: /away 03away -- If you only supply a <nicksuffix>, your nick will be '<currentname>|away' and your default reason will be used.
echo -a Ex: /away -- If no <nicksuffix> or <away reason> is supplied, your defaults will be used for both.
echo -a Preferences: To change settings, access 'Configuration' from your new "Away Script" right click menu.
echo -a
}
on *:LOAD: {
away.intro
dialog -m away.config away.config
}
on *:CONNECT: {
if ($network == ZiRC) && (%away.auto.enabled == 1) {
if (!%away.temp.reason) {
away.autostart
}
}
}
alias away.autostart {
.timer(AutoAway) 0 15 away.autoawaycheck
}
alias away.autoawaycheck {
if ($idle > $calc(%away.auto.time * 60)) && (!%away.temp.reason) {
away %away.auto.nick $replace(%away.auto.away,$(%t,0), $+ %away.auto.time)
.timer(AutoAway) off
}
}
alias away {
if (%away.auto.enabled == 1) .timer(AutoAway) off
if (!%away.temp.reason) {
if (%away.timesetting == 12) {
if (%away.showampm == 1) set %away.temp.gonesince $time(hh:nntt)
elseif (%away.showampm == 0) set %away.temp.gonesince $time(hh:nn)
}
if (%away.timesetting == 24) set %away.temp.gonesince $time(HH:nn)
if (!$1 && !$2-) {
set %away.temp.reason %away.dflt.away
set %away.temp.nick %away.dflt.nick
!.away %away.dflt.away (since %away.temp.gonesince $+ )
}
elseif ($1 && !$2-) {
set %away.temp.reason %away.dflt.away
set %away.temp.nick $1
!.away %away.dflt.away (since %away.temp.gonesince $+ )
}
else {
set %away.temp.reason $2-
set %away.temp.nick $1
!.away $2- (since %away.temp.gonesince $+ )
}
set %away.temp.time $ctime
describe # is away: $+(,%away.temp.reason,) $+($chr(40),left %away.temp.gonesince,$chr(41))
if (%away.changenick == 1) {
set %away.temp.oldnick $me
set %away.temp.newnick %away.temp.oldnick $+ $chr(124) $+ %away.temp.nick
nick %away.temp.oldnick $+ %away.temp.nick
}
}
else {
dialog -m away.errorwindow away.errorwindow
did -a away.errorwindow 1 You are already away
}
}
alias back {
if (%away.temp.reason) {
!.away
describe # is back from: $+(,%away.temp.reason,) $+($chr(40),gone $duration($calc($ctime - %away.temp.time)),$chr(41))
if (%away.changenick == 1) nick %away.temp.oldnick
unset %away.temp.*
if (%away.auto.enabled == 1) {
resetidle 0
away.autostart
}
}
else {
dialog -m away.errorwindow away.errorwindow
did -a away.errorwindow 1 You are not away
}
}
dialog away.editor {
title "Away Reason Editor"
size -1 -1 97 124
option dbu
text "Away Title:", 1, 8 8 50 9
text "Away Nick Suffix:", 2, 8 32 50 9
text "Away Reason", 3, 8 56 50 9
edit "", 4, 8 16 81 10, autohs limit 16
edit "", 5, 8 40 80 10, autohs limit 16
edit "", 6, 8 64 81 32, multi
button "Save", 7, 32 102 34 15, ok
}
dialog away.errorwindow {
title "Away Script"
size -1 -1 101 35
option dbu
text "", 1, 6 6 88 9, center
button "Close", 2, 31 18 39 13, ok
}
dialog away.helpdialog {
title "Away Script"
size -1 -1 124 53
option dbu
text "", 1, 6 8 111 21
button "Close", 2, 42 34 39 13, ok
}
dialog -l away.config {
title "Away Script Config"
size -1 -1 215 151
option dbu
tab "General", 33, 1 1 213 124
tab "Away Messages", 34
tab "Auto-Away", 54
tab "About", 65
check "Change nick on away?", 1, 9 55 70 10, tab 33
text "Default away reason:", 2, 108 30 82 8, tab 33
edit "", 3, 107 39 92 29, tab 33 autovs multi
text "Default away nick:", 4, 108 71 82 8, tab 33
edit "", 5, 107 80 92 11, tab 33
button "Save and OK", 6, 177 135 34 12, ok
box "General", 8, 5 20 89 50, tab 33
text "Permanent Nickname:", 9, 10 32 65 8, tab 33
edit "", 10, 9 42 76 11, tab 33
box "Default Away Settings", 12, 97 20 112 104, tab 33
box "Current Away Messages", 36, 2 20 89 104, tab 34
list 37, 8 31 77 78, tab 34 vsbar
box "Away Details", 40, 97 20 112 104, tab 34
button "Add New", 41, 8 106 77 14, tab 34
text "", 43, 101 39 100 8, tab 34
text "", 44, 101 61 100 21, tab 34
text "Nick Change:", 45, 101 31 50 8, tab 34
text "Away Reason:", 46, 101 53 50 8, tab 34
button "Delete", 47, 133 109 29 9, tab 34
button "Edit", 48, 101 109 29 9, tab 34
button "Cancel", 49, 139 135 34 12, cancel
box "Time Setting", 51, 5 76 89 48, tab 33
radio "12 hour time (ex. 1:23pm)", 52, 11 88 77 8, tab 33
radio "24 hour time (ex. 13:23)", 53, 11 110 77 8, tab 33
text "-[ Auto-Away ]-", 55, 61 20 92 8, tab 54 center
text "With this enabled, if you are idle in IRC for XX number of minutes, you will automatically be set as 'away'.", 56, 6 32 199 14, tab 54
check "Enable Auto-Away?", 57, 6 50 89 8, tab 54
edit "", 58, 10 71 17 10, tab 54
text "minutes before auto-away is set", 59, 30 72 119 8, tab 54
box "Auto-Away Settings", 60, 5 61 203 63, tab 54
text "Auto-Away nick:", 61, 10 86 49 8, tab 54
edit "", 62, 62 85 50 10, tab 54
text "Auto-Away reason:", 63, 10 98 49 8, tab 54
edit "", 64, 62 97 139 22, tab 54 autovs multi
text "", 66, 10 25 144 8, tab 65
text "© Copyright 2005-2006. All Rights Reserved.", 67, 10 34 144 8, tab 65
text "Written by synth7", 68, 10 43 144 8, tab 65
text "Email: synth.seven@gmail.com", 70, 22 52 87 8, tab 65
text "AIM: myceL ESP", 71, 22 61 87 8, tab 65
text "Bug? Error? Write me at synth.seven@gmail.com", 72, 4 137 128 8
text "These are your defaults if you do not set them when using the /away command.", 73, 102 96 102 24, tab 33 center
check "Show am/pm?", 76, 22 98 50 8, tab 33
button "help", 77, 35 107 23 8, tab 54
}
alias away.config.awaylist {
var %i = 1
while (%i <= $ini(synaway.ini,AWAYS,0)) {
did -a away.config 37 $ini(synaway.ini,AWAYS,%i)
inc %i
}
}
on *:DIALOG:*:*:*: {
if ($dname = away.config) {
if ($devent = init) {
did -a $dname 66 Away Script v $+ %away.version
did -a $dname 10 $iif(%away.mainnick,%away.mainnick,$me)
if (%away.changenick == 1) did -c $dname 1
if (%away.dflt.away) did -a $dname 3 $ifmatch
if (%away.dflt.nick) did -a $dname 5 $ifmatch
if (%away.timesetting == 12) did -c $dname 52
if (%away.timesetting == 24) { did -c $dname 53 | did -b $dname 76 }
if (%away.showampm == 1) did -c $dname 76
away.config.awaylist
did -b $dname 47,48
if (%away.auto.enabled == 1) did -c $dname 57
if (%away.auto.enabled != 1) did -m $dname 58,62,64
if (%away.auto.time) did -a $dname 58 $ifmatch
if (%away.auto.nick) did -a $dname 62 $ifmatch
if (%away.auto.away) did -a $dname 64 $ifmatch
}
if ($devent = sclick) {
if ($did = 6) {
set %away.changenick $iif($did($dname,1).state == 1,1,0)
if ($did($dname,3).text) set %away.dflt.away $ifmatch
if ($did($dname,5).text) set %away.dflt.nick $ifmatch
if ($did($dname,10).text) set %away.mainnick $ifmatch
if ($did($dname,52).state == 1) set %away.timesetting 12
if ($did($dname,53).state == 1) set %away.timesetting 24
set %away.showampm $iif($did($dname,76).state == 1,1,0)
if ($did($dname,57).state == 1) {
set %away.auto.enabled 1
away.autostart
}
if ($did($dname,57).state != 1) {
set %away.auto.enabled 0
.timer(AutoAway) off
}
if ($did($dname,58).text) set %away.auto.time $ifmatch
if ($did($dname,62).text) set %away.auto.nick $ifmatch
if ($did($dname,64).text) set %away.auto.away $ifmatch
if ($did($dname,58).text != %away.auto.time) away.autostart
}
if ($did = 37) {
did -e $dname 47,48
var %nick = $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),1,32)
var %reason = $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),2-,32)
if ($did($dname,37).seltext) {
did -a $dname 43 %away.mainnick $+ $chr(124) $+ %nick
did -a $dname 44 %reason
}
}
if ($did = 41) {
dialog -m away.editor away.editor
}
if ($did = 47) {
var %awayname = $ini(synaway.ini,AWAYS,$ini(synaway.ini,AWAYS,$did($dname,37).seltext))
var %confirm = $input(Are you sure you want to delete the ' $+ %awayname $+ ' away message?,y,Delete away)
if (%confirm = $true) {
remini synaway.ini AWAYS %awayname
did -r $dname 37,43,44
away.config.awaylist
}
}
if ($did = 48) {
dialog -m away.editor away.editor
did -a away.editor 4 $did($dname,37).seltext
did -b away.editor 4
did -a away.editor 5 $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),1,32)
did -a away.editor 6 $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),2-,32)
}
if ($did = 52) did -e $dname 76
if ($did = 53) did -b $dname 76
if ($did = 57) {
if ($did($dname,57).state = 1) did -n $dname 58,62,64
else { did -m $dname 58,62,64 }
}
if ($did = 77) {
dialog -m away.helpdialog away.helpdialog
did -a away.helpdialog 1 $(%t,0) = auto-away length (minutes)
}
}
}
if ($dname = away.editor) {
if ($devent = sclick) {
if ($did = 7) {
if ($numtok($did($dname,4).text,32) = 1) && ($numtok($did($dname,5).text,32) = 1) {
writeini synaway.ini AWAYS $gettok($did($dname,4).text,1,32) $gettok($did($dname,5).text,1,32) $gettok($did($dname,6).text,1-,32)
did -a away.config 37 $did($dname,4).text
if ($dialog(away.config)) {
did -r away.config 37
away.config.awaylist
}
}
elseif ($numtok($did($dname,4).text,32) >= 2) {
dialog -x away.editor
dialog -m away.editor away.editor
dialog -m away.errorwindow away.errorwindow
did -a away.errorwindow 1 'Away Title' may only be one word
}
elseif ($numtok($did($dname,5).text,32) >= 2) {
dialog -x away.editor
dialog -m away.editor away.editor
dialog -m away.errorwindow away.errorwindow
did -a away.errorwindow 1 'Away Nick Suffix' may only be one word
}
}
}
}
}
menu channel,status {
Away Script %away.version
.$iif($away == $true,$null,$style(2)) Back:/back
.$submenu($awayreasons($1))
.-
.Configuration:/dialog -m away.config away.config
.Unload Script {
var %confirm = $input(Are you sure you want to unload Away Script %away.version $+ ? All settings and away messages will be lost.,yv,Unload?)
if (%confirm = $yes) {
.timer 1 0 echo -a Unloading Away Script v $+ %away.version $+ ...please wait...
.timer 1 1 .unload -rs " $+ $script $+ " | .unset %away.* | .timer(AutoAway) off | .remove $+(",$mircdir,synaway.ini,")
.timer 1 2 echo -a Done! Away Script v $+ %away.version Unloaded.
}
}
}
alias awayreasons {
var %i 1
if ($1 == begin) return -
while (%i <= $ini(synaway.ini,AWAYS,0)) {
if ($1 == %i) return $ini(synaway.ini,AWAYS,%i) $+ : /away $readini(synaway.ini,AWAYS,$ini(synaway.ini,AWAYS,%i))
inc %i
}
if ($1 == end) return -
}