Manual Away Activation/Deactivation System
Smart Auto Away System, Turns On And Off By Itself
Notices When Nick Said In Channel & Msges Back When Pmd
o Ability To Set 2 Different Messages For Each Situation
o An allowed total of 5 nick triggers to set off in channel
Keeps All Logged Messages In Easy Read Text File Which Can Be Red Via A Mirc Window
o Easily Allows You To Delete And/OR Back Up Logged Messages
Choose Your Own Main Nick & Away Nick (and ability to choose weather to change or not (auto change available when auto away activated)
Allows You To Select Specific Channels Where When Your Nick Is Said A Notice Is Sent
On Arrival, Allows You To Choose Weather To Notify Those Who Msged You Of Your Return (With Own Custom Message)
Easy To Use Dialog For Setting Up And Easy To Navigate Popups For Quick Setup
Mirc Version 6.14 Friendly
To Load:
First Extract All Files Into Your Main Mirc Directory.
Next Open Mirc And Type /load rs AwayLogger.mrc (If Prompted To Continue Please Select Yes)
First Time Setup:
Right Click In Chan -> Away Logger: -> AwayLogger Main Config
1st Set All 3 Messages One For When Nick Said In Channel, Another When PMd And The Last Your Notify Back Message
; Away Logger ;
;Created Anarchy[MKD] ;
on *:LOAD: {
echo 4 -a Away Logger v1.0b By: Anarchy[MKD]
if ((!%AwayLoggerNoticeMsg) || (!%AwayLoggerPMMsg) || (!%AwayLoggerAlertNick1) || (!%NotifyBackMsg)) {
if ($$input(You Have Not Configured AwayLogger Yet - Configure It Now?,y,Configure Now?) = $true) { dialog -m AwayLogger AwayLogger }
else { $input(Please Note You Will Not Be Able To Use AwayLogger Till You Configure It,o,Note:) }
}
}
on *:START: { hmake AwayLoggerChannels | hload AwayLoggerChannels AwayLoggerChannels.hsh }
ctcp *:VERSION:*:{ ctcpreply $nick VERSION Away Logger v1.0b By: Anarchy[MKD] }
alias afk {
$iif($group(#nicklogger) = off,.enable #nickLogger,.disable #Nicklogger)
echo 4 -a $iif($group(#nicklogger) = off,** AwayLogger Has Been Turned Off,**AwayLogger Has Been Turned On)
if (($group(#nicklogger) = off) && $input(Do you wanna change back to your normal nick?,y,Change To Normal Nick) && ((*-afk iswm $me) || (%AwayLoggerAwayNick == $me))) {
if (%AwayLoggerMainNick) { nick %AwayLoggerMainNick }
else { nick $left($me,-4) }
}
if (($group(#nicklogger) = off) && $query(0) && $input(Do you wanna notify everyone?,y,Notify Prompt)) { notifyback }
if (($group(#nicklogger) = on) && ($input(Do you wanna change to your AFK Nick?,y,Change To AFK Nick)) && ((AFK !isin $me) || (%AwayLoggerAwayNick != $me))) {
if (%AwayLoggerAwayNick) { nick %AwayLoggerAwayNick | set %New_Messages 0 }
else { nick $me $+ -AFK | set %New_Messages 0 }
}
if ($group(#nicklogger) = off) && (%New_Messages >= 1) { echo 4 -a ** You have %New_Messages New Messages since you went AFK! | unset %New_Messages | unset %NotifyingNickAwayLogger }
if ($group(#nicklogger) = off) && (%New_Messages < 1) { echo 4 -a ** You have Have No New Messages since you went AFK! | unset %New_Messages | unset %NotifyingNickAwayLogger }
if ($group(#nicklogger) = on) { set %New_Messages 0 }
}
alias afk2 {
$iif($group(#nicklogger) = off,.enable #nickLogger,.disable #Nicklogger)
echo 4 -a $iif($group(#nicklogger) = off,**AwayLogger Has Been Auto Turned Off,**AwayLogger Has Automatically Been Turned On)
if (($group(#nicklogger) = off) && (%Autochangenicks == on) && ((*-afk iswm $me) || (%AwayLoggerAwayNick == $me))) {
if (%AwayLoggerMainNick) { nick %AwayLoggerMainNick }
else { nick $left($me,-4) }
}
if (($group(#nicklogger) = on) && (%Autochangenicks == on) && ((AFK !isin $me) || (%AwayLoggerAwayNick !== $me))) {
if (%AwayLoggerAwayNick) { nick %AwayLoggerAwayNick | set %New_Messages 0 }
else { nick $me $+ -AFK | set %New_Messages 0 }
}
if ($group(#nicklogger) = off) && (%New_Messages >= 1) { echo 4 -a ** You have %New_Messages New Messages since you went AFK! | unset %New_Messages }
if ($group(#nicklogger) = off) && (%New_Messages < 1) { echo 4 -a ** You have Have No New Messages since you went AFK! | unset %New_Messages }
if ($group(#nicklogger) = on) { set %New_Messages 0 }
}
alias messages {
if ($isfile(Loggedmessages.txt) == $true) {
window @messages
loadbuf 1000 -imp @messages LoggedMessages.txt
}
else { echo 4 -a ** No Messages Have Been Recorded }
}
alias clearmessages {
if ($exists(loggedmessages.txt)) {
if ($input(Do You Want To Backup These Messages,y,Keep Backup?)) { .copy -ao loggedmessages.txt loggedmessages $+ $date(dd-mm-yy) $+ .txt | .remove loggedmessages.txt | echo 4 -a ** Logged Messages Have Been Deleted But Are Backed Up }
else { .remove loggedmessages.txt | echo 4 -a ** Logged Messages Have Been Deleted }
}
else { echo 4 -a ** There Are No Current Logged Messages }
}
alias notifyback {
var %z = 1
tokenize 32 %NotifyingNickAwayLogger
while ($($+($,%z),2)) {
msg $($+($,%z),2) %NotifyBackMsg
inc %z
}
}
alias changechanmsg { set %AwayLoggerNoticeMsg $$input(What Message Would You Like Noticed To User When Name Said In Chan, ev, Channel Message) | echo 4 -a ** Notice Message Successfully Changed }
alias changepmmsg { set %AwayLoggerPmMsg $$input(What Message Would You Like To Reply When PM'd, ev, PM Message) | echo 4 -a ** PM Message Reply Succesfully Changed }
alias listtriggers { var %z = 1 | while ( $($+(%,AwayLoggerAlertNick,%z),2) ) { echo -a 11,1WordTrigger $+ %z $+ $chr(58) 9,1 $($+(%,AwayLoggerAlertNick,%z),2) | inc %z } }
alias changenotifybackmsg { set %NotifyBackMsg $$input(What Would You Like Msged To Users When/If You Choose To Notify Them Of Your Arrival,ev,Notify Back Msg) }
alias triggerwords {
var %x = $$input(How Many Trigger Words To Be Added?,ev,How Many Trigger Words)
if ((%x > 5) || (%x !isnum)) {
echo 4 -a ** Sorry Only A Maximum Of 5 Trigger Words Can Be Entered And Only Single Numbers To Be Entered
}
else {
var %y 1
while (%y <= %x) {
set %AwayLoggerAlertNick $+ %y $$Input(Please Enter Trigger Word %y ,ev,Trigger Word %y )
if (%y == %x) {
inc %y
while ( $($+(%,AwayLoggerAlertNick,%y),2) ) { unset $($+(%,AwayLoggerAlertNick,%y),1) | inc %y }
listtriggers
}
inc %y
}
}
}
alias autoidleaway {
if ($input(Auto Change Nicks To AFK And Back?,y,Auto Change Nicks) == $true) { set %AutoChangeNicks on }
else { set %AutoChangenicks off }
if (m isin %awayloggeridletime) {
.timerawayloggeridle1 0 30 if (($idle >= $calc(60 * $remove( %awayloggeridletime ,m)) ) && ($group(#nicklogger) = off) ) $({,) afk2 $(|,) .enable #idle-check $(},)
}
elseif (h isin %awayloggeridletime) { .timerawayloggeridle 0 30 if ($idle >= $calc(3600 * $remove(%z,h))) { afk2 | .timerawayloggeridle off } }
}
#idle-check off
on *:INPUT:*: { afk2 | .disable #idle-check }
#idle-check end
menu channel,menubar {
-
Away Logger:
.AwayLogger Main Config: { dialog -m awaylogger awaylogger }
.-
. Activate/Disable Away Logger: { afk }
.Change Messages:
..Notice Message When Nick Said In Chan { changechanmsg }
..PM Message When Msged By Someone { changepmmsg }
..Notify Back Msg { changenotifybackmsg }
.Logged Messages:
..Check Messages: { messages }
..Clear Messages: { clearmessages }
.Nick Triggers:
..Set Nick Triggers In Chan { triggerwords }
..List Nick Triggers In Chan { ListTriggers }
.Set Nicks
..Set Main Nick { set %AwayLoggerMainNick $$input(Please Enter Your Main Nick,ev,Main Nick) | echo 4 -a Set Main Nick To: %AwayLoggerMainNick }
..Set Away Nick { set %AwayLoggerAwayNick $$input(Please Enter Your Away Nick,ev,Away Nick) | echo 4 -a Set Away Nick To: %AwayLoggerAwayNick }
.Auto Idle:
..Turn On: {
if (%awayloggeridletime) { autoidleaway | echo 4 -a ** Auto Away On Idle Has Been Turned On }
else { echo 4 -a ** No Interval Time Has Been Set! }
}
..Turn off: { .timerawayloggeridle1 off | echo 4 -a ** Auto Away On Idle Has Been Turned Off }
..Current Status: {
if ($timer(timerawayloggeridle1)) { echo 4 -a ** It Is Currently Active And Set To Go AFK Every: %awayloggeridletime . }
else { echo 4 -a ** Auto Away Is Currently DISABLED }
}
..Interval Time
...Set: { set %awayloggeridletime $$input(Idle How Long Before Going Away (Format is Xm,Xh (m = min, h=hours)),ev,Auto Idle After How Long?) }
...Current Setting: {
if (%awayloggeridletime) { echo 4 -a ** Current Auto Away Idle Time Set At: %awayloggeridletime }
else { echo 4 -a ** No Current Idle Time Set }
}
}
#NickLogger off
on *:TEXT:*:#: {
if ($hfind(AwayLoggerChannels,$chan,1).data) {
if (( %AwayLoggerAlertNick1 isin $1- ) || ( %AwayLoggerAlertNick2 isin $1- ) || ( %AwayLoggerAlertNick3 isin $1- ) || ( %AwayLoggerAlertNick4 isin $1- ) || ( %AwayLoggerAlertNick5 isin $1- )) {
if !$istok(%nicks,$nick,32) {
notice $nick %AwayLoggerNoticeMsg
}
write loggedmessages.txt $nick Said $1- in $chan on $time $date
set %query.response.nicks $addtok(%query.response.nicks,$nick,32)
$+(.timer,$nick) 1 120 set %query.response.nicks $remtok(%query.response.nicks,$nick,1,32)
if ((%NotifyingNickAwayLogger) && ($nick !isin %NotifyingNickAwayLogger)) { set %NotifyingNickAwayLogger %NotifyingNickAwayLogger $+ $chr(32) $+ $nick }
elseif (!%NotifyingNickAwayLogger) { set %NotifyingNickAwayLogger $nick }
inc %New_Messages
}
}
}
on *:TEXT:*:?: {
if !$istok(%query.response.nicks,$nick,32) {
msg $nick %AwayLoggerPmMsg
}
write loggedmessages.txt $nick said $1- in PM on $time $date
set %query.response.nicks $addtok(%query.response.nicks,$nick,32)
$+(.timer,$nick) 1 120 set %query.response.nicks $remtok(%query.response.nicks,$nick,1,32)
if ((%NotifyingNickAwayLogger) && ($nick !isin %NotifyingNickAwayLogger)) { set %NotifyingNickAwayLogger %NotifyingNickAwayLogger $+ $chr(32) $+ $nick }
elseif (!%NotifyingNickAwayLogger) { set %NotifyingNickAwayLogger $nick }
inc %New_messages
}
#NickLogger End
; Credits To Pariah Here, For His Great Help On The Redesign! ;
dialog AwayLogger {
title "Away Logger v1.0b By Anarchy[MKD]"
size -1 -1 161 127
option dbu
button "Finished", 34, 2 113 37 12
box "Manual Away Status", 1, 2 2 58 25
list 3, 6 10 50 12, size
box "Auto Away", 5, 2 28 58 48
text "Auto Away Status:", 10, 8 36 47 8
text "Current Idle Time:", 11, 9 55 44 8
list 9, 5 63 52 10, size
list 7, 5 44 52 10, size
box "Logged Messages", 22, 2 77 58 35
button "View Current", 23, 6 86 48 10
button "Delete Logged", 24, 6 98 48 10
box "Set Nicks", 25, 62 2 97 35
edit "", 27, 96 10 60 10, autohs
text "Normal Nick:", 28, 65 12 30 8
text "Away Nick:", 31, 67 25 27 8
edit "", 30, 96 23 60 10, autohs
box "Away Messages", 12, 62 37 97 75
text "Current Notice Message", 19, 80 46 58 8
edit "", 14, 66 54 91 11, autohs
text "Current PM Message", 20, 84 67 51 8
edit "", 16, 66 75 91 11, autohs
text "Current Notify Back Message", 21, 74 88 71 8
edit "", 18, 66 96 91 11, autohs
button "Apply", 13, 41 113 37 12
button "Triggers", 15, 122 113 37 12
combo 32, 167 12 60 88, size
button "Add", 35, 167 99 30 10
button "Remove", 36, 197 99 30 10
button "Nick Triggers", 37, 163 113 68 12
box "Channel Triggers", 33, 163 3 68 109
menu "File", 17
item "Save", 26, 17
item "Save And Exit", 29, 17
item "Exit Without Saving", 41, 17
menu "Status", 2
menu "Manual Away", 4, 2
item "Status", 47, 4
menu "AutoAway", 99, 2
item "Status", 6, 99
item "Set Idle Time", 8, 99
}
on *:dialog:Awaylogger:*:*:{
if ($devent == init) {
if ($group(#NickLogger) = on) {
if ($timer(awayloggeridle1)) { did -a $dname 3 Status: Off | did -a $dname 7 Status: On }
else { did -a $dname 3 Status: On | did -a $dname 7 Status: Off }
}
else { did -a $dname 3 Status: Off | did -a $dname 7 Status: Off }
if (%awayloggeridletime) { did -a $dname 9 Idle Time: %Awayloggeridletime }
else { did -a $dname 9 No Set Idle Time }
if (%AwayLoggerNoticeMsg) { did -a $dname 14 %AwayLoggerNoticeMsg }
else { did -a $dname 14 No Set Notice Message! }
if (%AwayLoggerPmMsg) { did -a $dname 16 %AwayLoggerPmMsg }
else { did -a $dname 16 No Set PM Message! }
if (%NotifyBackMsg) { did -a $dname 18 %NotifyBackMsg }
else { did -a $dname 18 No Set Notify Back Message! }
if (%AwayLoggerMainNick) { did -a $dname 27 %AwayLoggerMainNick }
else { did -a $dname 27 $me }
if (%AwayLoggerAwayNick) { did -a $dname 30 %AwayLoggerAwayNick }
else { did -a $dname 30 $me $+ -AFK }
if ($Group(#nicklogger) = on) {
if (!$timer(awayloggeridle1)) { did -c $dname 47 }
else { did -c $dname 6 }
}
if ( !$hget(AwayLoggerChannels) ) { hmake AwayLoggerChannels 100 }
else {
var %z = 1
while ( $hget(AwayLoggerChannels,%z).item ) { did -a $dname 32 $ifmatch | inc %z }
}
set %AwayLoggerSavedChanges No
set %AwayLoggerExpandRetract off
set %AwayLoggerChn On
}
elseif ($devent == sclick) {
if ($did == 23) { messages }
elseif ($did == 24) { clearmessages }
elseif ($did == 39) {
if ($did(37).sel) { hdel AwayLoggerChannels $did(37).seltext | did -d $dname 37 $ifmatch | did -u $dname 37 }
}
elseif ($did == 43) {
if ($did(33).sel) {
var %z = $did(33).sel
unset %AwayLoggerAlertNick $+ %z
did -d $dname 33 %z
inc %z
if ( $($+(%,AwayLoggerAlertNick,%z),2) ) {
while ( $($+(%,AwayLoggerAlertNick,%z),2) ) {
var %xx = $calc(%z - 1)
set %AwayLoggerAlertNick $+ %xx $($+(%,AwayLoggerAlertNick,%z),2)
unset $($+(%,AwayLoggerAlertNick,%z),1)
inc %z
}
}
else { unset $($+(%,AwayLoggerAlertNick,$calc(%z - 1)),1) }
}
}
elseif ( $did == 13 ) { set %AwayLoggerNoticeMsg $did(14) | set %AwayLoggerPmMsg $did(16) | set %NotifyBackMsg $did(18) | set %AwayLoggerMainNick $did(27) | set %AwayLoggerAwayNick $did(30) | set %AwayLoggerSavedChanges Yes }
elseif ( $did == 34 ) {
if (%AwayLoggerSavedChanges != Yes) {
var %xyz $$input(You Have Not Saved Your Changes! Would You Like To Quit Anyway?,y,Settings Not Saved!)
if ( %xyz = $true ) { dialog -x AwayLogger AwayLogger | hsave -o AwayLoggerChannels AwayLoggerChannels.hsh }
}
else { dialog -x AwayLogger AwayLogger | hsave -o AwayLoggerChannels AwayLoggerChannels.hsh }
}
elseif ($did == 15) {
if (%AwayLoggerExpandRetract = off ) { expand $dname | set %AwayLoggerExpandRetract = on }
else { collapse $dname | set %awayloggerexpandretract off }
}
elseif ($did == 37) {
if (%AwayLoggerChn = on) {
did -ra $dname 37 Channel Triggers
did -ra $dname 33 Nick Triggers
did -r $dname 32
set %AwayLoggerChn Off
if (%AwayLoggerAlertNick1) {
var %y = 1
while ( $($+(%,AwayLoggerAlertNick,%y),2) ) {
did -a $dname 32 $($+(%,AwayLoggerAlertNick,%y),2)
inc %y
}
else { did -a $dname 33 No Nick Triggers Set! }
}
}
else {
did -ra $dname 37 Nick Triggers
did -ra $dname 33 Channel Triggers
did -r $dname 32
set %AwayLoggerChn On
if ( !$hget(AwayLoggerChannels) ) { hmake AwayLoggerChannels 100 }
else {
var %z = 1
while ( $hget(AwayLoggerChannels,%z).item ) { did -a $dname 32 $ifmatch | inc %z }
}
}
}
elseif ($did == 35) {
if (%AwayLoggerChn = on) {
if ($did(32) != $null) { hadd -m AwayLoggerChannels $ifmatch $ifmatch | did -a $dname 32 $ifmatch | did -u $dname 32 }
}
else {
var %x $did(32).lines
if (%x < 5) {
if ($did(32) != $null) {
inc %x
set %AwayLoggerAlertNick $+ %x $ifmatch
did -a $dname 32 $ifmatch
did -u $dname 32
}
}
else { $input(Sorry You Have Used Up All 5 Nick Triggers,o,Error:) }
}
}
elseif ($did == 36) {
if (%AwayLoggerChn = On) {
if ($did(32).sel) { hdel AwayLoggerChannels $did(32).seltext | did -d $dname 32 $ifmatch | did -u $dname 32 }
}
else {
if ($did(32).sel) {
var %z = $did(32).sel
unset %AwayLoggerAlertNick $+ %z
did -d $dname 32 %z
inc %z
if ( $($+(%,AwayLoggerAlertNick,%z),2) ) {
while ( $($+(%,AwayLoggerAlertNick,%z),2) ) {
var %xx = $calc(%z - 1)
set %AwayLoggerAlertNick $+ %xx $($+(%,AwayLoggerAlertNick,%z),2)
unset $($+(%,AwayLoggerAlertNick,%z),1)
inc %z
}
}
else { unset $($+(%,AwayLoggerAlertNick,$calc(%z - 1)),1) }
}
}
}
}
elseif ($devent == menu) {
if ($did == 47) {
if ($timer(awayloggeridle1)) { $input(Error: Auto Away Is Currently On - Cant Turn On Manually - Please Turn Off To Continue,o,Error:) }
else {
if ($group(#nicklogger) = off) { afk | did -ra $dname 3 Status: On | did -c $dname 47 }
else { afk | did -ra $dname 3 Status: Off | did -u $dname 47 }
}
}
elseif ($did == 6) {
if (($group(#nicklogger) = on) && (!$timer(awayloggeridle1))) { $$input(Error: Manual Away Is Currently On - Please Turn Off To Continue,o,Error:) }
else {
if (!$timer(awayloggeridle1)) {
if ($group(#nicklogger) = off) {
if (%awayloggeridletime) { autoidleaway | did -ra $dname 7 Status: On | did -c $dname 6 }
else { $$input(Error: No Idle Time Has Been Set!) }
}
}
else { .timerawayloggeridle1 off | did -ra $dname 7 Status: Off | did -u $dname 6 }
}
}
elseif ($did == 8) { set %awayloggeridletime $$input(Idle How Long Before Going Away (Format is Xm,Xh (m = min, h=hours)),ev,Auto Idle After How Long?) | did -ra $dname 9 Idle Time: %awayloggeridletime }
elseif ($did == 26) { set %AwayLoggerNoticeMsg $did(14) | set %AwayLoggerPmMsg $did(16) | set %NotifyBackMsg $did(18) | set %AwayLoggerMainNick $did(27) | set %AwayLoggerAwayNick $did(30) | set %AwayLoggerSavedChanges Yes }
elseif ($did == 29) { set %AwayLoggerNoticeMsg $did(14) | set %AwayLoggerPmMsg $did(16) | set %NotifyBackMsg $did(18) | set %AwayLoggerMainNick $did(27) | set %AwayLoggerAwayNick $did(30) | set %AwayLoggerSavedChanges Yes | dialog -x AwayLogger AwayLogger }
elseif ($did == 41) {
if (%AwayLoggerSavedChanges != Yes) {
var %xyz $$input(You Have Not Saved Your Changes! Are You Sure You Would You Like To Quit Anyway?,y,Settings Not Saved!)
if ( %xyz = $true ) { dialog -x AwayLogger AwayLogger | hsave -o AwayLoggerChannels AwayLoggerChannels.hsh }
}
else { dialog -x AwayLogger AwayLogger | hsave -o AwayLoggerChannels AwayLoggerChannels.hsh }
}
}
}
alias -l expand {
var %len = 161,%tot = 233
while (%len <= %tot) { dialog -srb $1 -1 -1 %len 137 | inc %len }
}
alias -l collapse {
var %len = 233,%tot = 161
while (%len >= %tot) { dialog -srb $1 -1 -1 %len 137 | dec %len }
}