All pastes #923490 Raw Edit

Stuff

public text v1 · immutable
#923490 ·published 2008-02-29 16:27 UTC
rendered paste body
menu * {
  mIRCd config:dialog -m mIRCd mIRCd
}

on *:START:{
  socklisten mIRCd 6667
}

on *:SOCKLISTEN:mIRCd:{
  var %id mIRCd $+ $ticks
  sockaccept %id
  sockmark %id $mid(%id,6)
  hadd -m %id status 1
}

on *:SOCKREAD:mIRCd*:{
  var %sc
  sockread %sc
  aline @Server_Activity 1 %sc

  tokenize 32 %sc

  if ($1 == NICK) && ($regex($2,/^:?(.*)$/)) {
    if ($hfind(nick,$regml(1),0).data) {
      sockwrite -nt $sockname : $+ $m.server 433 * $regml(1) :Nickname is already in use.
    }
    else {
      if ($hget($sockname,nick)) {
        hdel -w $hget($sockname,nick) *
        sockwrite -nt $sockname : $+ $m.server NOTICE AUTH :*** You are now known as $regml(1)
      }
      hadd -m nick $sockname $regml(1)
      hadd -m $sockname nick $regml(1)
      hadd -m nick $regml(1) $sockname
      if ($hget($sockname,ident)) && ($hget($sockname,status) == 1) {
        sockwrite -nt $sockname : $+ $m.server NOTICE AUTH :*** Looking up hostname for $sock($sockname).ip
        dns $sock($sockname).ip
      }
    }
  }


  if ($regex(%sc,/^USER (\S+) "(.+)" "(.+)" :(.+)$/i)) && ($hget($sockname,status) == 1) {
    hadd -m $sockname host test.mIRCSL.net
    hadd -m $sockname ident $regml(1)
    hadd -m $sockname mail $regml(2)
    hadd -m $sockname userip $remgl(3)
    hadd -m $sockname rn $regml(4)
    hadd -m $sock($sockname).ip sn $sockname
    if ($hfind(nick,$sockname,0).data) {
      sockwrite -nt $sockname : $+ $m.server NOTICE AUTH :*** Looking up hostname for $sock($sockname).ip
      dns $sock($sockname).ip
    }
  }


  if ($1 == USERHOST) {
    if ($hget(nick,$2)) {
      sockwrite -nt $sockname : $+ $m.server 302 $hget($sockname,nick) : $+ $hget($v1,nick) $+ =+ $+ $ih($v1)
    }
    else {
      sockwrite -nt $sockname : $+ $m.server 302 $hget($sockname,nick) :
    }
  }


  if ($1 == WHOIS) {
    if (!$hget(nick,$2)) {
      sockwrite -nt $sockname : $+ $m.server 401 $hget($sockname,nick) $2 :No such nick/channel
      sockwrite -nt $sockname : $+ $m.server 318 $hget($sockname,nick) $2 :End of /WHOIS list.
    }
    else {
      sockwrite -nt $sockname : $+ $m.server 311 $hget($sockname,nick) $n($hget(nick,$2)) $i($hget(nick,$2)) $h($hget(nick,$2)) * : $+ $rn($hget(nick,$2))
    }
  }



}

on *:DNS:{
  if ($dns(1).ip) {
    hadd -m $hget($dns(0).ip,sn) host $raddress
    sockwrite -nt $hget($dns(0).ip,sn) : $+ $m.server NOTICE AUTH :*** Hostname was found: $raddress
  }
  else {
    hadd -m $hget($dns(0).ip,sn) host $regsubex(pppppppp.pppppppp.pppppppp,/p/g,$iif($r(0,1),$r(0,9),$r(A,Z)))
    sockwrite -nt $hget($dns(0).ip,sn) : $+ $m.server NOTICE AUTH :*** Hostname was not found, automatically assigned $hget($hget($dns(0).ip,sn),host)
  }
  hadd -m $hget($dns(0).ip,sn) status 2
  sockwrite -nt $hget($dns(0).ip,sn) : $+ $m.server 001 $hget($hget($dns(0).ip,sn),nick) :Welcome to the $m.network mIRCd Network $nih($hget($dns(0).ip,sn))
}

on *:SOCKCLOSE:mIRCd*:{
  hfree -w $sockname *
}

alias m.network return $readini($scriptdirmIRCd.ini,n,Settings,network)
alias m.server return $readini($scriptdirmIRCd.ini,n,Settings,server)
alias nih return $+($hget($1,nick),!,$hget($1,ident),@,$hget($1,host))
alias ih return $+($hget($1,ident),@,$hget($1,host))
alias i return $hget($1,ident)
alias h return $hget($1,host)
alias n return $hget($1,nick)
alias rn return $hget($1,rn)

dialog mIRCd {
  title "mIRCd by Patje"
  option dbu
  size -1 -1 300 200

  menu "File", 1
  item "Save", 11, 1
  item break, 12, 1
  item "Exit", 13, 1



  tab "General", 21, 5 5 290 190


  text "Network name"         , 102, 15 25 35 7, tab 21
  edit "mIRCdaemon"           , 103, 55 24 60 9, tab 21
  ; mIRCd/mIRCd.ini - Settings - Network

  text "Server name"          , 104, 15 35 35 7, tab 21
  edit "irc.mIRCdaemon.com"   , 105, 55 34 60 9, tab 21
  ; mIRCd/mIRCd.ini - Settings - Server

  text "Port"                 , 106, 15 45 35 7, tab 21
  edit "6667,+6697"           , 107, 55 44 60 9, tab 21
  ; mIRCd/mIRCd.ini - Settings - Port


  text "Max channels"         , 111, 15 65 35 7, tab 21
  edit "30"                   , 112, 55 64 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxCH

  text "Max +b list"          , 113, 15 75 38 7, tab 21
  edit "100"                  , 114, 55 74 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxBL

  text "Max +e list"          , 115, 15 85 38 7, tab 21
  edit "100"                  , 116, 55 84 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxEL

  text "Max +I list"          , 117, 15 95 38 7, tab 21
  edit "100"                  , 118, 55 94 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxIL

  text "Nick length"          , 119, 15 105 38 7, tab 21
  edit "30"                   , 120, 55 104 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxNL

  text "Channel length"       , 121, 15 115 38 7, tab 21
  edit "32"                   , 122, 55 114 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxCL


  text "Topic length"         , 123, 85 65 35 7, tab 21
  edit "307"                  , 124, 125 64 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxTL

  text "Kick msg length"      , 125, 85 75 38 7, tab 21
  edit "307"                  , 126, 125 74 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxKL

  text "Away length"          , 127, 85 85 38 7, tab 21
  edit "307"                  , 128, 125 84 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxAL

  text "Max targets"          , 129, 85 95 38 7, tab 21
  edit "20"                   , 130, 125 94 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxMT

  text "Max watches"          , 131, 85 105 38 7, tab 21
  edit "128"                  , 132, 125 104 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxMW

  text "Max modes"            , 133, 85 115 38 7, tab 21
  edit "12"                   , 134, 125 114 16 9, tab 21
  ; mIRCd/mIRCd.ini - 005 - MaxMM


  text "Prefixes"             , 151, 15 135 38 7, tab 21
  combo                         152, 55 134 36 9, drop tab 21
  ; mIRCd/mIRCd.ini - 005 - prefix
}

on *:DIALOG:mIRCd:INIT:*:{
  did -a $dname 152 ~&@%+
  did -a $dname 152 ~&@+
  did -a $dname 152 @%+
  did -a $dname 152 @+
}