AnGelBot-Portal²

Normale Version: Allroundbedienungsscript
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Das script is ja ganz nett.
Aber kann man da nicht noch eine kickban funktion einbauen?

Habs versucht aber klappt irgendwie nicht.
Ideal wäre es wenn man als wildcard auch noch eine zeit angeben könnte für nen tempban. Also z.B.

!kban <user> <zeit>

Und wenn keine Zeit angegeben wird soll es nen Permanenter Ban werden.

Aber So einbauen das man einen nick angeben MUSS. Wär echt nett.

Gruß
Code:
'Allroundbedienungs-Script zusammengefügt von Idefix
'thx to:

'===============================================================================​ ===========================
'Op/Voice/Kick Script by samiyah!
'[ #lamerpark @ de.quakenet.org - www.lamerpark.com ]
'===============================================================================​ ===========================

'===============================================================================​ ===========================
'PartyLine-Script 1.0a
'Programmiert von gangasta
'===============================================================================​ ===========================

'===============================================================================​ ===========================
'Channel-Join 1.0a  by Idefix
'===============================================================================​ ===========================

Dim cmd_prefix, max_matches, protect_me, protect_owner

Sub Init()
  Script "Allroundbedienungs-Script 1.0a"
  Hook "Chan_Msg"
  cmd_prefix = ReadINIString("Others", "CMDPrefix", "!", "angel.ini")


  '//- CONFIG/README -\\

  'BEFEHLE:
  '!kick [wildcard],[wildcard],... [Grund]
  '!op [wildcard] [wildcard] ...
  '!deop [wildcard] [wildcard] ...
  '!v [wildcard] [wildcard] ...
  '!dev [wildcard] [wildcard] ...

  'ERKLÄRUNG:
  '!op       - ohne Parameter, wird DICH oppen, dasselbe gilt für alle anderen Befehle
  '!kick *    - wird alle User Kicken, es sei denn max_matches lässt dies nicht zu
  '!op b* a* -alph* -br* ist das selbe wie: !op +b* +a* -alph* -br*
  'Kickt alle User die mit a oder b anfangen, ausser die die mit alph oder br anfangen, das + ist Optional!
  'Bedingung ist das der User der das Kommando ausführt +o als ChannelFlag im Bot hat

  'EINSTELLUNGEN:

  'Hier können noch einige Sachen eingestellt werden:

  'max_matches (0/1,2,3,...): Wieviel User dürfen Maximal betroffen sein,
  'max_matches = 4 verhindert !kick * (da nur maximal 4 User betroffen sein dürfen)
  'max_matches = 0 erlaubt !kick *
  max_matches = 0

  'protect_me (0/1): Schützt Bot vor Bot-DeOp und davor sich selbst zu kicken
  protect_me = 1

  'protect_owner (0/1): Schützt den SuperOwner vor DeOp oder Kick durch andere
  protect_owner = 1

  'Schutz trifft nur bei Op/DeOp/Kick in Kraft, bei Voice/DeVoice nicht!

  '\\- CONFIG/README ENDE -//

  ' Readme:
  '
  ' Befehle nur für Owner ausführbar.
  '
  ' Befehle: ( != Prefix )
  ' !join <#channel>       Bringt den Bot dazu <#channel> zu Joinen.
  ' !part                  Bringt den Bot dazu den aktiven Channel zu verlassen.
  ' !part <#channel>       Bringt den Bot dazu <#channel> zu verlassen.
  ' !perform               Bringt den Bot dazu den aktiven Channel zur Permanenten Channelliste hinzuzfügen.
  ' !perform <#channel>    Bringt den Bot dazu <#channel>  zur Permanenten Channelliste hinzuzfügen.
  ' !endperform            Bringt den Bot dazu den aktiven Channel von Permanenten Channelliste zu streichen.
  ' !endperform <#channel> Bringt den Bot dazu <#channel>  von Permanenten Channelliste zu streichen.
  ' !rejoin                Bringt den Bot dazu im aktiven Channel zu Hoppen.
  ' !rejoin <#channel>     Bringt den Bot dazu <#channel> zu Hoppen.
  ' !adduser <nick>        Fügt neuen Benutzer mit Standardflags zu.
  ' !remuser <nick>        Löscht Benutzer.
  ' !flags <nick> +-flags  Fügt dem Benützer Globale flags zu (+afijmnopstvw), bzw. löscht sie (-afijmnopstvw)
  ' !flags <nick> +-flags <#channel> Fügt dem Benützer flags (+afijmnopstvw) in <#channel> zu, bzw. löscht sie (-afijmnopstvw)
  '
  '  Für den befehl !flags müssen Nick und Benutzername gleich sein.

End Sub

Sub Chan_Msg(Chan, Nick, RegUser, Line)

  Select Case lcase(Param(Line,1))
    Case cmd_prefix & "op"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " +o " & Nick, 1: Exit Sub
    
      Exeqt Chan, "MODE %chan% +o %nick%", GetRest(Line,2), Nick, 1
    
    Case cmd_prefix & "deop"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " -o " & Nick, 3: Exit Sub
    
      Exeqt Chan, "MODE %chan% -o %nick%", GetRest(Line,2), Nick, 1
    
    Case cmd_prefix & "kick"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "KICK " & Chan & " " & Nick, 3: Exit Sub
    
      Exeqt Chan, "KICK %chan% %nick% :" & GetRest(Line,3), Replace(Param(Line,2),","," "), Nick, 1
    
    Case cmd_prefix & "v"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " +v " & Nick, 1: Exit Sub
    
      Exeqt Chan, "MODE %chan% +v %nick%", GetRest(Line,2), Nick, 0
    
    Case cmd_prefix & "dev"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " -v " & Nick, 3: Exit Sub
    
      Exeqt Chan, "MODE %chan% -v %nick%", GetRest(Line,2), Nick, 0
  End Select



  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "join"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        ExecuteCommand 0 , ".join "  & Param(Line, 2)
        SendLine "NOTICE " & Nick & " :Joining Channel "  & Param(Line, 2) & " ....  Successfull!", 2
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "part"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(line, 2) = "" then
          ExecuteCommand 0 , ".part "  & chan
        Else
          ExecuteCommand 0 , ".part "  & Param(line, 2)
          SendLine "NOTICE " & Nick & " :I Left " & Param(Line, 2)  ,2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "perform"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" Then
          ExecuteCommand 0 , ".+chan " & chan
          SendLine "NOTICE " & Nick & " :Added This Channel to My perform list ! ", 2
        Else
          ExecuteCommand 0 , ".+chan "  & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :Added Channel "  & Param(Line, 2) & " to My perform list!", 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "endperform"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" then
          ExecuteCommand 0 , ".-chan "  & chan
          SendLine "NOTICE " & Nick & " :Removed This Channel from My perform list ! ", 2
        Else
          ExecuteCommand 0 , ".-chan " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :Removed " & Param(Line, 2) & " from MY perform list ! ",2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "rejoin"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" then
          ExecuteCommand 0 , ".rejoin "  & chan
        Else
          ExecuteCommand 0 , ".rejoin " & Param(Line, 2)
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select


  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "adduser"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "*" Then
          For i = 1 To ChanUserCount(ChanNum(Chan))
            If ChanUser(ChanNum(Chan), i, CU_RegUser) = vbNullString Then
              ExecuteCommand 0, ".adduser " & ChanUser(ChanNum(Chan), i, CU_Nick)
            End If
          Next
          SendLine "NOTICE " & Nick & " :All users in " & Chan & " have been added!", 2
        ElseIf IsOn(Param(Line, 2), Chan) Then
          ExecuteCommand 0, ".adduser " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :User has been added!", 2
        Else
          SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick, 2
      End If
    Case cmd_prefix & "flags"
      If IsOn(Param(Line, 2), Chan) Then
        If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
          ExecuteCommand 0, ".chattr " & GetRest(Line, 2)
          SendLine "NOTICE " & Nick & " :Flags set!", 2
        Else
          SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick, 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
      End If
    Case cmd_prefix & "remuser"
      If IsOn(Param(Line, 2), Chan) Then
        If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
          ExecuteCommand 0, ".remuser " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :User has been removed with all data!", 2
        Else
          SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick, 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
      End If
  End Select

End Sub

Sub Exeqt(Chan, CmdStr, Line, Nick, protected)
  Dim matchnicks

  matchnicks = GetMatches(Chan,Line,protected)

  if (protected) and (max_matches > 0) and (ubound(matchnicks) + 1 > max_matches) Then SendLine "NOTICE " & Nick & " :Zuviele Matches!",3:Exit Sub

  For u = 0 To ubound(matchnicks)
    SendLine replace(replace(CmdStr,"%nick%",matchnicks(u)),"%chan%",Chan), 2
  Next

End Sub

Function GetMatches(Chan,Line,Protect)
  Dim nicks, match_tmp, match_nicks
  Dim schutz, betroffen

  nicks = Split(Line,chr(32))
  CNum = ChanNum(Chan)

  For i = 1 To ChanUserCount(CNum)
    schutz = 0
    betroffen = 0
  
    For j = 0 To ubound(nicks)
      Select Case left(nicks(j),1)
        Case "-"
          if wildmatch(mid(nicks(j),2),ChanUser(CNum, i, CU_Nick)) Then schutz = 1
        Case "+"
          if wildmatch(mid(nicks(j),2),ChanUser(CNum, i, CU_Nick)) Then betroffen = 1
        Case else
          if wildmatch(nicks(j),ChanUser(CNum, i, CU_Nick)) Then betroffen = 1
      End Select
    Next
  
    if (Protect) and (ChanUser(CNum,i,CU_Nick) = MyNick) And (protect_me) Then schutz = 1
    if (Protect) and (ChanUser(CNum,i,CU_RegUser) <> "") And (MatchFlags(GetUserChanFlags(ChanUser(CNum,i,CU_RegUser), Chan),"+s")) And (protect_owner) Then schutz = 1
  
    if not schutz and betroffen Then match_tmp = match_tmp & " " & ChanUser(CNum,i,CU_Nick)
  Next

  match_nicks = split(Trim(match_tmp),chr(32))

  GetMatches = match_nicks
End Function

Habe das Script auf Wunsch im Channel mal um die Angabe eines Grundes bei !kick erweitert. Dabei hat sich die Syntax für !kick wie am Anfang des Script geschrieben, geändert.
wenn bei eure OP's den befehl: !OP <- nicht benüzen kan schaut die userflags im script nach , weil die meisten befehle auf Owner sind ^^

MFG: -Eb-

PS: kick befehl funktioniert
aber KickBan nicht
Seiten: 1 2
Referenz-URLs