hi Bela,
ich hab mal hier eine andere Version ...
Voraussetzung für dieses script ist, dass deine 'Freunde' dem Bot bekannt sein müssen und das Flag +o haben müssen.
Dies vorausgesetzt, können diese dann folgende Trigger ausführen in allen Channels, in denen dein Bot ist und auch die Rechte (also OP) dazu hat.
!v (voice),
!-v (devoice),
!h (halfOp),
!-h (dehalfOp),
!o (op),
!-o (deop),
!k <nick> (kickt den nick),
!b <nick> (bannt den nick),
!-b <nick> (entfernt den Bann von nick)
kurz ein Beispiel:
!o (dein Bot gibt demjenigen Op, der den Trigger eingegeben hat),
!o nick (dein Bot gibt nick Op) <--- sollte hier jemand den Namen deines Bot benutzen, wird der Befehl natürlich ignoriert :D
Code:
Sub Init()
Script "Chanserv-Modes by Looop"
Hook "Chan_Msg"
End Sub
Sub Chan_msg(Chan, Nick, RegUser, Line)
If IsOn(Param(Line,2), Chan) > 0 Or Param(Line,2) = MyNick Then Exit Sub
If MatchFlags(GetUserChanFlags(RegUser, Chan), "+o") Then
Select Case LCase(Param(Line, 1))
Case "!h"
If Param(Line, 2) = "" Then
SendLine "MODE " & Chan & " +h " & Nick, 1
Else
SendLine "MODE " & Chan & " +h " & Param(Line, 2), 1
End If
Case "!-h"
If Param(Line, 2) = "" Then
SendLine "MODE " & Chan & " -h " & Nick, 1
Else
If LCase(Param(Line, 2)) <> LCase(MyNick) Then
SendLine "MODE " & Chan & " -h " & Param(Line, 2), 1
End If
End If
Case "!o"
If Param(Line, 2) = "" Then
SendLine "MODE " & Chan & " +o " & Nick, 1
Else
SendLine "MODE " & Chan & " +o " & Param(Line, 2), 1
End If
Case "!-o"
If Param(Line, 2) = "" Then
SendLine "MODE " & Chan & " -o " & Nick, 1
Else
If LCase(Param(Line, 2)) <> LCase(MyNick) Then
SendLine "MODE " & Chan & " -o " & Param(Line, 2), 1
End If
End If
Case "!v"
If Param(Line, 2) = "" Then
SendLine "MODE " & Chan & " +v " & Nick, 1
Else
SendLine "MODE " & Chan & " +v " & Param(Line, 2), 1
End If
Case "!-v"
If Param(Line, 2) = "" Then
SendLine "MODE " & Chan & " -v " & Nick, 1
Else
If LCase(Param(Line, 2)) <> LCase(MyNick) Then
SendLine "MODE " & Chan & " -v " & Param(Line, 2), 1
End If
End If
Case "!b"
If LCase(Param(Line, 2)) <> LCase(MyNick) Then
SendLine "MODE " & Chan & " +b " & Param(Line,2), 1
SendLine "NOTICE " & Param(Line,2) & " : du wurdest gebannt ", 1
End If
Case "!-b"
If LCase(Param(Line, 2)) <> LCase(MyNick) Then
SendLine "MODE " & Chan & " -b " & Param(Line,2), 1
SendLine "NOTICE " & Param(Line,2) & " : dein Bann wurde aufgehoben ", 1
End If
Case "!k"
If LCase(Param(Line, 2)) <> LCase(MyNick) Then
SendLine "MODE " & Chan & " +b " & Param(Line,2), 1
SendLine "NOTICE " & Param(Line,2) & " : du wurdest gekickt ", 1
End If
End Select
End If
End Sub
ist zwar ohne warnungen, für solche, die es einfach mal probiern wollen, aber das kann man leicht mit einbaun und ist ja auch nur ein Anfang .. altanativ kann man dieses auch um einige Channelmodes erweitern
cu Looop