Hej alle sammen..
Ja jeg sad torsdag aften og stenede lidt, så jeg tænkte på jeg ville lave et admin system som er via auth..
Så here we go.
on *:load: {
echo -a 11,1¤15,1 :::: Adminsystem via Auth :::: 11,1¤15,1
echo -a 11,1¤15,1
echo -a 11,1¤15,1 - Nemt og smart admin script, til en klan eller et ny opstartet Community 11,1¤15,1
echo -a 11,1¤15,1 - Har du problemer eller finder fejl i scriptet, så kontakt Grandjean på #Grandjean 11,1¤15,1
echo -a 11,1¤15,1
echo -a 11,1¤15,1 :::: Scriptet af Grandjean - #Grandjean :::: 11,1¤15,1
/who $chan n%na
}
on *:text:!add*:#: {
if ($readini(serviceadmins.ini,owner,$address($nick,2)) == owner) {
if ($2 == admin) {
writeini serviceadmins.ini admins $address($3,2) admin
notice $nick %font $3 $+ ( $+ $auth($3) $+ ) er nu blevet tilføjet som admin %font
notice $3 %font $3 $+ ( $+ $auth($3) $+ ) du er nu blevet tilføjet som admin på $chan %font
mode $chan +o $3 }
if ($2 == owner) {
writeini serviceadmins.ini owner $address($3,2) owner
notice $nick %font $3 $+ ( $+ $auth($3) $+ ) er nu blevet tilføjet som owner %font
notice $3 %font $3 $+ ( $+ $auth($3) $+ ) du er nu blevet tilføjet som owner på $chan %font
mode $chan +o $3 }
}
}
on *:text:!rem*:#: {
if ($readini(serviceadmins.ini,owner,$address($nick,2)) == owner) {
if ($2 == admin) {
remini serviceadmins.ini admins $address($3,2)
notice $nick %font $3 $+ ( $+ $auth($3) $+ ) er nu blevet slettet som admin %font
notice $3 %font $3 $+ ( $+ $auth($3) $+ ) du er nu blevet slettet som admin på $chan %font
mode $chan -o $3 }
if ($2 == owner) {
remini serviceadmins.ini owner $address($3,2)
notice $nick %font $3 $+ ( $+ $auth($3) $+ ) er nu blevet slettet som owner %font
notice $3 %font $3 $+ ( $+ $auth($3) $+ ) du er nu blevet slettet som owner $på chan %font
mode $chan -o $3 }
}
}
on *:text:!list*:#: {
if ($readini(serviceadmins.ini,owner,$address($nick,2)) == owner) {
if ($2 == admins) {
notice $nick %font Admins %font
var %i = 1
while ($ini(serviceadmins.ini,admins,%i)) {
set %service.admin.last $readini(serviceadmins.ini,admins,$ifmatch)
.timer 1 %i .notice $nick %font $+ %i $+ : $ifmatch %font Stilling: %service.admin.last %font
inc %i }
}
if ($2 == owners) {
notice $nick %font Owners %font
var %i = 1
while ($ini(serviceadmins.ini,owner,%i)) {
set %service.owner.last $readini(serviceadmins.ini,owner,$ifmatch)
.timer 1 %i .notice $nick %font $+ %i $+ : $ifmatch %font Stilling: %service.owner.last %font
inc %i }
}
}
}
on *:join:#: {
if ($readini(serviceadmins.ini,admins,$address($nick,2)) == admin) {
msg $chan %font $nick $+ ( $+ $auth($nick) $+ ) er admin %font
mode $chan +o $nick }
{ elseif ($readini(serviceadmins.ini,owner,$address($nick,2)) == owner) {
msg $chan %font $nick $+ ( $+ $auth($nick) $+ ) er Channel Admin! %font
mode $chan +o $nick }
}
}
::::::::::::::: Patty's Auth Script! :::::::::::::::::
;Okay, så kører vi..
;Først et alias til at fremprovokere en .who (måske)
;I form $auth(NICK)
alias auth {
if ($readini(authing.ini,$1,auth)) {
return $readini(authing.ini,$1,Auth)
;Hvis han er authed, så returnere vi dens Auth
}
elseif (*.users.quakenet.org iswm $address($1,2)) {
;Hvis han ikke er gemt i databasen, men har mode +x, så tager vi hans auth ud af hans address
writeini -n Authing.ini $1 Auth $gettok($remove($address($1,2),*!*@),1,46)
return $gettok($remove($address($1,2),*!*@),1,46)
}
else {
;hvis ik, så returnere vi false
;her kunne man sagtens lægge en .who nick na%a ind, men problemet er bare at hvis du kører det på større channels, kan og vil du floode af pga formange send/reply's
return $false
}
}
on *:join:%MainChan: {
set %auth $auth($nick)
if (%auth) { halt }
;Først checker vi om personens Auth er gemt i databasen, skulle den ikke gerne være, men hvis der sker en fejl, så finder vi den her..
if (*.users.quakenet.org iswm $address($nick,2)) {
writeini -n Authing.ini $nick Auth $gettok($remove($address($nick,2),*!*@),1,46)
;Så ser vi den nemme vej, har personen +x ? så tager vi hans auth ud af hans address ;)
}
inc -u1 %AntiAuthFlood 1
if (%AntiAuthFlood < 3) {
;Meget simpelt anti flood system, hvis der kommer over 3 joins på 3 sekunder, så hopper den videre til else {
.who $nick n%na
;who command fremkalder en raw reply fra IRC i form: NICK Auth
}
else {
.timer 1 $calc( %AntiAuthFlood + %AntiAuthFlood + %AntiAuthFlood + 5) .who $nick n%na
}
}
raw 354:*:{
if ($2 ison %MainChan) {
writeini -n Authing.ini $2 Auth $3
}
}
; resten her ned af sletter eller retter personens auth hvis han parter eller quitter
on *:nick: {
if (!$auth($nick)) { halt }
/writeini -n Authing.ini $newnick Auth $auth($nick)
/remini -n Authing.ini $nick
}
on *:PART:#JERES-CHANNEL: {
if (!$auth($nick)) { halt }
/remini -n Authing.ini $nick
}
on *:QUIT: {
if (!$auth($nick)) { halt }
/remini -n Authing.ini $nick
}
on *:KICK:#JERES-CHANNEL: {
if (!$auth($nick)) { halt }
/remini -n Authing.ini $nick
}
on *:DISCONNECT: {
if (!$auth($nick)) { halt }
/remini -n Authing.ini $nick
}
Som fulde owner af scriptet skal du skrive
//writeini serviceadmins.ini owner $address(DIT-IRC-NICK,2) owner
i botten for at du kan tilføje andre som owners eller admins..
I skal også huske at skrive
/set %MainChan #JERES-CHANNEL
i botten.
Commands:
!add 'Owner/Admin' 'Irc Nick' - Tilføjer personen som owner eller admin, begge triggers giver personen autoop
!rem 'Owner/Admin' 'Irc Nick' - Sletter personen som owner eller admin, begge trigger giver personen deop
!list 'Owners/Admins' - Viser en liste over Owners eller Admins
Hvis i har nogen ekstra ting facts, som jeg kunne smide i scriptet. Så endelig skriv!
Er der nogen fejl, skriv dem og jeg retter :)
Det var alt herfra, håber i kunne bruge det :)
(
Testet & Virker!!)