rendered paste bodyon *:LOAD:*:{ /echo -a Friendslist By AlternativeNick
echo -a You can type /friends, right click > friendslist, F8, or use the 'Commands' Menu to open the friendslist }
menu status,channel,menubar {
Friends List
.Open:/friends
.Edit Profile:/dialog -md cpro cpro
}
menu query,nicklist {
Friends List
.Add to Friends:{ if ($read(friends.txt,s, $1) == $null) {
if ($notify($1) == $null) {
/write friends.txt $1 $1
/notify on
/notify $1
}
else {
if ($notify($1).ison == $true) {
/write friends.txt $1 $1
/notify on
}
else {
/write friends.txt $1 $1
/notify on
}
}
}
}
.Open FriendsList:/friends
.Edit Profile:/dialog -md cpro cpro
}
alias F8 {
/friends
}
alias noton {
dialog -mo noton noton
/.timer 1 2 dialog -x noton
halt
}
dialog noton {
title "User Not Online"
size -1 -1 75 25
option type dbu
text "This user is not online" 1, 14 2 60 10
button "OK" 2, 20 10 37 12
}
on *:DIALOG:noton:sclick:2:{
dialog -x noton
}
alias friends {
if ($dialog(list) == $null) {
dialog -md list list
}
else { dialog -iev list list }
}
dialog list {
title $me
size -1 -1 86 144
option dbu
text "ONLINE USERS",6, 2 1 50 10
list 1, 2 8 80 50, size
list 7, 2 64 80 47, size
text "OFFLINE USERS",8, 2 58 50 6
button "Add", 2, 2 114 37 12
button "Remove", 3, 44 114 37 12
button "Info", 5, 2 128 37 12
button "Close", 4, 44 128 37 12
}
on *:DIALOG:list:sclick:2:{
/dialog -am adn adn
}
on *:dialog:list:sclick:5:{ if (%nick != $null) {
info }
}
on *:DIALOG:list:sclick:4:{
if ($?!="Are you sure you want to exit friendslist?" == $true) { dialog -x list }
else { dialog -v list }
}
on *:DIALOG:list:sclick:1:{
set %nick $did(list,1).seltext
did -e $dname 5
set %did $did
/.enable #silenceraws
whois %nick
/.timer -h 1 500 /.disable #silenceraws
/unset %wchans
}
#silenceraws off
raw 318:*:halt
raw 301:*:halt
raw 310:*:halt
raw 311:*:halt
raw 312:*:halt
raw 313:*:halt
raw 317:*:halt
raw 319:*:{ set %wchans $remove($3-,+,%,@) | halt }
raw 431:*:halt
raw 378:*:halt
raw 307:*:halt
raw 401:*:noton
#silenceraws end
on *:DIALOG:list:dclick:1:{
set %nick $did(list,1).seltext
/.query %nick $$?="What would you like to say?"
dialog -v list
did -e $dname 5
}
on *:DIALOG:list:sclick:7:{
set %nick $did(list,7).seltext
did -b $dname 5
set %did $did
}
on *:DIALOG:list:sclick:3:{
/set %nick# $didwm(list,%did,%nick)
/did -d $dname %did %nick#
/write -ds $+ %nick friends.txt
/notify -r %nick
}
on *:DIALOG:list:init:*:{
var %i = 0
while (%i < $lines(friends.txt)) {
inc %i 1
if ($notify($gettok($read(friends.txt,%i),2,32)).ison == $true) {
/did -a $dname 1 $gettok($read(friends.txt,%i),2,32)
}
elseif ($notify($gettok($read(friends.txt,%i),2,32)).ison == $false) {
/did -a $dname 7 $gettok($read(friends.txt,%i),2,32)
}
}
}
on ^*:NOTIFY:{
var %i = 0
while (%i < $lines(friends.txt)) {
inc %i 1
if ($nick isin $gettok($read(friends.txt,%i),2,32)) {
set %snick $gettok($read(friends.txt,%i),2,32))
if ($dialog(list) != $null) {
/set %snick# $didwm(list,7,%snick)
/.did -d list 7 %snick#
/.did -a list 1 %snick
}
/unset %snick#
/dialog -ma son son
halt
}
}
}
on ^*:UNOTIFY:{
var %i = 0
while (%i < $lines(friends.txt)) {
inc %i 1
if ($nick isin $gettok($read(friends.txt,%i),2,32)) {
set %snick $gettok($read(friends.txt,%i),2,32))
if ($dialog(list) != $null) {
/set %snick# $didwm(list,1,%snick)
/did -d list 1 %snick#
/did -a list 7 %snick
}
/unset %snick#
/dialog -ma soff soff
halt
}
}
}
dialog soff {
title "Sign Off"
size -1 -1 74 29
option dbu
text %snick Has Signed Off, 1, 5 4 58 24
button "CLOSE", 2, 27 18 24 10
}
on *:DIALOG:soff:init:*:{
unset %snick
}
on *:DIALOG:soff:sclick:2:{
dialog -x soff
}
dialog son {
title "Sign On"
size -1 -1 74 29
option dbu
text %snick Has Signed On, 1, 5 4 58 24
button "CLOSE", 2, 27 18 24 10
}
on *:DIALOG:son:init:*:{
unset %snick
}
on *:DIALOG:son:sclick:2:{
dialog -x son
}
;Add A Nick to FriendsList
dialog adn {
title ""
size -1 -1 57 36
option dbu
text "Add Nickname", 1, 10 3 38 8
edit "", 2, 4 12 50 10
button "OK", 3, 4 24 20 9
button "Cancel", 4, 28 24 25 9, cancel
}
on *:DIALOG:adn:sclick:3:{
if ($did(adn,2).edited == $true) && ($read(friends.txt,s, $did(adn,2).text) == $null) {
if ($notify($did(adn,2).text) == $null) {
/did -a list 7 $did(adn,2).text
/write friends.txt $did(adn,2).text $did(adn,2).text
/notify on
/notify $did(adn,2).text
}
else {
if ($notify($did(adn,2).text).ison == $true) {
/did -a list 1 $did(adn,2).text
/write friends.txt $did(adn,2).text $did(adn,2).text
/notify on
}
else {
/did -a list 1 $did(adn,2).text
/write friends.txt $did(adn,2).text $did(adn,2).text
/notify on
}
}
dialog -x adn
}
}
;Info section
alias info {
dialog -am inf inf
}
dialog inf {
title %nick Info
size -1 -1 95 51
option dbu
list 1, 1 1 50 48, size
button "Join Channel", 2, 55 1 37 8
button "PM", 3, 55 11 37 8
button "Notice", 4, 55 21 37 8
button "Whois", 5, 55 31 37 8
button "Close", 6, 55 41 37 8, cancel
}
on *:DIALOG:inf:init:*:{
var %i = 0
while ( $numtok(%wchans,32) > %i) {
inc %i 1
/did -a $dname 1 $gettok(%wchans,%i,32)
}
unset %wchans
}
on *:DIALOG:inf:sclick:1:{
set %tempchan $did(inf,1).seltext
}
on *:DIALOG:inf:sclick:2:{ /join %tempchan
unset %tempchan
}
on *:DIALOG:inf:sclick:3:{ /.query %nick $??="What would you like to say?" }
on *:DIALOG:inf:sclick:4:{ /.notice %nick $??="What would you like to say?" }
on *:DIALOG:inf:sclick:5:{ /whois %nick }
on *:DIALOG:list:close:*:{ unset %nick }
alias getpro {
.enable #getpro
.notice $1 PROFILE
.timer 1 5 .disable #getpro
}
#getpro off
on ^*:NOTICE:Yes:*:{
/dialog -ma pro pro
halt
}
on ^*:NOTICE:Nick*:*:{
/did -r pro 2
/did -a pro 2 $2-
halt
}
on ^*:NOTICE:Age*:*:{
/did -r pro 10
/did -a pro 10 $2-
halt
}
on ^*:NOTICE:Name*:*:{
/did -r pro 13
/did -a pro 13 $2-
halt
}
on ^*:NOTICE:Chan*:*:{
/did -r pro 14
/did -a pro 14 $2-
halt
}
on ^*:NOTICE:url*:*:{
/did -r pro 12
/did -a pro 12 $2-
halt
}
on ^*:NOTICE:Email*:*:{
/did -r pro 11
/did -a pro 11 $2-
halt
}
on ^*:NOTICE:quote*:*:{
/did -r pro 17
/did -a pro 17 $2-
halt
}
on ^*:NOTICE:end*:*:{
.disable #getpro
halt
}
#getpro end
dialog pro {
title "View Profile"
size -1 -1 159 145
option dbu
text "Nick-", 1, 7 5 30 8
edit "", 2, 69 5 85 10
text "Age-", 3, 7 17 22 8
text "Name-", 4, 7 29 25 8
text "Favorite Channel-", 5, 7 41 50 8
text "Website-", 6, 7 53 25 8
text "Email-", 7, 7 65 25 8
edit "", 10, 69 17 85 10a
edit "", 11, 69 65 85 10
edit "", 12, 69 53 85 10
edit "", 13, 69 29 85 10
edit "", 14, 69 41 85 10
text "---------------------------------------------------------------------------------------", 15, 0 79 159 8
text "Quote-", 16, 3 91 25 8
edit "", 17, 69 91 85 49, multi return autovs
button "Close", 18, 11 127 37 12, cancel
}
dialog Cpro {
title "Create Profile"
size -1 -1 159 157
option dbu
text "Create your profile for AlternativeNick's Friends System.", 8, 9 6 135 8
text "---------------------------------------------------------------------------------------", 15, 2 102 159 8
text "Quote-", 16, 5 114 25 8
text "Nick-", 1, 9 28 30 8
text "Age-", 3, 9 40 22 8
text "Name-", 4, 9 52 25 8
text "Favorite Channel-", 5, 9 64 50 8
text "Website-", 6, 9 76 25 8
text "Email-", 7, 9 88 25 8
edit "", 17, 71 113 85 40
edit "", 2, 70 28 85 10
text "WARNING: Other users can see this profile", 9, 9 14 103 8
edit "", 10, 70 40 85 10
edit "", 13, 70 52 85 10
edit "", 14, 70 64 85 10
edit "", 11, 70 88 85 10
edit "", 12, 70 76 85 10
button "SAVE",18, 8 140 25 12
button "CANCEL",19, 34 140 25 12
}
on *:DIALOG:cpro:init:*:{
/did -ra $dname 2 $read(pro.txt,s,nick)
/did -ra $dname 10 $read(pro.txt,s,age)
/did -ra $dname 11 $read(pro.txt,s,email)
/did -ra $dname 12 $read(pro.txt,s,url)
/did -ra $dname 13 $read(pro.txt,s,name)
/did -ra $dname 14 $read(pro.txt,s,chan)
/did -ra $dname 17 $read(pro.txt,s,quote)
}
on *:DIALOG:cpro:sclick:19:{
/dialog -x cpro
}
on *:DIALOG:cpro:sclick:18:{
/write -dsnick pro.txt
/write pro.txt nick $did($dname,2)
/write -dsage pro.txt
/write pro.txt age $did($dname,10)
/write -dsemail pro.txt
/write pro.txt email $did($dname,11)
/write -dsurl pro.txt
/write pro.txt url $did($dname,12)
/write -dsname pro.txt
/write pro.txt name $did($dname,13)
/write -dschan pro.txt
/write pro.txt chan $did($dname,14)
/write -dsquote pro.txt
/write pro.txt quote $did($dname,17)
/write -asquote pro.txt $chr(32)
var %i = 0
while (%i < $did($dname,17).lines) {
inc %i 1
/write -asquote pro.txt $did($dname,17,$calc(%i + 1))
/write -asquote pro.txt $chr(32)
}
dialog -x cpro
}
on ^*:notice:Profile:*:{
.set %pnick $nick
.notice $nick YES
.timer -h 1 500 sendpro
halt
}
alias sendpro {
.notice %pnick NICK $read(pro.txt,s,nick)
.notice %pnick Age $read(pro.txt,s,age)
.notice %pnick name $read(pro.txt,s,name)
.notice %pnick chan $read(pro.txt,s,chan)
.notice %pnick url $read(pro.txt,s,url)
.notice %pnick email $read(pro.txt,s,email)
.notice %pnick quote $read(pro.txt,s,quote)
.notice %pnick end
.unset %pnick
halt
}