Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; #################################################################
- ; ## Away system script ##
- ; ## Designed and written by Urza ##
- ; ## Email: Urza23@hotmail.com ##
- ; ## Written and tested in mIRC 6.17 ##
- ; ## Also tested in mIRC 6.16 ##
- ; ## May not work correctly in earlier versions ##
- ; ## ----------------------------------------------------------- ##
- ; ## Usage: ##
- ; ## /Away.Config - Opens the options dialog ##
- ; ## /Away [Reason] - Set yourself away ##
- ; ## /Away [Preset] - Set yourself away using a preset trigger ##
- ; ## /Back - Return from away ##
- ; ## Options are also avaliable via menus ##
- ; #################################################################
- ; ##############################################
- ; # Start Idle Away Timer #
- ; ##############################################
- on *:start: if ($readini(Settings.ini,Away.Config,AutoAway) == on) .timerAway.IdleCheck -o 0 30 Away.IdleCheck
- ; ##############################################
- ; # Load Default Options #
- ; ##############################################
- on *:load: {
- if (!$readini(AwaySettings.ini,Config,NickEditType)) writeini AwaySettings.ini Config NickEditType Suffix
- if (!$readini(AwaySettings.ini,Config,NickPrefix)) writeini AwaySettings.ini Config NickPrefix Away|
- if (!$readini(AwaySettings.ini,Config,NickSuffix)) writeini AwaySettings.ini Config NickSuffix |Away
- if (!$readini(AwaySettings.ini,Config,NickSetTo)) writeini AwaySettings.ini Config NickSuffix Away
- if (!$readini(AwaySettings.ini,Config,AutoAway)) writeini AwaySettings.ini Config AutoAway off
- if (!$readini(AwaySettings.ini,Config,AutoAwayTime)) writeini AwaySettings.ini Config AutoAwayTime 900
- if (!$readini(AwaySettings.ini,Config,IdleSettings)) writeini AwaySettings.ini Config IdleSettings Suffix~|Idle~Auto away after %time minutes idle
- if (!$readini(AwaySettings.ini,Config,LeavingTime)) writeini AwaySettings.ini Config LeavingTime off
- if (!$readini(AwaySettings.ini,Config,LeavingTimeFormat)) writeini AwaySettings.ini Config LeavingTimeFormat HH:nn:ss
- if (!$readini(AwaySettings.ini,Config,TimeAway)) writeini AwaySettings.ini Config TimeAway off
- if (!$readini(AwaySettings.ini,Config,TimeAwayFormat)) writeini AwaySettings.ini Config TimeAwayFormat Short
- if (!$readini(AwaySettings.ini,Config,ARChannelMessage)) writeini AwaySettings.ini Config ARChannelMessage off
- if (!$readini(AwaySettings.ini,Config,ARPrivateMessage)) writeini AwaySettings.ini Config ARPrivateMessage off
- if (!$readini(AwaySettings.ini,Config,MsgChans)) writeini AwaySettings.ini Config MsgChans on
- if (!$readini(AwaySettings.ini,Config,MsgQueries)) writeini AwaySettings.ini Config MsgQueries off
- if (!$readini(AwaySettings.ini,Config,RespondHilights)) writeini AwaySettings.ini Config RespondHilights on
- if (!$readini(AwaySettings.ini,Config,RespondPM)) writeini AwaySettings.ini Config RespondPM on
- if (!$readini(AwaySettings.ini,Config,RespondNotice)) writeini AwaySettings.ini Config RespondNotice on
- echo -a 4>>> Successfully loaded $remove($script,$scriptdir) - Away System script by Urza
- }
- ; ##############################################
- ; # Check for away on connect #
- ; ##############################################
- on *:connect: {
- if ($group(#away) == on) {
- if ($($+(%,Away.Newnick.,$network),2) != $me) nick $ifmatch
- ame is currently away $iif(%Away.Reason,- %Away.Reason) $iif(%Away.leavetime,- Left at %Away.Leavtime) $iif($Away.Gonefor,- Gone for $Away.Gonefor)
- !away Away: $iif(%Away.Reason,- %Away.Reason) $iif(%Away.leavetime,- Left at %Away.Leavtime) $iif($Away.Gonefor,- Gone for $Away.Gonefor)
- }
- }
- ; ##############################################
- ; # Remove Away if unloaded #
- ; ##############################################
- on *:unload: {
- disable #away
- unset %away.*
- hfree away.*.responses
- timerAway.Idlecheck off
- }
- ; ##############################################
- ; # Cancel Away on exit #
- ; ##############################################
- on *:exit: {
- disable #away
- unset %away.*
- timerAway.Idlecheck off
- }
- ; ##############################################
- ; # Popup Menus #
- ; ##############################################
- menu status,channel,query,menubar,@Away.Logs {
- -
- Away Settings
- .Open away options: dialog $iif($dialog(away),-o,-m) away away
- .$iif($active == @Away.Logs,Close window):window -c $active
- . -
- . Set away $+ $chr(58) $iif($group(#away) == off,on,off): {
- if ($group(#away) == off) away $?="Enter away reason or leave black for default (if set)"
- else back
- }
- .-
- .$iif($group(#away) == on && %Away.Preset == 1,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,1),$style(2))) Preset 1 - $iif($readini(AwaySettings.ini,Presets,1),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,1),1,126)
- .$iif($group(#away) == on && %Away.Preset == 2,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,2),$style(2))) Preset 2 - $iif($readini(AwaySettings.ini,Presets,2),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,2),1,126)
- .$iif($group(#away) == on && %Away.Preset == 3,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,3),$style(2))) Preset 3 - $iif($readini(AwaySettings.ini,Presets,3),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,3),1,126)
- .$iif($group(#away) == on && %Away.Preset == 4,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,4),$style(2))) Preset 4 - $iif($readini(AwaySettings.ini,Presets,4),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,4),1,126)
- .$iif($group(#away) == on && %Away.Preset == 5,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,5),$style(2))) Preset 5 - $iif($readini(AwaySettings.ini,Presets,5),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,5),1,126)
- .$iif($group(#away) == on && %Away.Preset == 6,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,6),$style(2))) Preset 6 - $iif($readini(AwaySettings.ini,Presets,6),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,6),1,126)
- .$iif($group(#away) == on && %Away.Preset == 7,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,7),$style(2))) Preset 7 - $iif($readini(AwaySettings.ini,Presets,7),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,7),1,126)
- }
- ; ##############################################
- ; # Main Dialog #
- ; ##############################################
- dialog away {
- title Away System Settings
- size -1 -1 150 177
- option dbu
- tab "Basic Settings" 100,0 0 150 156
- tab "Exceptions and Messaging" 200,0 0 150 156
- Box "Default Away Settings", 2, 4 15 142 45, tab 100
- text "Nick:", 1, 8 28 12 10, tab 100
- combo 3, 22 26 50 10, drop tab 100
- edit "", 5, 75 26 50 10, tab 100
- button "?", 6, 130 26 10 10, tab 100
- text "Default Away Message:", 24, 8 39 100 10, tab 100
- edit "", 25, 8 47 117 10, autohs tab 100
- button "?", 26, 130 47 10 10, tab 100
- box "Global Options" 4, 4 62 142 92, tab 100
- check "A&uto Away After", 7, 12 71 50 10, tab 100
- edit "", 8, 63 71 10 10, tab 100
- text "minutes.", 9, 75 72.5 40 10, tab 100
- button "?", 10, 130 71 10 10, tab 100
- button "options", 27, 98 71 30 10, tab 100
- check "Show &Leaving Time?" 11, 12 85 60 10, tab 100
- edit "" 12, 75 85 50 10, tab 100
- button "?", 13, 130 85 10 10, tab 100
- check "Show &Time Away?" 14, 12 100 55 10, tab 100
- combo 15, 75 100 50 10, drop tab 100
- button "?", 16, 130 100 10 10, tab 100
- box "Auto Return" 17, 7 115 136 35, tab 100
- text "Cancel away on:" 18, 12 125 80 10, tab 100
- check "&Channel Message" 19, 60 124 50 10, tab 100
- check "&Private Message" 20, 60 134 50 10, tab 100
- button "?", 21, 130 134 10 10, tab 100
- ;Exception + messaging options: - display only does nothing yet
- box "Messaging", 30, 4 15 142 90, tab 200
- text "Send messages to:", 31, 8 26 50 10, tab 200
- check "All open channels" 32, 60 25 50 10, tab 200
- check "All open queries" 33, 60 35 50 10, tab 200
- button "?", 34, 130 26 10 10, tab 200
- box "Response Messages", 35, 8 48 134 38, tab 200
- text "Respond to:", 36, 12 56 50 10, tab 200
- check "Channel highlight", 37, 60 55 50 10, tab 200
- check "Private message", 38, 60 65 50 10, tab 200
- check "Private notice", 39, 60 75 50 10, tab 200
- button "?", 40, 130 55 10 10, tab 200
- button "Get mIRC hilights", 42, 18 90 50 10, tab 200
- button "Modify Hilights", 43, 70 90 50 10, tab 200
- button "?", 44, 130 90 10 10, tab 200
- box "Exceptions", 45, 4 109 142 24, tab 200
- button "Modify Away System Exceptions" 46, 8 118 100 10, tab 200
- button "?", 48, 130 118 10 10, tab 200
- button "Edit &Presets" 22, 12 159 60 15
- button "&Ok" 23, 80 159 60 15, ok
- }
- ; ##############################################
- ; # Custom presets dialog #
- ; ##############################################
- dialog Custom.Aways {
- title Custom Away Messages
- size -1 -1 236 110
- option dbu
- box "Custom Away Triggers" 1, 4 4 227 85
- text "Trigger", 2, 16 12 30 10
- text "Nick Settings", 3, 50 12 50 10
- text "Away Message", 4, 130 12 50 10
- list 5, 10 20 30 50
- list 6, 40 20 50 50
- list 7, 90 20 134 50, autohs
- button "Add", 8, 10 70 50 15
- button "Edit", 10, 65 70 50 15
- button "Delete", 9, 120 70 50 15
- button "Clear", 12, 175 70 50 15
- button "OK", 11, 90 90 50 15, OK
- }
- ; ##############################################
- ; # Idle Away Settings + Help dialogs #
- ; ##############################################
- dialog Idle.Away.Settings {
- title Idle Away Settings
- size -1 -1 120 85
- option dbu
- box "Idle away settings", 1, 4 4 112 55
- text "Nick Settings:", 2, 8 12 50 10
- combo 3, 8 20 50 10, drop
- edit "", 4, 62 20 50 10
- text "Idle away message:", 5, 8 35 50 10
- edit "", 6, 8 43 104 10, autohs
- button "&Help" 7, 5 65 50 15
- button "&Ok", 8, 65 65 50 15, OK
- }
- Dialog Idle.Away.Help {
- title Away System Help
- size -1 -1 150 90
- option dbu
- box "Idle away help", 1, 4 4 142 60
- text "Idle away nick and automatic message settings work in the same way as the default away settings in the main dialog, except that they define the settings used when you are automatically set away from Idle" 2, 8 15 133 25
- text "you can use %time to refer to the time you must idle before being set as away", 3, 8 45 133 20
- button "&Ok", 4, 50 70 50 15, OK
- }
- ; ##############################################
- ; # Preset Settings + Help dialogs #
- ; ##############################################
- dialog Preset.Settings {
- title Preset Settings
- size -1 -1 120 100
- option dbu
- box "Preset settings", 1, 4 4 112 70
- text "Trigger:", 2, 8 14 50 10
- edit "", 3, 30 13 50 10
- text "Nick Settings:", 4, 8 27 50 10
- combo 5, 8 35 50 10, drop
- edit "", 6, 62 35 50 10
- text "Away message:", 7, 8 50 50 10
- edit "", 8, 8 58 104 10, autohs
- button "&Help" 9, 5 80 50 15
- button "&Ok", 10, 65 80 50 15, OK
- }
- Dialog Preset.Help {
- title Away System Help
- size -1 -1 150 90
- option dbu
- box "Presets help", 1, 4 4 142 60
- text "Preset nick and Away message settings work in the same way as the default away settings in the main dialog, except that they define the settings used for the preset you are creating" 2, 8 15 133 27
- text "To use a preset once you have created it simply type /Away TRIGGER", 3, 8 45 133 20
- button "&Ok", 4, 50 70 50 15, OK
- }
- ; ##############################################
- ; # Exceptions dialogs #
- ; ##############################################
- dialog Away.Exceptions {
- title Away System Exceptions
- size -1 -1 120 100
- option dbu
- box "Exceptions" 1, 4 4 112 75
- text "Networks" 2, 8 12 50 10, center
- list 3, 8 19 50 58
- button "Add" 6, 61 20 50 10
- button "Delete" 7, 61 34 50 10
- button "Edit" 8, 61 49 50 10
- button "Clear" 9, 61 63 50 10
- button "OK" 10, 35 82 50 15, oks
- }
- dialog Away.AddException {
- title Add Exception
- size -1 -1 156 190
- option dbu
- box "Add Exception" 1, 4 4 148 165
- text "Network Name:" 2, 8 16 40 10
- edit "" 3, 50 15 60 10
- text "If you are unsure of a network name you can type: //echo -a $network in mIRC to view it." 20, 8 30 130 15
- box "Exception scope" 4, 8 50 140 55
- Text "This exception affects:" 5, 12 60 55 10
- radio "Entire network" 6, 69 59 65 10
- radio "certain channels only" 7, 69 69 65 10
- Text "Enter Channels to be excepted, seperated by spaces." 8, 12 80 130 10
- edit "" 9, 12 90 130 10
- box "Exception Options" 10, 8 110 140 55
- text "On this network:" 11, 12 120 45 10
- check "Do not change nick" 12, 55 120 55 10
- check "Do not send away messages" 13, 55 130 80 10
- check "Do not send hilight responses" 14, 55 140 80 10
- check "Do not send PM responses" 15, 55 150 80 10
- button "OK" 16, 53 172 50 15, Ok
- }
- ; ##############################################
- ; # Help Dialogs #
- ; ##############################################
- dialog Away.Help.6 {
- title Away System Help
- size -1 -1 150 120
- option dbu
- box "Nick Settings Help", 1, 5 5 140 90
- text "Nick PREFIX: Adds the specified text to the FRONT of your nick when going away", 2, 8 15 133 20
- text "Nick SUFFIX: Adds the specified text to the END of your nick when going away", 3, 8 35 133 20
- text "Set to: Sets your nick to the specified nick when you set away", 4, 9 55 133 20
- text "Don?t Change: Means that you?re nick will not change when going away or coming back", 5, 8 75 133 20
- button "OK", 7, 50 100 50 15, OK
- }
- dialog Away.Help.10 {
- title Away System Help
- size -1 -1 150 90
- option dbu
- box "Auto Away Help", 1, 5 5 140 60
- text "Enabling Auto-Away will automatically set you as away if you are idle for the specified time", 2, 8 15 134 20
- text "Time must be between 1 and 60 minutes", 3, 8 35 134 20
- text "Options for settings Idle nick and message can be found by clicking the options button", 4, 8 45 134 20
- button "OK", 5, 50 70 50 15, ok
- }
- dialog Away.Help.13 {
- title Away System Help
- size -1 -1 150 80
- option dbu
- box "Show Leaving Time Help", 1, 5 5 140 50
- text "Enabling 'Show Leaving Time' will display the time you went away in all your away messages in the specified Time Format", 2, 8 15 134 20
- button "Click Here for a list of codes used in time format", 3, 8 40 134 10
- button "OK", 4, 50 60 50 15, ok
- }
- dialog Away.Help.16 {
- title Away System Help
- size -1 -1 150 90
- option dbu
- box "Show Time Away Help", 1, 5 5 140 60
- text "Enabling 'Show Time Away' will display how long you have been away in all your away messages in the specified Time Format", 2, 8 15 134 20
- text "Example of Short format: 5h 6m 10s" 3, 8 40 134 10
- text "Example of Medium format: 5hrs 6mins 10secs" 4, 8 48 134 10
- text "Example of long format: 5 hours 6 minutes 10 seconds" 5, 8 56 134 10
- button "OK", 6, 50 70 50 15, ok
- }
- dialog Away.Help.21 {
- title Away System Help
- size -1 -1 150 65
- option dbu
- box "Automatic Return Help", 1, 5 5 140 35
- text "Enabling 'Automatic Return' will automatically bring you back from away if you send any Channel And/Or Private message", 2, 8 15 134 20
- button "OK", 5, 50 45 50 15, ok
- }
- dialog Away.Help.26 {
- title Away System Help
- size -1 -1 150 55
- option dbu
- box "Default Message Help", 1, 5 5 140 27
- text "If you do not enter a reason when going away this default will be used", 2, 8 15 134 20
- button "OK", 3, 50 35 50 15, ok
- }
- dialog Away.Help.34 {
- title Away System Help
- size -1 -1 150 60
- option dbu
- box "Message sending help", 1, 5 5 140 32
- text "These options refer to weather your away message will be sent to channels and/or Pm's (Queries) when leaving and returning.", 2, 8 15 134 20
- button "OK", 3, 50 40 50 15, ok
- }
- dialog Away.Help.40 {
- title Away System Help
- size -1 -1 150 80
- option dbu
- box "Auto Response Help", 1, 5 5 140 50
- text "These options refer to what actions will trigger an auto message alerting the person that you are away.", 2, 8 15 134 20
- text "Channel highlight is triggered whenever someone says a word that is in your hilights list", 3, 8 35 134 20
- button "OK", 4, 50 60 50 15, ok
- }
- dialog Away.Help.44 {
- title Away System Help
- size -1 -1 150 120
- option dbu
- box "Hilight help", 1, 5 5 140 92
- text "'Hilight' occurs whenever somebody says a word that is in your hilights list.", 2, 8 15 134 20
- text "Your away hilights determine what words, when said, will cause the script to notify the person that you are away, and log the message", 3, 8 31 134 20
- text "If you have hilights set in mIRC you can click 'Get mIRC Hilights' to have the away system use these same hilights", 4, 8 54 134 20
- text "You may also add or modify seperate ones using the 'Modify Hilights' button. Note that Identifiers such as $me (which refers to your current nick) are also allowed" 5, 8 75 134 20
- button "OK", 6, 50 100 50 15, ok
- }
- dialog Away.Help.48 {
- title Away System Help
- size -1 -1 150 65
- option dbu
- box "Exceptions help", 1, 5 5 140 35
- text "Exceptions allow you to specify networks/channels in which away messages are not sent, or networks in which your nick is not changed", 2, 8 15 134 25
- button "OK", 3, 50 45 50 15, ok
- }
- dialog Away.Help.Time {
- title Away System Help
- size -1 -1 150 155
- option dbu
- box "Time Format Help", 1, 5 5 140 120
- text "The following is a list of Codes that can be used in Time Formats", 2, 8 15 134 20
- box "Time Format Codes", 3, 8 30 134 88
- list 4, 20 40 20 75
- list 5, 40 40 90 75
- button "OK", 6, 50 130 50 15, ok
- }
- ; ##############################################
- ; # Dialog Initiation events #
- ; ##############################################
- ; ----- Populate Time help
- on *:dialog:Away.Help.Time:init:*: {
- did -a $dname 4 HH
- did -a $dname 5 Hours - 2 Digit 24 hour time - $time(HH)
- did -a $dname 4 H
- did -a $dname 5 Hours - 1 Digit 24 hour time - $time(H)
- did -a $dname 4 hh
- did -a $dname 5 Hours - 2 Digit 12 hour time - $time(hh)
- did -a $dname 4 h
- did -a $dname 5 Hours - 1 Digit 12 hour time - $time(h)
- did -a $dname 4 nn
- did -a $dname 5 Minutes - 2 Digit - $time(nn)
- did -a $dname 4 n
- did -a $dname 5 Minutes - 1 Digit - $time(n)
- did -a $dname 4 ss
- did -a $dname 5 Seconds - 2 Digit - $time(ss)
- did -a $dname 4 s
- did -a $dname 5 Seconds - 1 Digit - $time(s)
- did -a $dname 4 tt
- did -a $dname 5 am/pm - Lower case - $time(tt)
- did -a $dname 4 TT
- did -a $dname 5 AM/PM - Upper Case - $time(TT)
- }
- ; ----- Populate main dialog settings
- on *:dialog:away:init:*: {
- ;Tab 100 Controls
- did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Prefix,c) $dname 3 Prefix
- did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Suffix,c) $dname 3 Suffix
- did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Set to,c) $dname 3 Set to
- did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Don't Change,c) $dname 3 Don't Change
- if ($readini(AwaySettings.ini,Config,NickEditType) == Don't Change) did -m $dname 5
- if ($readini(AwaySettings.ini,Config,NickPrefix)) && ($did(away,3).seltext == Prefix) did -ra $dname 5 $readini(AwaySettings.ini,Config,NickPrefix)
- if ($readini(AwaySettings.ini,Config,NickSuffix)) && ($did(away,3).seltext == Suffix) did -ra $dname 5 $readini(AwaySettings.ini,Config,NickSuffix)
- if ($readini(AwaySettings.ini,Config,NickSetTo)) && ($did(away,3).seltext == Set To) did -ra $dname 5 $readini(AwaySettings.ini,Config,NickSetTo)
- if ($readini(AwaySettings.ini,Config,AutoAway) == on) did -c $dname 7 | else did -m $dname 8
- if ($readini(AwaySettings.ini,Config,AutoAwayTime)) did -a $dname 8 $calc($ifmatch / 60) | else did -a $dname 8 900
- if ($readini(AwaySettings.ini,Config,LeavingTime) == on) did -c $dname 11 | else did -m $dname 12
- if ($readini(AwaySettings.ini,Config,LeavingTimeFormat)) did -a $dname 12 $ifmatch | else did -a $dname 12 HH:nn:ss
- if ($readini(AwaySettings.ini,Config,TimeAway) == on) did -c $dname 14 | else did -b $dname 15
- if ($readini(AwaySettings.ini,Config,TimeAwayFormat) == Short) did -ac $dname 15 Short | else did -a $dname 15 Short
- if ($readini(AwaySettings.ini,Config,TimeAwayFormat) == Medium) did -ac $dname 15 Medium | else did -a $dname 15 Medium
- if ($readini(AwaySettings.ini,Config,TimeAwayFormat) == Long) did -ac $dname 15 Long | else did -a $dname 15 Long
- if ($readini(AwaySettings.ini,Config,ARChannelMessage) == on) did -c $dname 19
- if ($readini(AwaySettings.ini,Config,ARPrivateMessage) == on) did -c $dname 20
- if ($readini(AwaySettings.ini,Config,DefaultMessage)) did -a $dname 25 $ifmatch
- ;Tab 200 controls
- if ($readini(AwaySettings.ini,Config,MsgChans) == on) did -c $dname 32
- if ($readini(AwaySettings.ini,Config,MsgQueries) == on) did -c $dname 33
- if ($readini(AwaySettings.ini,Config,RespondHilights) == on) did -c $dname 37
- if ($readini(AwaySettings.ini,Config,RespondPM) == on) did -c $dname 38
- if ($readini(AwaySettings.ini,Config,RespondNotice) == on) did -c $dname 39
- }
- ; ----- Populate Custom presets list
- on *:dialog:Custom.Aways:init:*: {
- var %x = 1
- while (%x <= 7) {
- if ($readini(AwaySettings.ini,Presets,%x)) {
- did -a $dname 5 $gettok($v1,1,126)
- did -a $dname 6 $gettok($v1,2,126)
- did -a $dname 7 $gettok($v1,3-,126)
- }
- else halt
- inc %x
- }
- }
- ; ----- Populate Idle Away Settings
- on *:dialog:Idle.Away.Settings:init:*: {
- tokenize 126 $readini(AwaySettings.ini,n,Config,IdleSettings)
- did -a $+ $iif($1 == Prefix,c) $dname 3 Prefix
- did -a $+ $iif($1 == Suffix,c) $dname 3 Suffix
- did -a $+ $iif($1 == Set to,c) $dname 3 Set to
- did -a $+ $iif($1 == Don't Change,c) $dname 3 Don't Change
- if ($1 == Don't Change) did -m $dname 5
- else did -ra $dname 4 $2
- if ($3) did -a $dname 6 $3-
- }
- ; ----- Populate Preset settings
- on *:dialog:Away.Preset:init:*: {
- if (%Away.EditPreset) {
- var %pre = %Away.EditPreset, %trigger = $did(Custom.Aways,5).seltext
- var %edittype = $gettok($did(Custom.Aways,6).seltext,1,58), %nickedit = $gettok($did(Custom.Aways,6).seltext,2,58)
- var %reason = $did(Custom.Aways,7).seltext
- did -a $dname 3 %trigger
- did -a $+ $iif(%edittype == Prefix,c) $dname 5 Prefix
- did -a $+ $iif(%edittype == Suffix,c) $dname 5 Suffix
- did -a $+ $iif(%edittype == Set to,c) $dname 5 Set to
- did -a $+ $iif(%edittype == Don't Change,c) $dname 5 Don't Change
- if (%edittype == Don't Change) did -m $dname 6
- else did -ra $dname 6 %nickedit
- if (%reason) did -a $dname 8 %reason
- }
- else {
- did -a $dname 5 Prefix
- did -a $dname 5 Suffix
- did -a $dname 5 Set to
- did -a $dname 5 Don't Change
- }
- }
- ; Exception initiation events
- on *:dialog:Away.Exceptions:init:*: {
- var %x = 1,%total = $ini(AwaySettings.ini,Exceptions,0)
- while (%x <= %total) {
- did -a $dname 3 $ini(AwaySettings.ini,Exceptions,%x)
- inc %x
- }
- }
- on *:dialog:Away.AddException:init:*: {
- if (%Away.Exception) {
- var %info = $readini(AwaySettings.ini,Exceptions,%away.Exception)
- var %scope = $gettok(%info,1,126), %options = $gettok(%info,2,126), %chans = $gettok(%info,3-,126)
- did -a $dname 3 %Away.Exception
- if (%scope == 1) {
- did -c $dname 6
- did -b $dname 9
- }
- else {
- did -c $dname 7
- did -b $dname 12,15
- did -e $dname 9
- did -a $dname 9 %chans
- }
- if ($left(%options,1) == 1) && (%scope == 1) did -c $dname 12
- if ($mid(%options,2,1) == 1) did -c $dname 13
- if ($mid(%options,3,1) == 1) did -c $dname 14
- if ($right(%options,1) == 1) && (%scope == 1) did -c $dname 15
- }
- else {
- did -c $dname 6
- did -b $dname 9
- }
- }
- ; ##############################################
- ; # Dialog Sclick Events #
- ; ##############################################
- ; ----- Open Time Help dialog
- on *:dialog:Away.Help.13:sclick:3: {
- dialog $iif($dialog(Away.Help.Time),-o,-m) Away.Help.Time Away.Help.Time
- dialog -x $dname
- }
- ; ----- Select same line in each column in time help dialog
- on *:dialog:Away.Help.Time:sclick:*: {
- if ($did == 4) did -c $dname 5 $did(4).sel
- elseif ($did == 5) did -c $dname 4 $did(5).sel
- }
- ; ----- Processing clicks for main dialog
- on *:dialog:away:sclick:*: {
- ; Tab 100
- if ($did == 3) {
- writeini AwaySettings.ini Config NickEditType $did(3).seltext
- if ($did(3).seltext == Prefix) did -nra $dname 5 $readini(AwaySettings.ini,Config,NickPrefix)
- elseif ($did(3).seltext == suffix) did -nra $dname 5 $readini(AwaySettings.ini,Config,NickSuffix)
- elseif ($did(3).seltext == Set to) did -nra $dname 5 $readini(AwaySettings.ini,Config,NickSetTo)
- else did -rm $dname 5
- }
- if ($did == 7) && ($did(7).state == 0) did -m $dname 8
- elseif ($did == 7) && ($did(7).state == 1) did -n $dname 8
- elseif ($did == 11) && ($did(11).state == 0) did -m $dname 12
- elseif ($did == 11) && ($did(11).state == 1) did -n $dname 12
- elseif ($did == 14) && ($did(14).state == 0) did -b $dname 15
- elseif ($did == 14) && ($did(14).state == 1) did -e $dname 15
- elseif ($istok(6|10|13|16|21|26|34|40|44|48,$did,124)) dialog $iif($dialog($+(Away.Help.,$did)),-o,-m) $+(Away.Help.,$did) $+(Away.Help.,$did)
- elseif ($did == 22) dialog $iif($dialog(Custom.Aways),-o,-m) Custom.Aways Custom.Aways
- elseif ($did == 27) dialog $iif($dialog(Idle.Away.Settings),-o,-m) Idle.Away.Settings Idle.Away.Settings
- ; Tab 200
- elseif ($did == 42) {
- if ($input(Retrieved the following hilights from your current mIRC settings: $crlf $crlf $+ $Get.Highlights $Crlf $crlf $+ Would you like to use these as your away system highlights? You can use the 'Modify Hilights' button to modify or add to these.,yi,Highlights)) {
- writeini AwaySettings.ini Config Hilights $Get.Highlights
- }
- }
- elseif ($did == 43) {
- var %hilights = $input(Enter Hilight words or identifiers seperated by commans ONLY. $crlf $+ Eg: $+($me,$chr(44),ALTNICK,$chr(44),$ $+ me),oe,Modify Hilights,$readini(AwaySettings.ini,n,Config,Hilights)))
- if (%hilights) writeini AwaySettings.ini Config Hilights $remove(%hilights,$chr(32))
- else remini Settings.ini Away.Config Hilights
- }
- elseif ($did == 46) {
- dialog $iif($dialog(Away.Exceptions),-v,-m) Away.Exceptions Away.Exceptions
- }
- }
- ; ----- Process button clicks and keep selection of all columns the same in presets dialog
- on *:dialog:Custom.Aways:sclick:*: {
- if ($did == 5) did -c $dname 6,7 $did(5).sel
- elseif ($did == 6) did -c $dname 5,7 $did(6).sel
- elseif ($did == 7) did -c $dname 5,6 $did(7).sel
- elseif ($did == 8) dialog $iif($dialog(Away.Preset),-v,-m) Away.Preset Preset.Settings
- elseif ($did == 9) {
- if (!$did(5).sel) var %x = $input(Error: You must select an entry to delete,wo,Invalid Selection)
- elseif ($?!="Are you sure you want to delete this entry - $did(5).seltext ") {
- did -d $dname 5 $did(5).sel
- did -d $dname 6 $did(6).sel
- did -d $dname 7 $did(7).sel
- }
- }
- elseif ($did == 10) {
- if (!$did(5).sel) { var %x = $input(Error: You must select an entry to edit,wo,Invalid Selection) | halt }
- set %Away.EditPreset $did(5).sel
- dialog $iif($dialog(Away.Preset),-v,-m) Away.Preset Preset.Settings
- }
- elseif ($did == 12) {
- if ($input(Are you sure you want to clear all your presets?,qy,Validation Prompt)) {
- var %x = 7
- while (%x > 0) {
- did -c $dname 5 %x
- if ($did(5).seltext) did -d $dname 5,6,7 $did(5).sel
- dec %x
- }
- }
- }
- }
- ; ----- Process Idle Away clicks/settings
- on *:dialog:Idle.Away.Settings:sclick:*: {
- var %time = $calc($readini(AwaySettings.ini,Config,AutoAwayTime) / 60)
- if ($did == 3) {
- if ($did(3).seltext == Don't Change) did -rm $dname 4
- else did -n $dname 4
- }
- elseif ($did == 7) dialog $iif($dialog(Idle.Away.help),-v,-m) Idle.Away.help Idle.Away.Help
- }
- ; ----- Process Preset dialog clicks/settings
- on *:dialog:Away.Preset:sclick:*: {
- if ($did == 5) {
- if ($did(5).seltext == Don't Change) did -rm $dname 6
- else did -n $dname 6
- }
- elseif ($did == 9) dialog $iif($dialog(Preset.Help),-v,-m) Preset.Help Preset.Help
- }
- ; ----- Exception Clicks
- on *:dialog:Away.Exceptions:sclick:*: {
- if ($did == 6) dialog $iif($dialog(Away.AddException),-v,-m) Away.AddException Away.AddException
- elseif ($did == 7) {
- if (!$did(3).sel) var %x = $input(You must select an entry to delete,wo,Invalid Selection)
- elseif ($?!="Are you sure you want to delete this entry - $did(3).seltext ") {
- remini AwaySettings.ini Exceptions $did(3).seltext
- did -d $dname 3 $did(3).sel
- }
- }
- elseif ($did == 8) {
- if (!$did(3).sel) var %x = $input(You must select an entry to edit,wo,Invalid Selection)
- else {
- set %Away.Exception $did(3).seltext
- set %Away.ExceptionNum $did(3).sel
- dialog $iif($dialog(Away.AddException),-v,-m) Away.AddException Away.AddException
- }
- }
- elseif ($did == 9) {
- if ($input(Are you sure you want to clear all your network exceptions?,qy,Validation Prompt)) {
- var %x = $did(3).lines
- remini AwaySettings.ini Exceptions
- while (%x > 0) {
- did -c $dname 3 %x
- if ($did(3).seltext) did -d $dname 3 $did(3).sel
- dec %x
- }
- }
- }
- }
- on *:dialog:Away.AddException:Sclick:*: {
- if ($did == 6) {
- did -e $dname 12,15
- did -b $dname 9
- did -r $dname 9
- }
- elseif ($did == 7) {
- did -b $dname 12,15
- did -e $dname 9
- if ($did(12).state == 1) did -u $dname 12
- if ($did(15).state == 1) did -u $dname 15
- }
- }
- ; ##############################################
- ; # Dialog Close Events #
- ; ##############################################
- ; ----- Main dialog - save data
- on *:dialog:Away:close:*: {
- ; tab 100 settings
- if ($did(5)) {
- if ($did(3).seltext == Prefix) writeini AwaySettings.ini Config NickPrefix $did(5)
- elseif ($did(3).seltext == Suffix) writeini AwaySettings.ini Config NickSuffix $did(5)
- elseif ($did(3).seltext == Set to) writeini AwaySettings.ini Config NickSetTo $did(5)
- }
- else {
- writeini AwaySettings.ini Config NickPrefix Away|
- writeini AwaySettings.ini Config NickSuffix |Away
- }
- writeini AwaySettings.ini Config AutoAway $iif($did(7).state == 0,off,on)
- writeini AwaySettings.ini Config AutoAwayTime $iif($did(8),$calc($did(8) * 60),900)
- writeini AwaySettings.ini Config LeavingTime $iif($did(11).state == 0,off,on)
- writeini AwaySettings.ini Config LeavingTimeFormat $iif($did(12),$did(12),HH:nn:ss)
- writeini AwaySettings.ini Config TimeAway $iif($did(14).state == 0,off,on)
- writeini AwaySettings.ini Config TimeAwayFormat $iif($did(15),$did(15),Shorts)
- writeini AwaySettings.ini Config ARChannelMessage $iif($did(19).state == 0,off,on)
- writeini AwaySettings.ini Config ARPrivateMessage $iif($did(20).state == 0,off,on)
- if ($did(25)) writeini AwaySettings.ini Config DefaultMessage $did(25)
- else remini Settings.ini Away.Config DefaultMessage
- if ($readini(AwaySettings.ini,Config,AutoAway) == on) .timerAway.IdleCheck -o 0 30 Away.IdleCheck
- elseif ($timer(Away.IdleCheck)) .timerAway.IdleCheck off
- ;Tab 200 settings
- writeini AwaySettings.ini Config MsgChans $iif($did(32).state == 0,off,on)
- writeini AwaySettings.ini Config MsgQueries $iif($did(33).state == 0,off,on)
- writeini AwaySettings.ini Config RespondHilights $iif($did(37).state == 0,off,on)
- writeini AwaySettings.ini Config RespondPM $iif($did(38).state == 0,off,on)
- writeini AwaySettings.ini Config RespondNotice $iif($did(39).state == 0,off,on)
- }
- ; ----- Save presets
- on *:dialog:Custom.Aways:close:*: {
- var %x = 1, %lines = $did(5).lines
- while (%x <= %lines) {
- did -c $dname 5,6,7 %x
- writeini AwaySettings.ini presets %x $+($did(5).seltext,~,$did(6).seltext,~,$did(7).seltext)
- inc %x
- }
- dec %x
- while (%x < 7) {
- inc %x
- if ($readini(AwaySettings.ini,presets,%x)) remini AwaySettings.ini Presets %x
- }
- }
- ; ----- Save Idle away settings
- on *:dialog:Idle.Away.Settings:close:*: {
- writeini AwaySettings.ini Config IdleSettings $+($did(3).seltext,~,$iif($did(4),$ifmatch,IDLE),~,$iif($did(6),$ifmatch,Auto away after % $+ time minutes idle))
- }
- ; ----- Save Preset settings
- on *:dialog:Away.Preset:close:*: {
- var %pre = %away.EditPreset
- if (!$did(3)) var %x = $input(Error: No trigger was specified,ow,Input Error)
- elseif (!$did(6)) && ($did(5).seltext != Don't Change) var %x = $input(Error: You did not specify $iif($did(5).seltext,a nick $iif($did(5).seltext == set to,to change to,$ifmatch),any nick settings),ow,Input Error)
- elseif ($remove($did(6),$chr(91),$chr(93),$chr(92),$chr(45),$chr(95),$chr(123),$chr(124),$chr(125)) !isalnum) && ($did(6)) { var %x = $input(Error: Invalid Characters detected in specified nick,wo,Input Error) | halt }
- elseif (!$did(5).seltext) var %x = $input(Error: You have not specified how to change your nick - Select an option from the nick settings drop down,ow,Error)
- elseif ($numtok($did(3),32) > 1) || ($numtok($did(6),32) > 1) var %x = $input(Error: Trigger and nick Settings can each only be one word long,wo,Input Error)
- else {
- did $iif(%pre,-o,-a) Custom.Aways 5 $iif(%pre,%pre) $did(3)
- did $iif(%pre,-o,-a) Custom.Aways 6 $iif(%pre,%pre) $did(5).seltext $+ $iif($did(5).seltext != Don't Change,: $did(6))
- did $iif(%pre,-o,-a) Custom.Aways 7 $iif(%pre,%pre) $did(8)
- unset %away.EditPreset
- }
- }
- ; ---- Save Exception settings
- on *:dialog:Away.AddException:close:*: {
- if (!$did(3)) var %x = $input(No Network name was entered,wo,Input Error)
- elseif ($numtok($did(3),32) > 1) var %x = $input(Network name may not contain spaces,wo,Input Error)
- else {
- var %scope = $iif($did(6).state == 1,1,2)
- var %x = 1, %numchans = $numtok($did(9),32)
- while (%x <= %numchans) {
- var %token = $gettok($did(9),%x,32)
- if (#?* iswm %token) var %chans = %chans %token
- elseif (%token != $chr(35)) var %chans = %chans $+($chr(35),%token)
- inc %x
- }
- var %x = 12
- while (%x <= 15) {
- var %options = %options $+ $did(%x).state
- inc %x
- }
- did $iif(%Away.ExceptionNum,-o,-a) Away.Exceptions 3 $iif(%Away.ExceptionNum,$ifmatch) $did(3)
- writeini AwaySettings.ini Exceptions $did(3) $+(%scope,~,%options,~,%chans)
- unset %Away.Exception*
- }
- }
- ; ##############################################
- ; # /Away And /back aliases #
- ; ##############################################
- alias away {
- ; ----- Unset Idle timer, Get highlights, enable #away group for logging etc
- if ($timer(Away.IdleCheck)) .timerAway.IdleCheck off
- set %Away.Hilights $readini(awaySettings.ini,n,Config,Hilights)
- .enable #away
- ; ---- Retrieve away settings from config/User entry
- var %time = $calc($readini(AwaySettings.ini,Config,AutoAwayTime) / 60)
- if ($1) set %away.Reason $1-
- elseif ($readini(AwaySettings.ini,Config,DefaultMessage)) set %away.Reason $v1
- set %Away.LeftAt $ctime
- if ($readini(AwaySettings.ini,Config,LeavingTime) == on) {
- var %LeavingTimeFormat = $readini(AwaySettings.ini,Config,LeavingTimeFormat)
- set %away.LeaveTime $time(%LeavingTimeFormat)
- }
- ; ---- Check for idleaway
- If ($1- = Auto.Idle.Away) {
- var %IdleInfo = $readini(AwaySettings.ini,Config,IdleSettings)
- var %edittype = $gettok(%IdleInfo,1,126)
- if (%edittype == Set to) var %nickset = $gettok(%IdleInfo,2,126)
- else var %nickadd = $gettok(%IdleInfo,2,126)
- set %Away.Reason $($gettok(%IdleInfo,3-,126),2)
- }
- else {
- var %edittype = $readini(AwaySettings.ini,Config,NickEditType)
- if (%edittype == Set To) var %nickset = $readini(AwaySettings.ini,Config,NickSetTo)
- else var %nickadd = $readini(AwaySettings.ini,Config,Nick $+ %edittype)
- }
- ; ----- Check for presets
- var %x 1
- while (%x <= 7) {
- if ($readini(AwaySettings.ini,Presets,%x)) {
- var %preset = $v1
- if ($1- == $gettok(%preset,1,126)) {
- var %edittype = $gettok($gettok(%preset,2,126),1,58)
- var %nickadd = $remove($gettok($gettok(%preset,2,126),2,58),$chr(32))
- set %Away.Reason $gettok(%preset,3-,126)
- set %Away.Preset %x
- var %x = 7
- }
- }
- inc %x
- }
- ; ----- Cycle Connections to change nick/send msg
- var %x = 1, %connections = $scon(0)
- while (%x <= %connections) {
- scon %x
- if ($status == connected) {
- unset %Except.*
- if ($readini(AwaySettings.ini,Exceptions,$network)) {
- var %Except.info = $v1
- var %Except.Scope = $gettok(%Except.info,1,126)
- var %Except.Options = $gettok(%Except.info,2,126)
- if (%Except.Scope == 2) && ($mid(%Except.Options,2,1) == 1) var %Except.NoMsgChans = $gettok(%Except.Info,3-,126)
- if (%Except.Scope == 1) && ($left(%Except.Options,1) == 1) var %Except.NoNickChange = 1
- if (%Except.Scope == 1) && ($mid(%Except.Options,2,1) == 1) var %Except.NoAwayMsg = 1
- }
- set $+(%,Away.Oldnick.,$network) $me
- if ($readini(AwaySettings.ini,Config,NickEditType) != Don't Change) && (!%Except.NoNickChange) {
- if (%edittype == Set To) && (%NickSet != $me) var %newnick = %NickSet
- if (%edittype == Prefix) && ($+(%nickadd,*) !iswm $me) var %newnick = $+(%nickadd,$me)
- if (%edittype == Suffix) && ($+(*,%nickadd) !iswm $me) var %newnick = $+($me,%nickadd)
- set $+(%,Away.Newnick.,$network) $iif(%newnick,$ifmatch,$me)
- if (%newnick) nick %newnick
- }
- if ($chan(0)) && ($readini(AwaySettings.ini,Config,MsgChans) == on) && (!%Except.NoAwayMsg) {
- var %Chan = 1, %TotalChans = $chan(0)
- while (%chan <= %TotalChans) {
- if (!$istok(%Except.NoMsgChans,$chan(%chan),32)) describe $chan(%chan) 13is now away $iif(%Away.Reason,11-7 %Away.Reason) $+ $iif(%Away.leavetime,11-13 Left at %Away.Leavetime)
- inc %chan
- }
- }
- if ($readini(AwaySettings.ini,Config,MsgQueries) == on) && (!%Except.NoAwayMsg) {
- qme is now away $iif(%Away.Reason,- %Away.Reason) $iif(%Away.leavetime,- Left at %Away.Leavetime)
- }
- !away Away: $iif(%Away.Reason,- %Away.Reason) $iif(%Away.leavetime,- Left at %Away.Leavetime)
- }
- inc %x
- }
- }
- alias back {
- var %x = 1, %connections = $scon(0)
- while (%x <= %connections) {
- scon %x
- if ($status == connected) {
- unset %Except.*
- if ($readini(AwaySettings.ini,Exceptions,$network)) {
- var %Except.info = $v1
- var %Except.Scope = $gettok(%Except.info,1,126)
- var %Except.Options = $gettok(%Except.info,2,126)
- if (%Except.Scope == 2) && ($mid(%Except.Options,2,1) == 1) var %Except.NoMsgChans = $gettok(%Except.Info,3-,126)
- if (%Except.Scope == 1) && ($left(%Except.Options,1) == 1) var %Except.NoNickChange = 1
- if (%Except.Scope == 1) && ($mid(%Except.Options,2,1) == 1) var %Except.NoAwayMsg = 1
- }
- if (!%Except.NoNickChange) && ($($+(%,Away.Oldnick.,$network),2)) nick $ifmatch
- ; ----- Cycle Connections to change nick/send msg
- if ($chan(0)) && ($readini(AwaySettings.ini,Config,MsgChans) == on) && (!%Except.NoAwayMsg) {
- var %Chan = 1, %TotalChans = $chan(0)
- while (%chan <= %TotalChans) {
- if (!$istok(%Except.NoMsgChans,$chan(%chan),32)) describe $chan(%chan) 13has returned from $iif(%away.Reason,11-7 %Away.Reason) $+ $iif(%Away.Leavetime,11-13 Left at %Away.Leavetime) $iif($Away.GoneFor,11-14 Gone for $Away.GoneFor)
- inc %chan
- }
- }
- if ($readini(AwaySettings.ini,Config,MsgQueries) == on) && (!%Except.NoAwayMsg) {
- qme is now away $iif(%Away.Reason,- %Away.Reason) $iif(%Away.leavetime,- Left at %Away.Leavetime)
- }
- !away
- }
- inc %x
- }
- .disable #away
- unset %away.*
- if ($hget(Away.PM.Responses)) || ($hget(Away.Highlight.Responses)) hfree -w Away.*.Responses
- if ($readini(AwaySettings.ini,Config,AutoAway) == on) .timerAway.IdleCheck -o 0 30 Away.IdleCheck
- }
- ; ##############################################
- ; # Other Aliases #
- ; ##############################################
- alias -l Away.Gonefor {
- if ($readini(AwaySettings.ini,Config,TimeAway) == on) {
- var %TimeAwayFormat = $readini(AwaySettings.ini,Config,TimeAwayFormat)
- if (%Away.LeftAt) {
- var %duration = $duration($calc($ctime - %Away.LeftAt),%TimeAwayFormat)
- if (%TimeAwayFormat == Short) return $Short.Duration(%duration)
- elseif (%TimeAwayFormat == medium) return %duration
- elseif (%TimeAwayFormat == long) return $Long.Duration(%duration)
- }
- }
- else return $false
- }
- alias -l Short.Duration return $replacex($1-,secs,s,sec,s,mins,m,min,m,hrs,h,hr,h,days,d,day,d,wks,w,wk,w)
- alias -l Long.Duration return $replacex($1-,sec,second,secs,seconds,min,minute,mins,minutes,hr,hour,hrs,hours,wk,week,wks,weeks)
- alias -l Get.Highlights {
- var %x = 1, %Groups = $ini(mirc.ini,highlight,0)
- while (%x <= %groups) {
- var %Away.Highlights = $addtok(%Away.highlights,$highlight(%x),44)
- inc %x
- }
- return %Away.Highlights
- }
- alias -l Check.For.highlights {
- if (!%Away.Highlights) set %Away.Highlights $readini(AwaySettings.ini,n,Config,Hilights)
- var %x = 1, %highlights = $numtok(%Away.highlights,44)
- while (%x <= %highlights) {
- var %chighlight = $($gettok(%Away.Highlights,%x,44),2)
- if ($istok($1-,%chighlight,32)) return %chighlight
- inc %x
- }
- return $false
- }
- alias -l Away.Logwin {
- if (!$window(@Away.Logs)) window -eknz @Away.Logs
- echo -ti2 @Away.Logs $1-
- }
- alias -l Highlight.Response {
- if (!$hget(Away.highlight.Responses,$+($1,.,$2))) {
- scid $1 .notice $2 I am currently away $iif(%Away.Reason,- %Away.Reason) $iif(%Away.LeaveTime,- Left at %Away.LeaveTime) $iif($away.gonefor,- Gone for $away.gonefor) - One time response to highlight
- hadd -m Away.Highlight.Responses $+($1,.,$2) 1
- }
- }
- alias -l Private.Message.Response {
- if (!$hget(Away.PM.Responses,$+($1,.,$2))) {
- scid $1 .notice $2 I am currently away $iif(%Away.Reason,- %Away.Reason) $iif(%Away.LeaveTime,- Left at %Away.LeaveTime) $iif($away.gonefor,- Gone for $away.gonefor) - One time response to Private Message
- hadd -m Away.PM.Responses $+($1,.,$2) 1
- }
- }
- alias -l Away.IdleCheck {
- var %x = 1, %networks = $scon(0)
- var %AutoAwayTime = $readini(AwaySettings.ini,Config,AutoAwayTime)
- while (%x <= %networks) {
- scon %x {
- if ($status == Connected) && ($idle < %AutoAwayTime) var %Idle = off
- }
- inc %x
- }
- if (%idle != off) away Auto.Idle.Away
- }
- alias Away.Config dialog $iif($dialog(Away),-v,-m) Away Away
- ; ##############################################
- ; # Logging and hilight resposes #
- ; ##############################################
- #away off
- ;Hilight responses
- on *:text:*:#: {
- if (!$Check.For.highlights($1-)) && (!$istok($1-,$me,32)) && (!$istok($1-,$($+(%,Away.Oldnick.,$network),2),32)) return
- else {
- Away.Logwin 4[10CHANNEL MESSAGE4] $+(4[10,$iif($scon(0) > 1,$+($network,12/10)),$chan,12/10,$nick,4]) $1-
- if ($readini(AwaySettings.ini,Exceptions,$network)) {
- var -s %Except.info = $v1
- var -s %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126)
- if (%Except.Scope == 2) && ($mid(%Except.Options,3,1) == 1) var %Except.NoHilight = $gettok(%Except.Info,3-,126)
- elseif (%Except.Scope == 1) && ($mid(%Except.Options,3,1) == 1) return
- }
- if (!$istok(%Except.NoHilight,$chan,32)) && ($readini(AwaySettings.ini,Config,RespondHilights) == on) Highlight.Response $cid $nick
- }
- }
- on *:action:*:#: {
- if (!$check.for.highlights($1-)) && (!$istok($1-,$me,32)) && (!$istok($1-,$($+(%,Away.Oldnick.,$network),2),32)) return
- else {
- Away.Logwin 4[10CHANNEL 10ACTION4] $+(4[10,$iif($scon(0) > 1,$+($network,12/10)),$chan,12/10,$nick,4]) * $nick $1-
- if ($readini(AwaySettings.ini,Exceptions,$network)) {
- var %Except.info = $v1
- var %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126)
- if (%Except.Scope == 2) && ($mid(%Except.Options,3,1) == 1) var %Except.NoHilight = $gettok(%Except.Info,3-,126)
- elseif (%Except.Scope == 1) && ($mid(%Except.Options,3,1) == 1) return
- }
- if (!$istok(%Except.NoHilight,$chan,32)) && ($readini(AwaySettings.ini,Config,RespondHilights) == on) Highlight.Response $cid $nick
- }
- }
- ; Private notice response
- on *:notice:*:?: {
- if (*serv !iswm $nick) {
- Away.Logwin 4[10PRIVATE NOTICE4] $+(4[10,$iif($scon(0) > 1,$+($network,12/10)),Private,12/10,$nick,4]) $1-
- if ($readini(AwaySettings.ini,Exceptions,$network)) {
- var %Except.info = $v1
- var %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126)
- if (%Except.Scope == 1) && ($right(%Except.Options,1) == 1) return
- }
- if ($readini(AwaySettings.ini,Config,RespondNotice) == on) Private.Message.Response $cid $nick
- }
- }
- ;PM responses
- on *:text:*:?: {
- if ($readini(AwaySettings.ini,Config,RespondPM) == on) && (*serv !iswm $nick) {
- if ($readini(AwaySettings.ini,Exceptions,$network)) {
- var %Except.info = $v1
- var %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126)
- if (%Except.Scope == 2) && ($mid(%Except.Options,3,1) == 1) var %Except.NoHilight = $gettok(%Except.Info,3-,126)
- elseif (%Except.Scope == 1) && ($right(%Except.Options,1) == 1) return
- }
- Private.Message.Response $cid $nick
- }
- }
- ;Return from away on input if set
- on *:input:#: {
- if ($left($1,1) != $readini(mirc.ini,text,commandchar)) {
- if ($readini(AwaySettings.ini,Config,ARChannelMessage) == on) back
- }
- }
- on *:input:?: {
- if ($left($1,1) != $readini(mirc.ini,text,commandchar)) {
- if ($readini(AwaySettings.ini,Config,ARPrivateMessage) == on) back
- }
- }
- #away end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement