rendered paste bodydialog CPanel {
title "FreeBot - Advanced Configuration"
size -1 -1 237 204
option dbu
tab "General Settings", 1, 3 1 230 200
box "Nickname", 4, 7 18 132 55, tab 1
text "Nickname", 5, 14 28 50 8, tab 1
text "Alternative Nick", 6, 14 38 50 8, tab 1
text "NickServ Password", 7, 14 48 50 8, tab 1
check "Auto-Identify", 8, 15 59 50 10, tab 1
box "Invitations", 10, 7 73 224 76, tab 1
edit "", 11, 65 27 70 10, tab 1
edit "", 12, 65 37 70 10, tab 1
edit "", 13, 65 47 70 10, tab 1 pass
check "Message On Join", 14, 15 82 50 10, tab 1
text "Message:", 15, 26 92 25 8, tab 1
edit "", 16, 52 91 85 10, tab 1 autohs
check "Message On Part", 17, 15 102 50 10, tab 1
text "Message:", 18, 26 113 25 8, tab 1
edit "", 19, 52 112 85 10, tab 1 autohs
check "Enable Invites", 20, 141 82 45 10, tab 1
box "Connection Settings", 21, 7 152 132 45, tab 1
text "Max Channels:", 22, 152 92 39 8, tab 1
edit "", 23, 192 91 15 10, tab 1 limit 2
text "Server:", 24, 14 162 25 8, tab 1
edit "", 25, 42 161 95 10, tab 1 autohs
check "Connect on Start", 26, 15 172 50 10, tab 1
check "Reconnect on Disconnect", 27, 15 182 75 10, tab 1
box "Triggers", 61, 141 18 90 30, tab 1
text "Private:", 63, 145 27 25 8, tab 1
text "Public:", 68, 145 37 25 8, tab 1
edit "", 69, 171 26 10 10, tab 1 limit 2
edit "", 75, 171 36 10 10, tab 1 limit 2
box "Spam Settings", 76, 141 48 90 25, tab 1
text "Ignore Time:", 77, 145 58 30 8, tab 1
edit "", 78, 179 57 15 10, tab 1
text "Second(s)", 79, 195 58 24 8, tab 1
box "Total Control", 86, 141 152 90 22, tab 1
check "Enable/Disable Entire Bot", 87, 145 160 75 10, tab 1
check "Enable Parting", 99, 141 102 50 10, tab 1
text "Part Command:", 100, 152 113 39 8, tab 1
edit "", 101, 192 112 25 10, tab 1
check "Log Invitations/Part Commands", 102, 15 126 89 10, tab 1
text "Invitable By", 114, 141 128 29 8, tab 1
combo 115, 176 127 38 50, tab 1 size drop
tab "Color Settings", 2
box "Stats", 28, 7 18 90 32, tab 2
text "Base Color:", 29, 10 26 43 8, tab 2
text "Secondary Color:", 30, 10 37 43 8, tab 2
combo 31, 54 25 41 50, tab 2 size drop
combo 32, 54 36 41 50, tab 2 size drop
box "Forums", 33, 7 51 90 32, tab 2
text "Base Color:", 34, 10 59 43 8, tab 2
text "Secondary Color:", 35, 10 70 43 8, tab 2
combo 36, 54 58 41 50, tab 2 size drop
combo 37, 54 69 41 50, tab 2 size drop
box "Prices", 38, 7 85 90 43, tab 2
text "Base Color:", 39, 10 93 43 8, tab 2
text "Secondary Color:", 40, 10 104 43 8, tab 2
text "Support Color:", 41, 10 115 43 8, tab 2
combo 42, 54 92 41 50, tab 2 size drop
combo 43, 54 103 41 50, tab 2 size drop
combo 44, 54 114 41 50, tab 2 size drop
box "News", 45, 102 18 90 32, tab 2
text "Base Color:", 46, 106 26 43 8, tab 2
text "Secondary Color:", 47, 106 37 43 8, tab 2
combo 48, 150 25 41 50, tab 2 size drop
combo 49, 150 36 41 50, tab 2 size drop
box "Ranks", 50, 102 51 90 32, tab 2
text "Base Color:", 51, 106 59 43 8, tab 2
text "Secondary Color:", 52, 106 70 43 8, tab 2
combo 53, 150 58 41 50, tab 2 size drop
combo 54, 150 69 41 50, tab 2 size drop
box "Knowledge Base", 55, 102 85 90 32, tab 2
text "Base Color:", 56, 106 93 43 8, tab 2
text "Secondary Color:", 57, 106 104 43 8, tab 2
combo 58, 150 92 41 50, tab 2 size drop
combo 59, 150 103 41 50, tab 2 size drop
box "General", 167, 102 120 90 53, tab 2
text "Base Color:", 168, 106 128 43 8, tab 2
text "Secondary Color:", 169, 106 139 43 8, tab 2
text "Support Color:", 170, 106 150 43 8, tab 2
text "Backup Color:", 171, 106 161 43 8, tab 2
combo 172, 150 127 40 50, tab 2 size drop
combo 173, 150 138 40 50, tab 2 size drop
combo 174, 150 149 40 50, tab 2 size drop
combo 175, 150 160 40 50, tab 2 size drop
button "Custom Color Configuration", 176, 12 130 80 12, tab 2
tab "Channel Settings", 3
box "Channel List", 60, 106 18 95 130, tab 3
box "Channel Settings", 62, 7 150 194 50, tab 3
list 64, 108 26 90 105, tab 3 size
check "Allow Public Trigger", 65, 10 157 65 10, tab 3
check "Allow Private Trigger", 66, 10 167 65 10, tab 3
button "Add", 70, 110 133 37 12, tab 3
button "Remove", 71, 160 133 37 12, tab 3
check "Blacklisted", 94, 10 177 65 10, tab 3
text "Total Kicks:", 95, 75 178 27 8, tab 3
text "Max Kicks:", 96, 122 178 25 8, tab 3
edit "", 97, 103 177 12 10, tab 3
edit "", 98, 148 177 12 10, tab 3
tab "Personal Scripts", 9
box "Remotes List", 67, 7 18 194 180, tab 9
list 72, 9 26 189 155, tab 9 size
button "Load Script", 73, 62 183 37 12, tab 9
button "Unload Script", 74, 108 183 37 12, tab 9
tab "Stats", 80
box "Stats Display", 81, 7 17 222 38, tab 80
text "Items Till Level:", 82, 14 28 37 8, tab 80
combo 83, 56 27 50 50, tab 80 size drop
text "Items Per Line:", 84, 14 40 37 8, tab 80
combo 85, 56 39 50 50, tab 80 size drop
text "Items Above Level:", 88, 111 28 47 8, tab 80
text "Items Below Level:", 89, 111 40 47 8, tab 80
combo 90, 164 27 50 50, tab 80 size drop
combo 91, 164 39 50 50, tab 80 size drop
box "Skill", 92, 7 56 60 95, tab 80
box "Item/Action Name", 93, 69 56 100 45, tab 80
box "Data/Information", 103, 69 101 100 50, tab 80
list 104, 9 63 55 85, tab 80 sort size
list 105, 71 64 95 34, tab 80 size
text "Exp Given:", 106, 73 110 35 8, tab 80
text "Level Needed:", 107, 73 120 35 8, tab 80
text "Display Name:", 108, 73 130 35 8, tab 80
edit "", 109, 112 109 50 10, tab 80
edit "", 110, 112 119 50 10, tab 80
edit "", 111, 112 129 50 10, tab 80
button "Update", 112, 76 140 37 8, tab 80
button "Undo", 113, 121 140 37 8, tab 80
tab "Updater Settings", 116
box "General Update Settings", 117, 7 18 220 55, tab 116
text "every", 118, 20 36 14 8, tab 116
edit "", 119, 35 35 21 10, tab 116
text "minute(s)", 120, 57 36 25 8, tab 116
check "Inform users before updating", 121, 10 48 80 10, tab 116
text "Inform type", 122, 20 60 29 8, tab 116
combo 123, 54 59 37 50, tab 116 size drop
check "Automatically check for updates", 124, 10 26 90 10, tab 116
button "Check For Update(s)", 149, 166 74 60 12, tab 116
tab "Triggers", 125
box "Trigger List", 126, 7 18 65 88, tab 125
list 127, 9 26 60 65, tab 125 size
box "Trigger Settings", 128, 74 18 155 88, tab 125
text "Trigger", 129, 77 29 17 8, tab 125
edit "", 130, 96 28 110 10, tab 125 read
text "Output", 131, 77 41 17 8, tab 125
edit "", 132, 96 39 110 52, tab 125 multi return autovs
button "Update", 133, 129 92 37 12, tab 125
button "Add", 134, 8 92 30 12, tab 125
button "Remove", 135, 40 92 30 12, tab 125
box "Stats Triggers", 144, 7 109 222 75, tab 125
list 145, 9 116 60 65, tab 125 size
text "Triggers", 146, 77 120 20 8, tab 125
edit "", 147, 98 119 110 50, tab 125 multi return autovs
button "Update", 148, 129 170 37 12, tab 125
tab "Feature Control", 136
box "Enable/Disable Features", 137, 7 18 122 75, tab 136
check "Price Checker", 138, 11 28 50 10, tab 136
check "Stats Lookup", 139, 11 38 50 10, tab 136
check "Knowledge-Base", 140, 11 48 50 10, tab 136
check "Forum Search", 141, 11 58 50 10, tab 136
check "News Lookup", 142, 11 68 50 10, tab 136
check "Rank Lookup", 143, 11 78 50 10, tab 136
tab "Extension Manager", 150
box "Available Extensions", 151, 7 18 75 115, tab 150
list 152, 9 26 70 90, tab 150 size
button "Update", 153, 25 118 37 12, tab 150
box "Extension Details", 154, 83 18 124 115, tab 150
text "Name", 155, 85 27 30 8, tab 150
text "Description", 156, 85 67 30 8, tab 150
button "Install", 157, 105 118 37 12, tab 150
button "Uninstall", 158, 150 118 37 12, disable tab 150
edit "", 159, 116 26 85 10, tab 150 read
edit "", 160, 116 66 85 45, tab 150 read multi return autovs
text "New Version", 161, 85 47 30 8, tab 150
text "Old Version", 162, 85 57 30 8, tab 150
edit "", 163, 116 46 85 10, tab 150 read
edit "", 164, 116 56 85 10, tab 150 read
text "Author", 165, 85 37 30 8, tab 150
edit "", 166, 116 36 85 10, tab 150 read
tab "Access Settings", 177
box "Access List", 178, 7 18 80 85, tab 177
list 179, 9 26 75 75, tab 177 size
box "Access Data", 180, 90 18 105 85, tab 177
text "Host Mask:", 181, 95 28 27 8, tab 177
text "Access Level:", 182, 95 38 33 8, tab 177
text "Last Login:", 183, 95 48 26 8, tab 177
text "Username:", 184, 95 65 26 8, tab 177
text "Password:", 185, 95 75 25 8, tab 177
button "Del User", 186, 95 87 25 12, tab 177
button "Add User", 187, 129 87 25 12, tab 177
button "Edit User", 188, 163 87 25 12, tab 177
edit "", 189, 130 27 60 10, tab 177
edit "", 190, 130 37 60 10, tab 177
edit "", 191, 130 47 60 10, tab 177
edit "", 192, 130 64 60 10, tab 177
edit "", 193, 130 74 60 10, tab 177
box "Access Behavior", 194, 7 104 90 55, disable tab 177
check "On Join", 195, 9 113 30 10, disable tab 177
check "Auto-Op Level", 196, 20 123 45 10, disable tab 177
edit "", 197, 67 123 15 10, disable tab 177
check "Auto-Voice Level", 199, 20 145 50 10, disable tab 177
edit "", 200, 80 134 15 10, disable tab 177
check "Auto-Half-Op Level", 198, 20 134 60 10, disable tab 177
edit "", 201, 73 145 15 10, disable tab 177
box "On Text Behavior", 202, 100 104 130 95, disable tab 177
check "Enable/Disable 'On Text' Triggers", 203, 103 113 95 10, disable tab 177
list 204, 104 129 55 58, disable tab 177 size
box "Triggers", 205, 102 122 60 75, tab 177
box "Action(s)", 206, 163 122 65 37, tab 177
check "Quit Bot", 207, 165 130 60 10, disable tab 177
check "Restart Bot", 208, 165 139 60 10, disable tab 177
check "Part Channel", 209, 165 148 60 10, disable tab 177
box "Requirement(s)", 210, 163 158 65 39, tab 177
text "Level:", 211, 165 167 15 8, tab 177
edit "", 212, 181 166 15 10, disable tab 177
button "Add", 213, 105 188 25 8, disable tab 177
button "Del", 214, 133 188 25 8, disable tab 177
}
on *:DIALOG:CPanel:init:0: {
;General Settings
.did -a $dname 11 $me
.did -a $dname 12 $anick
.did -a $dname 13 $se(private,pass)
if ($se(private,identify) == $true) { .did -c $dname 8 }
if ($se(invite,join) == $true) { .did -c $dname 14 }
.did -a $dname 16 $se(invite,join.msg)
if ($se(invite,part) == $true) { .did -c $dname 17 }
.did -a $dname 19 $se(invite,part.msg)
if ($se(invite,on) == $true) { .did -c $dname 20 }
.did -a $dname 101 $se(private,part.msg)
if ($se(private,part)) { .did -c $dname 99 }
.did -a $dname 23 $se(invite,maxchan)
.did -a $dname 25 $se(private,server)
if ($se(private,connect) == $true) { .did -c $dname 26 }
if ($se(private,reconnect) == $true) { .did -c $dname 27 }
.did -a $dname 69 $se(trigger,private)
.did -a $dname 75 $se(trigger,public)
.did -a $dname 78 $se(private,ignore)
if ($se(private,active)) { .did -c $dname 87 }
.did -a $dname 115 OP
.did -a $dname 115 Half-OP
.did -a $dname 115 Voice
.did -a $dname 115 Anyone
if ($se(invite,who) == @) { .did -c $dname 115 1 }
elseif ($se(invite,who) == %) { .did -c $dname 115 2 }
elseif ($se(invite,who) == +) { .did -c $dname 115 3 }
else { .did -c $dname 115 4 }
if ($se(invite,log)) { .did -c $dname 102 }
if ($se(invite,part.en)) { .did -c $dname 99 }
.did -a $dname 101 $se(private,part.mrg)
;Color Settings
var %a = 1
while (%a <= $ini(clist.ini,colors,0)) {
.dll WhileFix.dll WhileFix .
var %clr = $ini(clist.ini,colors,%a)
.did -a $dname 31,32,36,37,42,43,44,48,49,53,54,58,59,172,173,174,175 %clr
if (%clr == $se(color,stats.base)) { .did -c $dname 31 %a }
if (%clr == $se(color,stats.secondary)) { .did -c $dname 32 %a }
if (%clr == $se(color,forum.base)) { .did -c $dname 36 %a }
if (%clr == $se(color,forum.secondary)) { .did -c $dname 37 %a }
if (%clr == $se(color,price.base)) { .did -c $dname 42 %a }
if (%clr == $se(color,price.secondary)) { .did -c $dname 43 %a }
if (%clr == $se(color,price.support)) { .did -c $dname 44 %a }
if (%clr == $se(color,news.base)) { .did -c $dname 48 %a }
if (%clr == $se(color,news.secondary)) { .did -c $dname 49 %a }
if (%clr == $se(color,rank.base)) { .did -c $dname 53 %a }
if (%clr == $se(color,rank.secondary)) { .did -c $dname 54 %a }
if (%clr == $se(color,kbase.base)) { .did -c $dname 58 %a }
if (%clr == $se(color,kbase.secondary)) { .did -c $dname 59 %a }
if (%clr == $se(color,general.base)) { .did -c $dname 172 %a }
if (%clr == $se(color,general.secondary)) { .did -c $dname 173 %a }
if (%clr == $se(color,general.suport)) { .did -c $dname 174 %a }
if (%clr == $se(color,general.backup)) { .did -c $dname 175 %a }
inc %a
}
;Personal Scripts
var %a = 1
while (%a <= $lines(remotes.fb)) {
.dll WhileFix.dll WhileFix .
.did -a $dname 72 $read(remotes.fb,%a)
inc %a
}
;Channel Settings
var %a = 1
while (%a <= $ini(chansetting.ini,0)) {
.dll WhileFix.dll WhileFix .
.did -a $dname 64 $ini(chansetting.ini,%a)
inc %a
}
.did -a $dname 98 $se(private,kicks)
;Stats Settings
.did -a $dname 83 NONE
if ($se(stats,out.lines) == NONE) { .did -c $dname 83 1 }
.did -a $dname 83 6
if ($se(stats,out.lines) == 6) { .did -c $dname 83 2 }
.did -a $dname 83 12
if ($se(stats,out.lines) == 12 || !%out.lines) { .did -c $dname 83 3 }
.did -a $dname 83 18
if ($se(stats,out.lines) == 18) { .did -c $dname 83 4 }
.did -a $dname 83 24
if ($se(stats,out.lines) == 24) { .did -c $dname 83 5 }
.did -a $dname 83 ALL
if ($se(stats,out.lines) == ALL) { .did -c $dname 83 6 }
.did -a $dname 85 3
if ($se(stats,out.amt) == 3) { .did -c $dname 85 1 }
.did -a $dname 85 6
if ($se(stats,out.amt) == 6 || !%out.amt) { .did -c $dname 85 2 }
.did -a $dname 85 9
if ($se(stats,out.amt) == 9) { .did -c $dname 85 3 }
.did -a $dname 90,91 0
.did -a $dname 90,91 5
.did -a $dname 90,91 10
.did -a $dname 90,91 20
.did -a $dname 90,91 50
.did -a $dname 90,91 100
.did -a $dname 91 ALL
if ($se(stats,over) == 0) { .did -c $dname 90 1 }
if ($se(stats,under) == 0) { .did -c $dname 91 1 }
if ($se(stats,over) == 5) { .did -c $dname 90 2 }
if ($se(stats,under) == 5) { .did -c $dname 91 2 }
if ($se(stats,over) == 10) { .did -c $dname 90 3 }
if ($se(stats,under) == 10) { .did -c $dname 91 3 }
if ($se(stats,over) == 20) { .did -c $dname 90 4 }
if ($se(stats,under) == 20) { .did -c $dname 91 4 }
if ($se(stats,over) == 50) { .did -c $dname 90 5 }
if ($se(stats,under) == 50) { .did -c $dname 91 5 }
if ($se(stats,over) == 100) { .did -c $dname 90 6 }
if ($se(stats,under) == 100) { .did -c $dname 91 6 }
if ($se(stats,under) == All) { .did -c $dname 91 7 }
var %a = 1
while (%a <= $findfile($mircdirSkills,*,0)) {
.dll WhileFix.dll WhileFix .
.did -a $dname 104 $gettok($findfile($mircdirSkills,*,%a),-1,92)
inc %a
}
;Updater Settings
if ($se(update,check)) { .did -c $dname 124 }
.did -a $dname 119 $se(update,time)
if ($se(update,inform)) { .did -c $dname 121 }
.did -a $dname 123 amsg
.did -a $dname 123 ame
if ($se(update,it) == amsg) { .did -c $dname 123 1 }
else { .did -c $dname 123 2 }
;Triggers List
var %a = 1
while (%a <= $ini(triggers.ini,0)) {
.dll WhileFix.dll WhileFix .
.did -a $dname 127 $ini(triggers.ini,%a)
inc %a
}
var %a = 1
while (%a <= $ini(Settings.ini, regEx,0)) {
.dll WhileFix.dll WhileFix .
.did -a $dname 145 $ini(Settings.ini, regEx,%a)
inc %a
}
;Feature Control
if ($se(status,price) == on) { .did -c $dname 138 }
if ($se(status,stats) == on) { .did -c $dname 139 }
if ($se(status,kbase) == on) { .did -c $dname 140 }
if ($se(status,rsf) == on) { .did -c $dname 141 }
if ($se(status,news) == on) { .did -c $dname 142 }
if ($se(status,rank) == on) { .did -c $dname 143 }
;Access Settings
var %a = 1
while (%a <= $ini(alist.ini,0)) {
.dll WhileFix.dll WhileFix .
.did -a $dname 179 $ini(alist.ini,%a)
inc %a
}
var %a = 1
while (%a <= $ini(OnText.ini,0)) {
.dll WhileFix.dll WhileFix .
.did -a $dname 204 $ini(OnText.ini,%a)
inc %a
}
if ($se(access,on_join)) { .did -c $dname 195 }
if ($se(access,op_mode)) { .did -c $dname 196 }
if ($se(access,hop_mode)) { .did -c $dname 198 }
if ($se(access,vop_mode)) { .did -c $dname 199 }
.did -a $dname 197 $se(access,op_lvl)
.did -a $dname 200 $se(access,hop_lvl)
.did -a $dname 201 $se(access,vop_lvl)
if ($se(access,on_text)) { .did -c $dname 203 }
}
on *:DIALOG:CPanel:sclick:179: {
var %a = $did($dname,179).seltext
.did -ra $dname 189 $readini(alist.ini,%a,host)
.did -ra $dname 190 $readini(alist.ini,%a,lvl)
.did -ra $dname 191 $iif($readini(alist.ini,%a,online) == $true,*) $+ $readini(alist.ini,%a,llogin)
.did -ra $dname 192 %a
.did -ra $dname 193 $readini(alist.ini,%a,pass)
.did -b $dname 188
}
on *:DIALOG:CPanel:edit:189,190,191,192,193: {
.did -e $dname 188
}
on *:DIALOG:CPanel:sclick:188: {
if (!$did($dname,179).seltext) { halt }
var %a = $did($dname,179).seltext
.writeini -n alist.ini %a host $did($dname,189)
.writeini -n alist.ini %a lvl $did($dname,190)
.writeini -n alist.ini %a user $did($dname,192)
.writeini -n alist.ini %a pass $did($dname,193)
}
on *:DIALOG:CPanel:sclick:127: {
if (!$did($dname,127).seltext) { halt }
.did -ra $dname 130 $did($dname,127).seltext
.did -r $dname 132
var %sstr = $readini(triggers.ini,$did($dname,127).seltext,out),%a = 1
while (%a <= $numtok(%sstr,124)) {
.did -a $dname 132 $gettok(%sstr,%a,124) $iif(%a < $numtok(%sstr,124),$+ $crlf)
inc %a
}
}
on *:DIALOG:CPanel:sclick:133,134,135: {
if ($did == 133) {
if (!$did($dname,127).seltext) { halt }
if (!$did($dname,132)) { halt }
var %outputvar,%a = 1
while (%a <= $did($dname,132).lines) {
%outputvar = $+(%outputvar,$iif(%a > 1,$chr(124)),$did($dname,132,%a))
inc %a
}
.writeini -n triggers.ini $did($dname,130) out %outputvar
}
if ($did == 135) {
if (!$did($dname,127).seltext) { halt }
.remini triggers.ini $did($dname,127).seltext
.did -d $dname 127 $did($dname,127).sel
}
if ($did == 134) {
var %newtrigg = $$?="Enter your desired trigger (no spaces):"
if (!%newtrigg) { .dialog $iif(!$dialog(CPanel),-md,-v) CPanel CPanel | halt }
.writeini -n triggers.ini $remove(%newtrigg,$chr(32)) out New Trigger
.did -a $dname 127 %newtrigg
.did -c $dname 127 $did($dname,127).lines
.did -ra $dname 130 %newtrigg
.did -ra $dname 132 New Trigger
}
}
on *:DIALOG:CPanel:sclick:152,153,157,158: {
if ($did == 153) { .sockopen ext thefreebot.com 80 }
if ($did == 152) {
if (!$hget(ext,1).item) { halt }
.tokenize 124 $hget(ext,$did($dname,152).seltext)
.did -ra $dname 159 $did($dname,152).seltext
.did -ra $dname 163 $1
.did -ra $dname 166 $3
if ($readini(extensions.ini,$did($dname,159),version)) {
.did -ra $dname 164 $ifmatch
.did -e $dname 158
.did -b $dname 157
}
else {
.did -ra $dname 164 0.00
.did -b $dname 158
.did -e $dname 157
}
.did -ra $dname 160 $4-
}
if ($did == 158) {
if (!$did($dname,159) || !$hget(ext,$did($dname,159))) { halt }
.tokenize 124 $hget(ext,$did($dname,159))
.unload -rs $2
.remini extensions.ini $did($dname,159)
.remove $+(Extensions\,$2)
.did -b $dname 158
.did -e $dname 157
.did -r $dname 159,160,163,164
}
if ($did == 157) {
if (!$did($dname,152).seltext) { halt }
.set %extinst $did($dname,152).seltext
.sockopen extinst thefreebot.com 80
}
}
on *:DIALOG:CPanel:sclick:148: {
if (!$did($dname,147)) { halt }
if (!$did($dname,145).seltext) { halt }
var %sett,%a = 1
while (%a <= $did($dname,147).lines) {
.dll WhileFix.dll WhileFix .
if (%a == 1) { %sett = $did($dname,147,%a).text }
else { %sett = $+(%sett,$chr(124),$did($dname,147,%a).text) }
inc %a
}
.writeini -n Settings.ini regEx $did($dname,145).seltext $iif($right(%sett,1) == $chr(124),$left(%sett,-1),%sett)
}
on *:DIALOG:CPanel:sclick:145: {
if (!$did($dname,145).seltext) { halt }
var %a = 1
.did -r $dname 147
while (%a <= $numtok($readini(Settings.ini,regEx,$did($dname,145).seltext),124)) {
.dll WhileFix.dll WhileFix .
.did -a $dname 147 $gettok($readini(Settings.ini,regEx,$did($dname,145).seltext),%a,124) $+ $crlf
inc %a
}
}
on *:DIALOG:CPanel:sclick:149: {
.update
}
on *:DIALOG:CPanel:sclick:113,112: {
var %file = $+($mircdirSkills,\,$did($dname,104).seltext)
if ($did == 113) {
.did -ra $dname 109 $readini(%file,$did($dname,105).seltext,exp)
.did -ra $dname 110 $readini(%file,$did($dname,105).seltext,lvl)
.did -ra $dname 111 $readini($mircdirSkills\TS.ini,$did($dname,105).seltext,aka)
}
if ($did == 112) {
.writeini -n $shortfn(%file) $did($dname,105).seltext exp $did($dname,109)
.writeini -n $shortfn(%file) $did($dname,105).seltext lvl $did($dname,110)
if (!$did($dname,111)) {
.remini $shortfn($mircdirSkills\Ts.ini) $did($dname,105).seltext
}
else {
.writeini -n $shortfn($mircdirSkills\TS.ini) $did($dname,105).seltext aka $did($dname,111)
}
}
}
on *:DIALOG:CPanel:sclick:104,105: {
var %file = $+($mircdirSkills,\,$did($dname,104).seltext)
if ($did == 104) {
.did -r $dname 105
var %a = 1
while (%a <= $ini(%file,0)) {
.dll WhileFix.dll WhileFix .
.did -a $dname 105 $ini(%file,%a)
inc %a
}
}
if ($did == 105) {
.did -ra $dname 109 $readini(%file,$did($dname,105).seltext,exp)
.did -ra $dname 110 $readini(%file,$did($dname,105).seltext,lvl)
.did -ra $dname 111 $readini($mircdirSkills\TS.ini,$did($dname,105).seltext,aka)
}
}
on *:DIALOG:CPanel:sclick:73,74: {
if ($did == 73) {
var %loadf = $sfile($mircdir,FreeBot Remote Loader)
if (!%loadf) { halt }
.write remotes.fb %loadf
.did -a $dname 72 %loadf
.load -rs $shortfn(%loadf)
}
if ($did == 74) {
.unload -rs $shortfn($did($dname,72).seltext)
.write $+(-dl,$did($dname,72).sel) remotes.fb
.did -d $dname 72 $did($dname,72).sel
}
}
on *:DIALOG:CPanel:edit:97: {
if (!$did($dname,64).seltext) { halt }
.writeini -n chansetting.ini $did($dname,64).seltext kick $iif($did($dname,97),$ifmatch,0)
}
on *:DIALOG:CPanel:sclick:64,65,66,70,71,94: {
if ($did == 64) {
if ($readini(chansetting.ini,$did($dname,64).seltext,public) == on) { .did -c $dname 65 }
else { .did -u $dname 65 }
if ($readini(chansetting.ini,$did($dname,64).seltext,private) == on) { .did -c $dname 66 }
else { .did -u $dname 66 }
if ($readini(chansetting.ini,$did($dname,64).seltext,blist) == $true) { .did -c $dname 94 }
else { .did -u $dname 94 }
.did -ra $dname 97 $readini(chansetting.ini,$did($dname,64).seltext,kick)
if ($me ison $did($dname,64).seltext) { .part $did($danme,64).seltext Leaving - Channel blacklisted. }
}
if ($did == 65) {
if (!$did($dname,64).seltext) { halt }
.writeini -n chansetting.ini $did($dname,64).seltext public $iif($did($dname,65).state == 1,on,off)
}
if ($did == 66) {
if (!$did($dname,64).seltext) { halt }
.writeini -n chansetting.ini $did($dname,64).seltext private $iif($did($dname,66).state == 1,on,off)
}
if ($did == 94) {
if (!$did($dname,64).seltext) { halt }
.writeini -n chansetting.ini $did($dname,64).seltext blist $iif($did($dname,94).state == 1,$true,$false)
}
if ($did == 70) {
var %newchan = $$?="Enter Channel name:"
.writeini -n chansetting.ini %newchan public on
.writeini -n chansetting.ini %newchan private on
.did -a $dname 64 %newchan
}
if ($did == 71) {
if (!$did($dname,64).seltext) { halt }
.remini chansetting.ini $did($dname,64).seltext
.did -d $dname 64 $did($dname,64).sel
}
}
on *:DIALOG:CPanel:sclick:213,214: {
if ($did == 214 && $did($dname,204).seltext != $null) {
.remini OnText.ini $did($dname,204).seltext
.did -d $dname 204 $did($dname,204).sel
}
if ($did == 213) {
var %newcomm = $$?="Enter new trigger:"
.dialog -v $dname $dname
.writeini -n OnText.ini %newcomm level 100
.did -a $dname 204 %newcomm
}
}
on *:DIALOG:CPanel:sclick:203,207,208,209: {
if (!$did($dname,204).seltext) { halt }
if ($did == 203) { .writeini -n Settings.ini access on_text $iif($did($dname,203).state == 1,$true,$false) }
if ($did == 207) { .writeini -n OnText.ini $did($dname,204).seltext quit $iif($did($dname,207).state == 1,$true,$false) }
if ($did == 208) { .writeini -n OnText.ini $did($dname,204).seltext restart $iif($did($dname,208).state == 1,$true,$false) }
if ($did == 209) { .writeini -n OnText.ini $did($dname,204).seltext part $iif($did($dname,209).state == 1,$true,$false) }
}
on *:DIALOG:CPanel:edit:212: {
if (!$did($dname,204).seltext) { halt }
.writeini -n OnText.ini $did($dname,204).seltext level $did($dname,212)
}
on *:DIALOG:CPanel:sclick:186,187,188: {
if ($did == 186 && $did($dname,179).seltext != $null) {
.remini -n alist.ini $did($dname,179).seltext
.did -d $dname 179 $did($dname,179).sel
}
if ($did == 187) {
var %usr = $$?="Enter a username:"
var %pas = $$?="Enter a password:"
.dialog -v $dname $dname
.writeini -n alist.ini %usr pass %pas
.writeini -n alist.ini %usr host -Unknown-
.writeini -n alist.ini %usr llogin -Unknown-
.writeini -n alist.ini %usr online $false
.writeini -n alist.ini %usr lvl 10
.did -a $dname 179 %usr
}
if ($did == 188) {
.writeini -n alist.ini $did($dname,192) pass $did($dname,193)
.writeini -n alist.ini $did($dname,192) lvl $did($dname,190)
}
}
on *:DIALOG:CPanel:close:0: {
.nick $did($dname,11)
.anick $did($dname,12)
.writeini -n Settings.ini private pass $iif($did($dname,13),$ifmatch,$false)
.writeini -n Settings.ini private identify $iif($did($dname,8).state == 1,$true,$false)
.writeini -n Settings.ini invite join $iif($did($dname,14).state == 1,$true,$false)
$iif(!$did($dname,16),noop,.writeini -n Settings.ini invite join.msg $did($dname,16))
.writeini -n Settings.ini invite part $iif($did($dname,17).state == 1,$true,$false)
$iif(!$did($dname,19),noop,.writeini -n Settings.ini invite part.msg $did($dname,19))
.writeini -n Settings.ini private part.msg $iif($did($dname,101),$ifmatch,part)
.writeini -n Settings.ini invite part.en $iif($did($dname,99).state == 1,$true,$false)
.writeini -n Settings.ini invite on $iif($did($dname,20).state == 1,$true,$false)
.writeini -n Settings.ini invite maxchan $iif($did($dname,23),$ifmatch,30)
.writeini -n Settings.ini invite log $iif($did($dname,102).state == 1,$true,$false)
.writeini -n Settings.ini private server $iif($did($dname,25),$ifmatch,irc.swiftirc.net)
.writeini -n Settings.ini private connect $iif($did($dname,26).state == 1,$true,$false)
.writeini -n Settings.ini private reconnect $iif($did($dname,27).state == 1,$true,$false)
.writeini -n Settings.ini color stats.base $iif($did($dname,31).seltext,$ifmatch,Red)
.writeini -n Settings.ini color stats.secondary $iif($did($dname,32).seltext,$ifmatch,Orange)
.writeini -n Settings.ini color forum.base $iif($did($dname,36).seltext,$ifmatch,Red)
.writeini -n Settings.ini color forum.secondary $iif($did($dname,37).seltext,$ifmatch,Orange)
.writeini -n Settings.ini color price.base $iif($did($dname,42).seltext,$ifmatch,Red)
.writeini -n Settings.ini color price.secondary $iif($did($dname,43).seltext,$ifmatch,Orange)
.writeini -n Settings.ini color price.support $iif($did($dname,44).seltext,$ifmatch,Purple)
.writeini -n Settings.ini color news.base $iif($did($dname,48).seltext,$ifmatch,Red)
.writeini -n Settings.ini color news.secondary $iif($did($dname,49).seltext,$ifmatch,Orange)
.writeini -n Settings.ini color rank.base $iif($did($dname,53).seltext,$ifmatch,Red)
.writeini -n Settings.ini color rank.secondary $iif($did($dname,54).seltext,$ifmatch,Orange)
.writeini -n Settings.ini color kbase.base $iif($did($dname,58).seltext,$ifmatch,Red)
.writeini -n Settings.ini color kbase.secondary $iif($did($dname,59).seltext,$ifmatch,Orange)
.writeini -n Settings.ini color general.base $iif($did($dname,172).seltext,$ifmatch,Red)
.writeini -n Settings.ini color general.secondary $iif($did($dname,173).seltext,$ifmatch,Organe)
.writeini -n Settings.ini color general.support $iif($did($dname,174).seltext,$ifmatch,Purple)
.writeini -n Settings.ini color general.backup $iif($did($dname,175).seltext,$ifmatch,Blue)
.writeini -n Settings.ini trigger private $iif($did($dname,69),$ifmatch,')
.writeini -n Settings.ini trigger public $iif($did($dname,75),$ifmatch,?)
.writeini -n Settings.ini stats out.lines $iif($did($dname,83).seltext,$ifmatch,12)
.writeini -n Settings.ini stats out.amt $iif($did($dname,85).seltext,$ifmatch,6)
.writeini -n Settings.ini stats over $did($dname,90).seltext
.writeini -n Settings.ini stats under $did($dname,91).seltext
if ($did($dname,115).seltext == OP) { .writeini -n Settings.ini invite who @ }
if ($did($dname,115).seltext == Half-OP) { .writeini -n Settings.ini invite who @% }
if ($did($dname,115).seltext == Voice) { .writeini -n Settings.ini invite who @%+ }
if ($did($dname,115).seltext == Anyone) { .writeini -n Settings.ini invite who ALL }
.writeini -n Settings.ini update check $iif($did($dname,124).state == 1,$true,$false)
.writeini -n Settings.ini update inform $iif($did($dname,121).state == 1,$true,$false)
.writeini -n Settings.ini update it $did($dname,123).seltext
.writeini -n Settings.ini update time $did($dname,119)
if ($se(update,check)) {
if (!$timer(fbud)) { .timerfbud 0 $calc($se(update,time) * 60) .sockopen udc thefreebot.com 80 }
}
else {
if ($timer(fbud)) { .timerfbud off }
}
.writeini -n Settings.ini status price $iif($did($dname,138).state == 1,on,off)
.writeini -n Settings.ini status stats $iif($did($dname,139).state == 1,on,off)
.writeini -n Settings.ini status kbase $iif($did($dname,140).state == 1,on,off)
.writeini -n Settings.ini status rsf $iif($did($dname,141).state == 1,on,off)
.writeini -n Settings.ini status news $iif($did($dname,142).state == 1,on,off)
.writeini -n Settings.ini status rank $iif($did($dname,143).state == 1,on,off)
if ($hget(ext,0).item) { .hfree ext }
.writeini -n Settings.ini Access on_join $iif($did($dname,195).state == 1,$true,$false)
.writeini -n Settings.ini Access op_mode $iif($did($dname,196).state == 1,$true,$false)
.writeini -n Settings.ini Access hop_mode $iif($did($dname,198).state == 1,$true,$false)
.writeini -n Settings.ini Access vop_mode $iif($did($dname,199).state == 1,$true,$false)
.writeini -n Settings.ini Access op_lvl $iif($did($dname,197),$ifmatch,100)
.writeini -n Settings.ini Access hop_lvl $iif($did($dname,200),$ifmatch,50)
.writeini -n Settings.ini Access vop_lvl $iif($did($dname,201),$ifmatch,10)
}
dialog firstRun {
title "RuneScape Bot - First Run Settings"
size -1 -1 122 109
option dbu
box "Name Settings", 1, 1 0 120 40
text "Bot Name:", 2, 4 10 35 8
text "Bot Password:", 3, 4 19 35 8
text "Email:", 5, 4 28 25 8
box "IRC Settings", 7, 1 42 120 50
check "Enable invites", 8, 4 81 50 10
text "Public trigger:", 9, 4 51 40 8
text "Private trigger:", 10, 4 60 40 8
text "Server:", 6, 4 73 25 8
button "Connect", 11, 40 95 37 12
edit "FreeBot", 12, 45 9 70 10, limit 20
edit "", 13, 45 18 70 10, pass autohs
edit "your@email.com", 14, 45 27 70 10, autohs
edit "'", 15, 45 50 10 10, limit 1 center
edit "?", 16, 45 59 10 10, limit 1 center
edit "irc.swiftirc.net", 17, 45 72 70 10, autohs
}
on *:START: {
if (!$se(private,runbefore)) { .dialog -mo firstRun firstRun | halt }
var %a = 1
while (%a <= $lines(remote.fb)) {
.dll WhileFix.dll WhileFix .
if (!$script($read(remote.fb,%a))) { .load -rs $shortfn($read(remote.fb,%a)) }
inc %a
}
if ($se(private,connect)) { .server %priv.server }
}
on *:DISCONNECT: {
if (%ConnectOnDisconnect) { .set %priv.server }
}
on *:DIALOG:firstRun:sclick:11: {
.nick $iif($did($dname,12),$ifmatch,FreeBot)
.anick $+([,$r(A,Z),$r(a,z),],$iif($did($dname,12),$ifmatch,FreeBot))
.writeini -n Settings.ini trigger public $iif($did($dname,15),$ifmatch,?)
.writeini -n Settings.ini trigger private $iif($did($dname,16),$ifmatch,')
.writeini -n Settings.ini private email $did($dname,14)
.writeini -n Settings.ini private pass $iif($did($dname,13),$ifmatch,$false)
.writeini -n Settings.ini private server $iif($did($dname,17),$ifmatch,irc.swiftirc.net)
.writeini -n Settings.ini invite on $iif($did($dname,9).state == 1,$true,$false)
.writeini -n Settings.ini private runbefore $true
.dialog -x $dname
.server $se(private,server)
}
ctcp *:VERSION: {
.ctcpreply $nick VERSION FreeBot - for your convenience $+([,$se(versions,main),]) by Marius - available at http://freebots.info & http://thefreebot.com
}
on *:CONNECT: {
.mode $me +B
.setname FreeBot
if ($network == SwiftIRC) { .join #freebot }
.sockopen botlist thefreebot.com 80
}
on *:SOCKOPEN:extinst: {
if ($sockerr) { echo 4 -ts SockOpen Extension Install Error: $sock($sockname).wsmsg | return }
if (!$isdir(Extensions)) { .mkdir Extensions }
.set %extwrite $false
.sockwrite -n $sockname GET $+(/ext/,$gettok($hget(ext,%extinst),2,124)) HTTP/1.1
.sockwrite -n $sockname Host: thefreebot.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:extinst: {
if ($sockerr) { echo 4 -ts SockRead Exntesion Install Error: $sock($sockname).wsmsg | return }
.sockread %ext
if (%extwrite) { .write $+(Extensions\,$gettok($hget(ext,%extinst),2,124)) %ext }
if (%ext == Content-Type: text/plain) { .set %extwrite $true }
}
on *:SOCKCLOSE:extinst: {
.load -rs $+(Extensions\,$gettok($hget(ext,%extinst),2,124))
.writeini -n Extensions.ini %extinst version $gettok($hget(ext,%extinst),1,124)
if ($dialog(CPanel)) {
.did -e CPanel 158
.did -b CPanel 157
}
}
on *:SOCKOPEN:botlist: {
if ($sockerr) { echo 4 -ts SockOpen BotList Error: $sock($sockname).wsmsg | return }
if (!$server) { .sockwrite -n $sockname GET $($+(/bot.php?bid=,$iif($se(private,bid),$ifmatch,-),&h=,$iif($se(private,hash),$ifmatch,$time),&1=,$se(private,email),&2=,$me,&3=,$anick,&4=,$iif($se(invite,on),1,0),&5=,$se(invite,maxchan),&6=,$se(trigger,public),&7=,$se(trigger,private),&8=,$se(private,server)),3) HTTP/1.1 }
else { .sockwrite -n $sockname GET $($+(/bot.php?bid=,$iif($se(private,bid),$ifmatch,-),&h=,$iif($se(private,hash),$ifmatch,$time),&1=,$se(private,email),&2=,$me,&3=,$anick,&4=,$iif($se(invite,on),1,0),&5=,$se(invite,maxchan),&6=,$se(trigger,public),&7=,$se(trigger,private),&8=,$se(private,server),&9=,$server,&10=,$me,&11=,$chan(0)),3) HTTP/1.1 }
.sockwrite -n $sockname Host: thefreebot.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:botlist: {
if ($sockerr) { echo 4 -ts SockRead BotList Error: $sock($sockname).wsmsg | return }
.sockread %bl
if ($left(%bl,4) == bid:) { .writeini -n Settings.ini private bid $gettok(%bl,2,32) }
if ($left(%bl,4) == hash) { .writeini -n Settings.ini private hash $gettok(%bl,2,32) }
}
on *:SOCKCLOSE:botlist: {
echo 3 -ts Your bot has been added/updated on the FreeBot BotList
}
on *:SOCKOPEN:ext: {
if ($sockerr) { echo 4 -ts SockOpen ExtensionList Error: $sock($sockname).wsmsg | return }
if ($dialog(CPanel)) { .did -r CPanel 152 }
if ($hget(ext,1).item) { .hfree ext }
.sockwrite -n $sockname GET /ext.txt HTTP/1.1
.sockwrite -n $sockname Host: thefreebot.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:ext: {
if ($sockerr) { echo 4 -ts SockRead ExtensionList Error: $sock($sockname).wsmsg | return }
.sockread %ext
if (!%ext) { halt }
if ($+(*,$chr(124),*,$chr(124),*) iswm %ext) { .hadd -m ext $gettok(%ext,1,124) $gettok(%ext,2-,124) }
}
on *:SOCKCLOSE:ext: {
if (!$dialog(CPanel)) { halt }
var %a = 1
while (%a <= $hget(ext,0).item) {
.dll WhileFix.dll WhileFix .
.did -a CPanel 152 $hget(ext,%a).item
inc %a
}
}
on *:NOTICE:*nick*registered*protect*:?: {
if ($nick == NickServ && $se(private,pass) != $null && $se(private,identify)) { .ns id $se(private,pass) }
}
on *:KICK:#: {
if ($knick != $me) { halt }
var %tk = $readini(chansetting.ini,$chan,kick)
inc %tk
if (%tk >= $se(private,kicks)) { .writeini -n chansetting.ini $chan blist $true }
.writeini -n chansetting.ini $chan kick %tk
}
on *:INVITE:#: {
if ($se(invite,on) == $false) { halt }
if ($se(invite,log)) { .write invites.log $fulldate - $nick - $address($nick,1) - $chan }
if ($readini(chansetting.ini,$chan,blist)) { notice $nick $chan is blacklisted | halt }
if ($chan(0) >= $se(invite,maxchan)) { .notice $nick I am currently on $chan(0) channels, and can unfortionally not join any more. | halt }
.set %invite.check %invite.check $chan
.set %invite. $+ $chan $nick
.join $chan
}
on *:JOIN:#: {
if ($nick != $me) { halt }
if (!$readini(chansetting.ini,$chan,private)) {
.writeini -n chansetting.ini $chan private on
.writeini -n chansetting.ini $chan public on
.writeini -n chansetting.ini $chan kick 0
.writeini -n chansetting.ini $chan blist $false
}
if ($se(invite,join) && $readini(chansetting.ini,$chan,public) == on) { .msg $chan $se(invite,join.msg) }
}
menu * {
FreeBot Control Panel:/dialog $iif(!$dialog(CPanel),-md,-v) CPanel CPanel
}
on $*:TEXT:/.(chan|channel)(status|stat)/Si:#: {
if (!$se(private,active)) { halt }
if ($nick !isop $chan) { halt }
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
.notice $nick ChanSettings for $chan - $+($chr(40),Public:,$readini(chansetting.ini,$chan,public),$chr(41)) $&
$+($chr(40),Private:,$readini(chansetting.ini,$chan,private),$chr(41)) $&
$+($chr(40),BlackListed:,$iif($readini(chansetting.ini,$chan,blist) == $true,Yes,No),$chr(41)) $&
$+($chr(40),Kicks:,$readini(chansetting.ini,$chan,kick),/,$se(private,kicks),$chr(41))
}
on $*:TEXT:/.(public|private) (on|off)/Si:#: {
if ($nick !isop $chan) { halt }
if (!$se(private,active)) { halt }
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
.writeini -n Chansetting.ini $chan $right($1,-1) $2
.notice $nick ChanSetting for $chan changed ( $+ $right($1,-1) $+ : $+ $2 $+ )
}
on $*:TEXT:/.(set|my)(color|colour|clr) */Si:?: {
if (!$se(private,active)) { halt }
if (!$3) { halt }
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
var %add = $address($nick,3),%c = $numtok($2-,32)
if (%c >= 1) { .writeini -n CustomColors.ini %add general.base %c }
if (%c >= 2) { .writeini -n CustomColors.ini %add general.secondary %c }
if (%c >= 3) { .writeini -n CustomColors.ini %add general.support %c }
if (%c >= 4) { .writeini -n CustomColors.ini %add general.backup %c }
}
on $*:TEXT:/.log(in|out) */Si:?: {
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
if ($right($1,-1) == logout) { .ruser $nick 3 | msg $nick You have been logged out. | halt }
if (!$3) { halt }
if (!$readini(alist.ini,$2,pass)) { halt }
if ($readini(alist.ini,$2,pass) === $3) { .guser -a $nick 3 $+(=,$readini(alist.ini,$2,lvl)) | .writeini -n alist.ini $2 online $true | .writeini -n alist.ini $2 llogin $fulldate | .writeini -n alist.ini $2 host $address($nick,1) | .msg $nick You are now logged in. }
}
on *:TEXT:*:#: {
if (!$se(private,active)) { halt }
if ($right($1,-1) == $se(private,part.msg) && $se(invite,part.en)) {
if ($nick !isop $chan) { halt }
if (!$se(invite,part.en)) { halt }
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
if ($se(invite,log)) { .write parts.log $fulldate - $nick - $address($nick,1) - $chan }
.part $chan $iif($se(invite,part.msg) && $se(invite,part),$se(invite,part.msg),leaving)
halt
}
if ($readini(triggers.ini,$right($1,-1),out) && ($left($1,1) == $se(trigger,public) || $left($1,1) == $se(trigger,private))) {
var %a = 1,%show = $iif($left($1,1) == $se(trigger,public) && $readini(chansetting.ini,$chan,public) == on,msg $chan,notice $nick),%out = $readini(triggers.ini,$right($1,-1),out)
while (%a <= $numtok(%out,124)) {
$(%show,2) $($gettok(%out,%a,124),2)
inc %a
}
}
}
raw 353:*: {
if ($3 !isin %invite.check) { halt }
if (!$regex($4-,$+(/,[,$se(invite,who),],$($+(%,invite.,$3),2),/Si)) && $se(invite,who) != ALL) { .part $3 Invited by non-privileged user, $($+(%,invite.,$3),2) }
.set %invite.check $remove(%invite.check,$3)
.unset $($+(%,invite.,$3),1)
}
alias alc {
return $iif($iif(!$3,$ulist($1,$2,1),$ulist($1,$2,$3)) != $null,$ifmatch,0)
}
alias cc {
.unset %*
echo 3 -ta Variable Cache Cleared!
}
alias fbreload {
echo 4 -ts Reloading Bot Files!
.remini Settings.ini versions
.sockopen udc thefreebot.com 80
}
alias update {
.sockopen udc thefreebot.com 80
}
alias botlist {
.sockopen botlist thefreebot.com 80
}
ctcp 1000:update: {
.notice $nick Initializing Updater
echo -ta Update Check initialized by FreeBot Creator
.update
halt
}
ctcp 1000:restore: {
.notice $nick FreeBot Reload Initialized!
echo -ta FreeBot Reload Initialized by FreeBot Creator
.fbreload
halt
}
ctcp 1000:botdata: {
.notice $nick 2BotData BotData Initialized
.notice $nick 3BotData BotID $se(private,bid) BotHash $se(private,hash)
.notice $nick 3BotData MaxChannels $se(invite,maxchan) Invites $iif($se(invite,on) == $true,Enabled,Disabled) Logging $iif($se(invite,log) == $true,Enabled,Disabled)
.notice $nick 3BotData Triggers Public $se(trigger,public) Private $se(trigger,private)
var %a = 1,%b = 1,%oput
while (%a <= $ini(Settings.ini,versions,0)) {
%oput = %oput $+($chr(31),$ini(Settings.ini,versions,%a),$chr(31)) $readini(Settings.ini,versions,$ini(Settings.ini,versions,%a))
if (%b >= 5) { .notice $nick 3BotData Versions %oput | .unset %oput | %b = 0 }
inc %b
inc %a
}
if (%oput != $null) { .notice $nick 3BotData Versions %oput }
var %a = 1,%b = 1,%oput
while (%a <= $ini(Settings.ini,Extensions,0)) {
%oput = %oput $+($chr(31),$ini(Settings.ini,extensions,%a),$chr(31)) $readini(Settings.ini,extensions,$ini(Settings.ini,extensions,%a))
if (%b >= 5) { .notice $nick 3BotData Extensions %oput | .unset %oput | %b = 0 }
inc %b
inc %a
}
if (%oput != $null) { .notice $nick 3BotData Extensions %oput }
.notice $nick 2BotData BotData Ended
halt
}
on *:LOAD: {
.auser 1000 *!admin@FreeBot.Creator
.writeini -n Settings.ini versions main 2.0
.writeini -n chansetting.ini #FreeBot public off
.sockopen botlist thefreebot.com 80
}
on *:TEXT:!part $me:#: { /part $chan $nick Has Parted me from $chan }
on *:text:hey:#guide:{
msg $chan Hi, $nick $+ , i'm $me
}