All pastes #830027 Raw Edit

Stuff

public text v1 · immutable
#830027 ·published 2007-12-23 18:37 UTC
rendered paste body
; Channel Peak 1.3 by Hjorten.
; Load dialog with /chanpeak
; Read chanpeak.txt for instructions.

dialog HChanPeak {
  title "Channel Peak"
  size -1 -1 110 163
  option dbu
  button "OK", 2, 73 150 37 12, ok
  text "Channel Peak 1.3 by Hjorten", 9, 2 154 69 7, disable
  radio "msg $chan", 13, 3 102 50 7
  radio "describe $chan", 12, 3 95 50 7
  text "New peak response", 10, 3 87 47 7
  edit "", 11, 3 110 105 10, autohs
  text "Current peak response", 14, 3 125 55 7
  edit "", 15, 3 132 105 10, autohs
  text "Channels", 6, 3 43 24 7
  edit "", 5, 2 30 105 10, autohs
  check "Enable/disable peak", 8, 3 10 80 7
  edit "", 7, 2 50 105 10, autohs
  text "Trigger", 4, 3 23 17 7
  box "Basic", 1, 0 1 110 66
  box "Advanced", 3, 0 67 110 82
  check "Only return peak on trigger", 16, 4 75 99 7
}

menu menubar,channel {
  Channel Peak
  .Settings { chanpeak }
  .Unload { unload -rs $chanpeakfilename }
}

alias chanpeakfilename { return $chr(34) $+ $scriptdirchanpeak.mrc $+ $chr(34) }
alias chanpeak { dialog -mrv HChanPeak HChanPeak }

on *:DIALOG:HChanPeak:INIT:*: {
  if (%Peak.Status == On) { did -c $dname 8 }
  if (%Peak.PeakResWay == describe) { did -c $dname 12 | did -u $dname 13 }
  elseif (%Peak.PeakResWay == msg) { did -c $dname 13 | did -u $dname 12 }
  if (%Peak.ROT == On) { did -c $dname 16 }
  did -ra $dname 5 %Peak.Trigger
  did -ra $dname 7 %Peak.Channels
  did -ra $dname 11 %Peak.NewPeak
  did -ra $dname 15 %Peak.CurPeak
}

on *:DIALOG:HChanPeak:EDIT:5: {
  set %Peak.Trigger $did($dname,5).text
}

on *:DIALOG:HChanPeak:EDIT:7: {
  set %Peak.Channels $did($dname,7).text
}

on *:DIALOG:HChanPeak:EDIT:11: {
  set %Peak.NewPeak $did($dname,11).text
}

on *:DIALOG:HChanPeak:EDIT:15: {
  set %Peak.CurPeak $did($dname,15).text
}

on *:DIALOG:HChanPeak:SCLICK:8: {
  if ($did(8).state == 1) { set %Peak.Status On }
  else { set %Peak.Status Off }
}

on *:DIALOG:HChanPeak:SCLICK:12: {
  if ($did(12).state == 1) { set %Peak.PeakResWay describe | did -c $dname 12 | did -u $dname 13 }
}

on *:DIALOG:HChanPeak:SCLICK:13: {
  if ($did(13).state == 1) { set %Peak.PeakResWay msg | did -c $dname 13 | did -u $dname 12 }
}

on *:DIALOG:HChanPeak:SCLICK:16: {
  if ($did(16).state == 1) { set %Peak.ROT On }
  else { set %Peak.ROT Off }
}

; If the script is enabled, the addon will first check if channel has a variable, if not, it creates one.
; Then moving on to check if channel peak has been raised, if this is the case, it will call
; the hsetpeakinfo alias.
on !*:JOIN:%Peak.Channels:{
  if (%Peak.Status == On) {
    if (!%Peak. [ $+ [ $network ] $+ . $+ [ $chan ] ]) {
      hsetpeakinfo
    }
    elseif ($nick($chan,0) > %Peak. [ $+ [ $network ] $+ . $+ [ $chan ] ]) {
      hsetpeakinfo
    }
    else { halt }
  }
  else { halt }
}

; Returns that a new channel peak has been set in the channel and saves this into the variables.
alias hsetpeakinfo {
  if (%Peak.ROT == On) {
    set %Peak. [ $+ [ $network ] $+ . $+ [ $chan ] ] $nick($chan,0)
    set %Peak. [ $+ [ $network ] $+ . $+ [ $chan ] ] $+ .Time $fulldate
    set %Peak. [ $+ [ $network ] $+ . $+ [ $chan ] ] $+ .Nick $nick
  }
  elseif (%Peak.ROT == Off) {
    describe $chan $replace(%Peak.NewPeak,JNick,$nick,CPeak,$nick($chan,0))
    set %Peak. [ $+ [ $network ] $+ . $+ [ $chan ] ] $nick($chan,0)
    set %Peak. [ $+ [ $network ] $+ . $+ [ $chan ] ] $+ .Time $fulldate
    set %Peak. [ $+ [ $network ] $+ . $+ [ $chan ] ] $+ .Nick $nick
  }
}

; If the script is enabled it will trigger only for the special trigger and only in the specifed channels.
; Returns the current channel peak.
on *:TEXT:%Peak.Trigger:%Peak.Channels:{
  if (%Peak.Status == On) {
    msg $chan $replace(%Peak.CurPeak,CPNick,%Peak. [ $+ [ $network ] $+ . $+ [ $chan ] $+ ] .Nick,CurChan,$chan,CPTime,%Peak. [ $+ [ $network ] $+ . $+ [ $chan ] $+ ] .Time,CPeak,%Peak. [ $+ [ $network ] $+ . $+ [ $chan ] ])
  }
  else { halt }
}

on *:LOAD:{
  echo -a Channel Peak has been loaded.
  set %Peak.NewPeak hugs JNick for taking the channel peak up to CPeak people at the same time
  set %Peak.CurPeak CPNick raised channel peak in CurChan on CPTime with CPeak people at the same time
  set %Peak.Trigger !peak
  set %Peak.Channels $chr(35)
  set %Peak.Status On
  set %Peak.PeakResWay describe
  set %Peak.ROT Off
}

on *:UNLOAD:{
  echo -a Channel Peak has been unloaded.
  unset %Peak.*
}