All pastes #268830 Raw Edit

seven

public text v1 · immutable
·published 2006-12-06 01:12 UTC
rendered paste body
alias checkserver {
  if (%servstatus == 0) {
    topicchange 1
    set %servstatus 1
    echo online
    timer.offline off
    sockclose seven
    .timerchecking 1 30 sockopen seven %server.server 3724
  }
  else {
    unset %servstatus
    topicchange 0
    timer.online off
    echo offline
    set %server.status Offline
    sockclose seven
   .timerchecking 1 30 sockopen seven %server.server 3724
  }
}

alias topicchange {
if (%server.topic != yes) { halt }
  set %topic1 $chan(%server.chan).topic
  set %sev1 Server Online
  set %sev2 Server Offline
  if ($1 == 1 && %topic1 != %sev1) {
    topic %server.chan %sev1
  }
  if ($1 == 0 && %topic1 != %sev2) {
    topic %server.chan %sev2
  }
}
 	
on *:LOAD: {
  set %server.server $?="Server IP"
; set %server.topic $?="Change Topic? (Yes/No)"
;  if (%server.topic == Yes) {
    set %server.chan $?="IRC Channel (WITH #)"
;  }
}

on *:START: {
  sockopen seven %server.server 3724
}

on *:sockopen:seven: {
  if ($sockerr) { unset %servstatus
  topicchange 0
  set %server.status Offline
 }
  .timerchecking2 1 30 checkserver
  sockwrite seven 32 test
  set %server.status Online
}

on *:sockwrite:seven: {
  set %servstatus $sock(seven).wserr
  .timerkeepalive 0 60 sockwrite seven 32 test
}

on *:sockclose:seven: {
  unset %servstatus
  timerkeepalive off
  topicchange 0
  set %server.status Offline
  timerchecking off
  timerchecking2 off
  .timerchecking 1 30 sockopen %server.server 3724
}