This is the first script i've made by totally understanding what i'm doing. Please give some feedback and tell me what can be done better.
This script is build to the sbnc 1.1 version.
NOTE: This script is norwegian.
# Copyright© 2010 by Andreas "xelent" Moen - figo@online.no
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * The name of the author may not be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
alias xstats {
var %f = 1
while (%f <= $ini(stats.ini, reg, 0)) {
var %ff = %ff $+ $readini(stats.ini, reg, $ini(stats.ini, reg, %f)) $+ $iif(%f != $ini(stats.ini, reg, 0),+)
inc %f
}
return $calc(%ff)
}
alias mkpasswd { return $+($r(a,z),$r(1,9),$r(a,z),$r(1,9),$r(a,z),$r(1,9)) }
on *:load:{
set %sbnc(admin) #YOUR-ADMIN-CHANNEL
set %sbnc(admins) *!*IDENT@HOST
set %sbnc(version) 1.90
set %sbnc(author) xelent
set %sbnc(chan) #YOUR-MAIN-BNC-CHANNEL
set %sbnc(ircserver) irc.quakenet.org 6667
set %sbnc(server) IP
set %sbnc(port) PORT
set %sbnc(realname) REALNAME on BNCS
set %sbnc(auth) AUTH NAME PASSWORD
set %sbnc(receiver) -sBNC
set %sbnc(joinall) :foreach bncusers [bncuserlist] {setctx $ $+ bncusers ; channel add #venatus-gaming}
set %sbnc(modex) :foreach bu [bncuserlist] {simul $ $+ bu "MODE [getbncuser $ $+ bu nick] +x"}
set %sbnc(style) 8
}
on *:text:*:%sbnc(admin):{
if ($istok(%sbnc(admins),$address($nick,1),44)) {
if ($1- == !admins) {
msg $chan Admins( $+ $numtok(%sbnc(admins),44) $+ ): $remove(%sbnc(admins),*!*)
}
elseif ($1 == !addadmin) {
if ($2) {
set %sbnc(admins) $addtok(%sbnc(admins),$address($2,1),44)
msg $chan $2 ( $+ $address($2,1) $+ ) added to admins.
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !addadmin nick
}
}
elseif ($1 == !deladmin) {
if ($2) {
set %sbnc(admins) $remtok(%sbnc(admins),*!* $+ $2 $+ ,44)
msg $chan *!* $+ $2 removed from admins.
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !deladmin host
}
}
elseif ($1 == !adduser) {
if ($2) && ($3) {
if ($readini(userlist.ini,Added,$2) == ACCEPTED) {
.msg $chan 4FEIL! Det er allerede en BNC registrert med idented $2 $+ .
}
if ($readini(userlist.ini,Rejected,$2) == REJECTED) {
.msg $chan 4FEIL! Identen $2 er utestengt fra våre BNC tjenester.
}
if ($readini(userlist.ini,Added,$2) == $null) && ($readini(userlist.ini,Rejected,$2) == $null) {
var %pass = $iif($4,$4,$mkpasswd)
.msg %sbnc(receiver) adduser $2 %pass
.msg %sbnc(receiver) simul $2 sbnc set realname %sbnc(realname)
.msg %sbnc(receiver) simul $2 sbnc set server %sbnc(ircserver)
.msg %sbnc(admin) Brukeren $2 har nå blitt opprettet av $nick $+ , med passord %pass $+ . Brukeren vil få tilsendt sin bnc informasjon automatisk.
.timer 1 4 .msg $3 Her er din BNC informasjon - Opprettet av $nick $+ .
.timer 1 6 .msg $3 Ident: $2 Passord: %pass IP: %sbnc(server) Port: %sbnc(port)
.timer 1 10 .msg $3 4VIKTIG! Husk å lagre informasjonen du nettopp ble gitt, det er ikke vårt ansvar å ta vare på slik informasjon.
.timer 1 12 .msg $3 Om du trenger hjelp ved konfigurering av BNC, klikk deg inn her:
http://www.venatus.no/for.....pic.php?f=8&t=14 .timer 1 14 .msg $3 Om du foretrekker assistanse via. teamviewer venligst kontakt oppretter.
.timer 1 16 .msg $3 Nedlastningslink for teamviewer finner du her:
http://www.teamviewer.com.....TeamViewer_Setup.exe (Installer som privat bruk!)
.timer 1 20 .msg %sbnc(receiver) simul $2 join %sbnc(chan)
.writeini userlist.ini Added $2 ACCEPTED
.writeini stats.ini reg $asctime(dd/mm/yy) $calc($readini(stats.ini, reg, $asctime(dd/mm/yy)) + 1)
}
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !adduser ident nick
}
elseif (!$3) {
.msg $chan 4FEIL! Bruk følgende kommando: !adduser $2 nick
}
}
elseif ($1 == !joinall) {
.msg %sbnc(receiver) tcl %sbnc(joinall)
.msg $chan Alle BNC brukere ble nå simulert inn på hovedkanalen %sbnc(chan)
}
elseif ($1 == !xallx) {
.msg %sbnc(receiver) tcl %sbnc(modex)
.msg %sbnc(admin) Alle BNC brukere har nå "MODE +x" aktivert.
}
elseif ($1 == !deluser) {
if ($2) {
if ($readini(userlist.ini,Added,$2) == $null) {
.msg $chan 4FEIL! Det finnes ingen registrerte BNC'er med ident $2 $+ .
}
if ($readini(userlist.ini,Added,$2) == ACCEPTED) {
.remini userlist.ini Added $2
.msg %sbnc(receiver) deluser $2
.msg %sbnc(admin) Brukeren $2 har nå blitt slettet av $nick $+ .
.writeini stats.ini reg $asctime(dd/mm/yy) $calc($readini(stats.ini, reg, $asctime(dd/mm/yy)) - 1)
}
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !deluser ident
}
}
elseif ($1 == !stats) {
.msg $chan Statistikk over totalt bncer lagt til, og totalt bncer lagt til idag/igår.
.msg $chan Idag: $readini(stats.ini, reg, $asctime(dd/mm/yy)) Igår: $readini(stats.ini, reg, $ini(stats.ini, reg, $calc($ini(stats.ini, reg, 0) - 1))) Totalt: $xstats
.msg $chan Det er registrert $+ %sbnc(style) $xstats av 100 ledige tilkoblinger.
}
elseif ($1 == !newpass) {
if ($2) && ($3) {
if ($readini(userlist.ini,Added,$2) == $null) {
.msg $chan 4FEIL! Det finnes ingen registerte BNC'er med ident $2 $+ .
}
if ($readini(userlist.ini,Added,$2) == ACCEPTED) {
var %newpass = $iif($4,$4,$mkpasswd)
.msg %sbnc(receiver) resetpass $2 %newpass
.msg %sbnc(admin) Passordet på bncen $2 er nå endret til %newpass $+ , brukeren har blitt varslet med sitt nye passord.
.msg $3 Ditt nye passord til bncen $2 har blitt endret til %newpass
}
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !newpass ident nick
}
elseif (!$3) {
.msg $chan 4FEIL! Bruk følgende kommando: !newpass $2 nick
}
}
elseif ($1 == !commands) || ($1 == !kommandoer) || ($1 == !cmds) || ($1 == !help) {
.msg %sbnc(admin) Botens funksjonskommandoer finnes her: %sbnc(cmd)
}
elseif ($1 == !version) || ($1 == !sbnc) {
.msg $chan sBNC venatus script version %sbnc(version) scripted by %sbnc(author)
}
elseif ($1 == !auth) {
/msg Q@CServe.quakenet.org %sbnc(auth)
}
elseif ($1 == !get) {
if ($2) {
.msg $chan ERROR logg ( $+ $2 $+ )
var %file = logg.txt, %wtf = $2
while ($read(%file,wn,%wtf,$calc($readn +1))) {
.msg $chan $v1
}
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !get *ident* (ex. !get *lieeN*)
}
}
elseif ($1 == !showget) {
if ($2) && ($3) {
.msg $chan Sender ERROR logg ( $+ $2 $+ ) til $3
var %file = logg.txt, %wtf = $2
while ($read(%file,wn,%wtf,$calc($readn +1))) {
.msg $3 $v1
}
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !showget *ident* nick (ex. !showget *lieen* venatus\lieeN)
}
elseif (!$3) {
.msg $chan 4FEIL! Bruk følgende kommando: !showget * $+ $2 $+ * nick
}
}
elseif ($1 == !nick) {
if ($2) {
/nick $2
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !nick nyttnick
}
}
elseif ($1 == !reject) {
if ($2) {
if ($readini(userlist.ini,Rejected,$2) == REJECTED) {
.msg $chan 4FEIL! Identen $2 er allerede utestengt fra vår BNC tjeneste.
}
if ($readini(userlist.ini,Added,$2) == ACCEPTED) {
.msg $chan 4FEIL! Identen $2 er registrert i vår BNC tjeneste. Venligst slett BNCen før du kan rejecte identen.
}
if ($readini(userlist.ini,Rejected,$2) == $null) && ($readini(userlist.ini,Added,$2) == $null) {
.writeini userlist.ini Rejected $2 REJECTED
.msg $chan Identen $2 er nå utestengt fra vår BNC tjeneste.
}
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !reject ident
}
}
elseif ($1 == !unreject) {
if ($2) {
if ($readini(userlist.ini,Rejected,$2) == $null) {
.msg $chan 4FEIL! Det er ingen utestengelse på ident $2 $+ .
}
if ($readini(userlist.ini,Rejected,$2) == REJECTED) {
.remini userlist.ini Rejected $2
.msg $chan Utestengelsen på identen $2 er nå fjernet.
}
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !unreject ident
}
}
elseif ($1 == !check) {
if ($2) {
if ($readini(userlist.ini,Rejected,$2) == REJECTED) {
.msg $chan Identen $2 er utestengt fra vår BNC tjeneste.
}
if ($readini(userlist.ini,Added,$2) == ACCEPTED) {
.msg $chan Identen $2 er registrert i vår BNC tjeneste.
}
if ($readini(userlist.ini,Rejected,$2) == $null) && ($readini(userlist.ini,Added,$2) == $null) {
.msg $chan Identen $2 er ikke registrert i vår BNC tjeneste.
}
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !check ident
}
}
elseif ($1 == !ping) {
ctcp $me ping
}
elseif ($1 == !warn) {
if ($2) {
.msg $2 4***ADVARSEL*** Du er i ferd ved å miste din BNC hos %sbnc(chan) $+ .
.msg $2 Denne advarselen kom fra $nick $+ .
.msg $chan Advarsel sendt til $2 $+ .
}
elseif (!$2) {
.msg $chan 4FEIL! Bruk følgende kommando: !warn nick
}
}
elseif ($1 == !who) {
.timercmd1 1 2 msg %sbnc(admin) Søker opp data. Venligst vent... Dette kan ta opptil 30 sekunder.
.timercmd2 1 4 msg %sbnc(admin) %lieeN
.timercmd3 1 6 msg %sbnc(admin) %xelent
.timercmd4 1 8 msg %sbnc(admin) %martinyh
.timercmd5 1 10 msg %sbnc(admin) %paddz
.timercmd6 1 12 msg %sbnc(admin) %operN
}
}
}
on *:text:*:?:{
if ($1 == error) {
if ($nick = %sbnc(receiver)) {
.msg %sbnc(admin) $1-
.write logg.txt Klokken: $time Dato: $date Dag: $day - $1-
}
}
if ($2 == xelent) && ($4 == off.) || ($2 == martinyh) && ($4 == off.) || ($2 == lieeN) && ($4 == off.) || ($2 == paddz) && ($4 == off.) || ($2 == operN) && ($4 == off.) {
if ($nick = %sbnc(receiver)) {
.msg %sbnc(admin) Admin $2 logget av.
.set % $+ $2 Brukeren $2 er avlogget. Sist pålogget klokken $time $date
/inc %sbnc(on) -1
}
}
if ($2 == xelent) && ($4 == on) || ($2 == martinyh) && ($4 == on) || ($2 == lieeN) && ($4 == on) || ($2 == paddz) && ($4 == on) || ($2 == operN) && ($4 == on) {
if ($nick = %sbnc(receiver)) {
.msg %sbnc(admin) Admin $2 logget på.
.set % $+ $2 Brukeren $2 er pålogget.
/inc %sbnc(on)
}
}
if ($1 == !info) || ($1 == xelent) {
if ($ulevel == 1000) {
.timer 1 2 msg $nick Utvidet informasjon om 'sBNC venatus script'.
.timer 1 4 msg $nick Version: %sbnc(version)
.timer 1 6 msg $nick Author: %sbnc(author)
.timer 1 8 msg $nick Linecount: $lines(sbnc.mrc) [Tillegsscript: $lines(script6.mrc) $+ ]
.timer 1 10 msg $nick BNC opplysninger: %sbnc(server) %sbnc(port) - %sbnc(realname)
.timer 1 14 msg $nick Registerte admins: %sbnc(admins)
}
}
if ($1 == !login) {
if ($2 == %login) && ($ulevel != 1000) {
.auser 1000 $nick
.set %loginnick $nick
.set %innlogget 1
.msg $nick Din tilgang har blitt autorisert.
.msg $nick Velkommen til $me 's mIRC (Remote System by xelent)
}
elseif ($ulevel == 1000) {
.msg $nick Du har allerede logget inn.
}
}
if ($1 == !do) {
if ($ulevel == 1000) {
$2-
.msg $nick Klart, kommando "/ $+ $2- $+ " utført av %loginnick $+ .
}
elseif ($ulevel != 1000) {
.msg $nick Autorisering mangles.
.halt
}
}
if ($1 == !logout) {
if ($ulevel == 1000) {
.ruser $nick
.set %innlogget 0
.unset %loginnick
.msg $nick Du har blitt logget ut fra $me 's mIRC (Remote System by xelent)
}
elseif ($ulevel != 1000) {
.msg $nick Du er ikke logget inn.
}
}
if ((%innlogget == 1) && ($nick != %loginnick) && ($nick != %sbnc(receiver))) {
.msg %loginnick Bruker $nick skrev: $1-
.msg $nick Dette er venatus's sbnc bot. Det er ingen menneskser som kontrollerer denne og kan derfor ikke skrive tilbake til deg. Gjelder det bnc? Sjekk ut hovedkanlen #venatus-gaming for svar.
}
}
on 1:DISCONNECT:{
.server bnc.venatus.no:6009 sbnc:xadmin
;.server irc.quakenet.org
.timer 1 15 .msg %sbnc(admin) Reconnected to server 'bnc.venatus.no 6009'.
.timer 1 16 .msg %sbnc(admin) Boten pinget ut og er nå tilbake etter 15 sekunder med nedetid.
}
on *:ctcpreply:ping*: {
%ping = $ctime - $2
.msg %sbnc(admin) Min svarstid med $server er $duration($calc(%ping))
}