Login script..
Posted by w.e
Monday, March 28, 2005
Description: no point 2 it?


on *:load: {
set %lgn.trigger .
}
dialog login {
  title "Login Script :: w.e"
  size -1 -1 170 126
  option dbu
  tab "Main", 1, 0 0 167 102
  box "Users", 8, 4 10 90 88, tab 1
  list 9, 6 16 68 78, tab 1 size
  list 10, 74 16 18 78, tab 1 size
  box "Add", 11, 96 10 68 36, tab 1
  box "Address", 12, 100 16 44 16, tab 1
  box "Level", 13, 144 16 18 16, tab 1
  edit "", 14, 102 22 40 8, tab 1 autohs autovs
  edit "", 15, 148 22 10 8, tab 1
  button "Add", 16, 100 34 62 10, tab 1
  box "Change", 17, 96 60 68 36, tab 1
  box "Username", 18, 100 66 44 16, tab 1
  edit "", 19, 102 72 40 8, tab 1 autohs autovs
  box "Level", 21, 142 66 18 16, tab 1
  button "Change", 22, 100 84 62 10, tab 1
  edit "", 20, 146 72 10 8, tab 1 autohs autovs
  text "Levels 1-4", 2, 96 47 20 6, tab 1
  text All passwords are "changeme", 3, 96 54 67 6, tab 1
  button "Save", 6, 0 104 168 10
  button "Done", 7, 0 114 168 10, ok cancel
}
on *:dialog:login:init:0: {
  usr.dialog
}
on *:dialog:login:sclick:16: {
  write users.txt $did(login,14)
  writeini login.usr access $did(login,14) $did(login,15)
  writeini login.usr login $did(login,14) changeme
  usr.dialog
}
on *:dialog:login:sclick:22: {
  writeini login.usr access $did(login,19) $did(login,20)
  usr.dialog
}
on *:dialog:login:sclick:9: {
  did -ra login 19 $did(login,9).seltext
}
alias usr.dialog {
  did -r login  9
  did -r login 10
  var %x 1
  while (%x <= $lines(users.txt)) {
    did -a login  9 $read(users.txt,%x)
    did -a login 10 $readini(login.usr,access,$read(users.txt,%x))
    inc %x
  }
}
menu channel,menubar,query,status,nicklist {
  Login v. $lgn.version
  .Configure:dialog -m login login
}
alias lgn.version {
  return 1.0
}
on *:text:.login*:#: {
  if ($readini(login.usr,ban,$address($nick,2)) == 1) {
    notice $nick You are ban from using this. Please ask me to unban you.
    halt
  }
  if ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    notice $nick You are already logged in. Type " $+ %lgn.trigger $+ commands $+ " for more options.
    halt
  }
  if (!$2) {
    notice $nick Please supply your password. If you have forgotten your password type " $+ %lgn.trigger $+ recievepass $address($nick,2) $+ "
    halt
  }
  if ($2 == $readini(login.usr,login,$address($nick,2))) {
    notice $nick You are now logged in, type %lgn.trigger $+ commands for more options.
    writeini login.usr loggedin $address($nick,2) 1
    set %usr.llogin The last login was by: $nick ( $+ $address($nick,2) $+ ) at $date(h:nn) EST
    halt
  }
  if ($2 != $readini(login.usr,login,$address($nick,2))) {
    notice $nick Invalid password, to recieve your password type " $+ %lgn.trigger $+ recievepass $address($nick,2) $+ "
    halt
  }
  else {
    notice $nick You are not registered. Please type " $+ %lgn.trigger $+ register
    halt  
  }
}
on *:text:$(%lgn.trigger $+ register):#: {
  unset %usr.thing
  var %x 1
  while (%x <= $lines(users.txt)) {
    if ($address($nick,2) != $read(users.txt,%x)) {
      inc %usr.thing
      inc %x
    }
    else {
      inc %x
    }
  }
  if (%usr.thing == $lines(users.txt)) {
    createuser
  }
  if (!$lines(users.txt)) {
    createuser
  }
  else {
    notice $nick You already registered.
  }
}
alias createuser {
  var %pass $rand(1,9) $+ $rand(A,Z) $+ $rand(1,9) $+ $rand(a,z) $+ $rand(1,9)
  writeini login.usr login $address($nick,2) %pass
  notice $nick Please type " $+ %lgn.trigger $+ login %pass $+ "
  writeini login.usr access $address($nick,2) 1
  write users.txt $address($nick,2)
}
on *:text:$(%lgn.trigger $+ lastlogin):#: {
  if ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    notice $nick %usr.llogin
  }
  else {
    notice $nick Please login. ( $+ %lgn.trigger $+ login <pass>)
  }
}
on *:text:$(%lgn.trigger $+ newpass*):#: {
  if ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    if ($1- == $1 $2 $3 $4) {
      if ($2 == $readini(login.usr,login,$address($nick,2))) {
        if ($3 == $4) {
          notice $nick Changed password successfully. ( $+ $4 $+ )
          writeini login.usr login $address($nick,2) $4
          halt
        }
        else {
          notice $nick New password stated incorrect on second followup.
          halt
        }
      }
      else {
        notice $nick Incorrect current password.
        halt
      }
    }
    else {
      notice $nick Incorrect format. ( $+ %lgn.trigger $+ newpass <old> <new> <new> $+ )
    }
  }
  else {
    notice $nick You are not logged in.
  }
}
on *:text:$(%lgn.trigger $+ logout):#: {
  if ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    writeini login.usr loggedin $address($nick,2) 0
    notice $nick You are now logged out.
  }
  else {
    notice $nick Login first.
  }
}
on *:text:$(%lgn.trigger $+ commands):#: {
  if ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    if ($readini(login.usr,access,$address($nick,2)) == 1) {
      notice $nick Level 1 access commands: %lgn.trigger $+ commands %lgn.trigger $+ lastlogin %lgn.trigger $+ newpass
    }
    if ($readini(login.usr,access,$address($nick,2)) == 2) {
      notice $nick Level 2 access commands: %lgn.trigger $+ commands %lgn.trigger $+ lastlogin %lgn.trigger $+ newpass %lgn.trigger $+ timeban %lgn.trigger $+ unban %lgn.trigger $+ users
    }
    if ($readini(login.usr,access,$address($nick,2)) == 3) {
      notice $nick Level 3 access commands: %lgn.trigger $+ commands %lgn.trigger $+ lastlogin %lgn.trigger $+ newpass %lgn.trigger $+ timeban %lgn.trigger $+ unban %lgn.trigger $+ users %lgn.trigger $+ channels %lgn.trigger $+ join %lgn.trigger $+ part %lgn.trigger $+ quit %lgn.trigger $+ reconnect
    }
    if ($readini(login.usr,access,$address($nick,2)) == 4) {
      notice $nick Level 4 access commands: %lgn.trigger $+ commands %lgn.trigger $+ lastlogin %lgn.trigger $+ newpass %lgn.trigger $+ timeban %lgn.trigger $+ unban %lgn.trigger $+ users %lgn.trigger $+ channels %lgn.trigger $+ join %lgn.trigger $+ part %lgn.trigger $+ quit %lgn.trigger $+ reconnect %lgn.trigger $+ changeaccess
    }
  }
  else {
    notice $nick Login first.
  }
}
on *:text:$(%lgn.trigger $+ timeban*):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 2) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    if ($3 >= 1199) {
      notice $nick That is to long. Please shorten the seconds.
    }
    else {
      write bans.txt $2
      writeini login.usr ban $2 1
      writeini login.usr loggedin $2 0
      timerban $+ $2 1 $3 unban $2
      notice $nick Banned $2 for $3 seconds.
    }
  }
  if ($readini(login.usr,access,$address($nick,2)) == 3) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    if ($3 >= 1199) {
      notice $nick That is to long. Please shorten the seconds.
    }
    else {
      write bans.txt $2
      writeini login.usr ban $2 1
      writeini login.usr loggedin $2 0
      timerban $+ $2 1 $3 unban $2
      notice $nick Banned $2 for $3 seconds.
    }
  }
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    if ($3 >= 1199) {
      notice $nick That is to long. Please shorten the seconds.
    }
    else {
      write bans.txt $2
      writeini login.usr ban $2 1
      writeini login.usr loggedin $2 0
      timerban $+ $2 1 $3 unban $2
      notice $nick Banned $2 for $3 seconds.
    }
    halt
  }
  else {
    notice $nick Not level 2-4 or not logged in.
  }
}
alias unban {
  writeini login.usr ban $1 0
  write -d bans.txt $1
}
on *:text:$(%lgn.trigger $+ users):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 2) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    notice $nick Getting users...
    var %x 1
    while (%x <= $lines(users.txt)) {
      notice $nick $read(users.txt,%x)
      inc %x
    }
    halt
  }
  if ($readini(login.usr,access,$address($nick,2)) == 3) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    notice $nick Getting users...
    var %x 1
    while (%x <= $lines(users.txt)) {
      notice $nick $read(users.txt,%x)
      inc %x
    }
    halt
  }
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    notice $nick Getting users...
    var %x 1
    while (%x <= $lines(users.txt)) {
      notice $nick $read(users.txt,%x)
      inc %x
    }
    halt
  }
  else {
    notice $nick Not level 2-4 or not logged in.
  }
}
on *:text:$(%lgn.trigger $+ unban*):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 2) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    if (!$readini(login.usr,ban,$2) == 1) {
      notice $nick $2 is not ban. | halt
    }
    else {
      unban $2
      notice $nick $2 was unban.
      halt
    }
  }
  if ($readini(login.usr,access,$address($nick,2)) == 3) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    if (!$readini(login.usr,ban,$2) == 1) {
      notice $nick $2 is not ban. | halt
    }
    else {
      unban $2
      notice $nick $2 was unban.
      halt
    }
  }
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    if (!$readini(login.usr,ban,$2) == 1) {
      notice $nick $2 is not ban. | halt
    }
    else {
      unban $2
      notice $nick $2 was unban.
      halt
    }
  }
  else {
    notice $nick Not level 2-4 or not logged in.
  }
}
on *:text:$(%lgn.trigger $+ join*):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 3) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    join $2 |  notice $nick I have joined $2 $+ . | halt
  }
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
  join $2 | notice $nick I have joined $2 $+ . | halt }
  else {
    notice $nick Login or get some access.
  }
}
on *:text:$(%lgn.trigger $+ part*):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 3) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    part $2 |  notice $nick I have parted $2 $+ . | halt
  }
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    part $2 | notice $nick I have parted $2 $+ . | halt
  }
  else {
    notice $nick Login or get some access.
  }
}
on *:text:$(%lgn.trigger $+ quit*):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 3) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    var %usr.server $server(3)
    notice $nick Im quiting. | quit $nick $+ : $2 | server | halt
  }
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    var %usr.server $server(3)
    notice $nick Im quiting. | quit $nick $+ : $2 | server | halt
  }
  else {
    notice $nick Login or get some access.
  }
}
on *:text:$(%lgn.trigger $+ reconnect*):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 3) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    var %usr.server $server(3)
    notice $nick I am restarting. | quit $nick $+ : $2 | server | halt
  }
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    var %usr.server $server(3)
    notice $nick I am restarting. | quit $nick $+ : $2 | server | halt
  }
  else {
    notice $nick Login or get some access.
  }
}
on *:text:$(%lgn.trigger $+ channels*):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 3) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    var %x 1
    notice $nick Getting Channels...
    while (%x <= $chan(0)) {
      notice $nick $chan(%x)
      inc %x
    }
    halt
  }
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    var %x 1
    notice $nick Getting Channels.
    while (%x <= $chan(0)) {
      notice $nick $chan(%x)
      inc %x
    }
    halt
  }
  else {
    notice $nick Login or get some access.
  }
}
on *:text:$(%lgn.trigger $+ bans*):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 3) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    var %x 1
    notice $nick Getting bans...
    while (%x <= $lines(bans.txt)) {
      notice $nick $read(bans.txt,%x)
      inc %x
    }
    halt
  }
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    var %x 1
    notice $nick Getting bans...
    while (%x <= $lines(bans.txt)) {
      notice $nick $read(bans.txt,%x)
      inc %x
    }
    halt
  }
  if ($readini(login.usr,access,$address($nick,2)) == 2) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    var %x 1
    notice $nick Getting bans...
    while (%x <= $lines(bans.txt)) {
      notice $nick $read(bans.txt,%x)
      inc %x
    }
    halt
  }
  else {
    notice $nick Login or get some access.
  }
}
on *:text:$(%lgn.trigger $+ recievepass*):#: {
  var %x 1
  while (%x <= $lines(users.txt)) {
    if ($2 != $read(users.txt,%x)) { halt }
    elseif ($2 == $read(users.txt,%x)) {
      notice $nick Your password is $readini(login.usr,login,$address($nick,2)) $+ . You may now log in.
      inc %x
    }
    else {
      notice $nick You are not registered.
      inc %x
    }
  }
}
on *:text:$(%lgn.trigger $+ changeaccess):#: {
  if ($readini(login.usr,access,$address($nick,2)) == 4) && ($readini(login.usr,loggedin,$address($nick,2)) == 1) {
    if ($2) {
      if ($3) {
        writeini login.usr access $2 $3
        notice $nick Changed $2 $+ 's access to $3 $+ .
      }
      else {
        notice $nick Please supply a level.
      }
    }
    else {
      notice $nick Please supply an name and level.
    }
  }
  else {
    notice $nick please login or get some access.
  }
}
Submit a comment
Oops! You need to login or register before you can post a comment!

ebaum's world