Gefundener IRC BOT

Anfängerfragen zum Programmieren mit PureBasic.
Jume

Re: Gefundener IRC BOT

Beitrag von Jume »

Den Code hab ich doch im Anfangspost geschrieben ... aber hier gerne nochmal:

Code: Alles auswählen

    OpenConsole()
    ConsoleTitle("IRC Bot")
    Global yourmom$, cmd$
   
    *buffer = AllocateMemory(4096)
    serv$ = "irc.dynastynet.net"
    port = 6667
    nick$ = "WS"
    channel$ = "#ther"
    InitNetwork()
    Print("PB Bot")
    PrintN(Chr(13))
    ConnectionID = OpenNetworkConnection(serv$,port)
  
    
    admin$ = "hidas"

     
    If ConnectionID
      yourmom = ConnectionID
      PrintN("Connected!" + Chr(13))
      SendNetworkString(ConnectionID, "NICK " + nick$ + Chr(13) + Chr(10))
      SendNetworkString(ConnectionID, "USER " + nick$ + " 0 * :PBbot" + Chr(13) + Chr(10))
        SendNetworkString(ConnectionID, "MODE " + nick$ + " +B" + Chr(13) + Chr(10))
        SendNetworkString(ConnectionID, "JOIN " + channel$ + Chr(13) + Chr(10))
        
      
      Repeat
        CEvent = NetworkClientEvent(ConnectionID)
 

          If yourmom$ = "con"
            SendNetworkString(ConnectionID, "JOIN " + channel$ + Chr(13) + Chr(10))
            EndIf

        
       
        If CEvent
         
          Servid = EventServer()
         
          Select CEvent
             
            Case #PB_NetworkEvent_Data
              ReceiveNetworkData(ConnectionID,*buffer,4096)
             
             
              mail$ = PeekS(*buffer)
              If FindString(mail$," ",0) > 0
                If Left(mail$,4) = "PING"
                 
                  pserv$ = Mid(mail$,FindString(mail$, ":",0) + 1,Len(mail$) - FindString(mail$, ":", 0) + 1)
                 
                  pserv$ = Trim(pserv$, Chr(0))
                  ;PrintN("Ping Received from " + pserv$ + Chr(13))
                  SendNetworkString(ConnectionID,"PONG :" + pserv$ + Chr(13) + Chr(10))
                 ; PrintN("Sent ping to " + pserv$ + Chr(13))
                ElseIf Mid(mail$, FindString(mail$, " ", 0) + 1, 7) = "PRIVMSG"
       
                  rnick$ = StringField(mail$,1,"!")
                  rnick$ = Trim(rnick$, ":")
                  mail$ = Trim(mail$, ":")
                  rmsg$ = Mid(mail$,FindString(mail$, ":",0) + 1, Len(mail$) - FindString(mail$, ":", 0) + 1)
                  If Left(rmsg$, 1) = "+"
                    cmd$ = Left(rmsg$, 5)
                    Trim(cmd$, "+")
                    befehl$ = StringField(cmd$,1,Chr(32))
                            benutzer$ = StringField(cmd$,2,Chr(32))
                               text$ = StringField(cmd$,3,Chr(32))
                    
                    ;#############################Befehle
                   
                    Select befehl$
                        
                      Case "+time"
                        Time$ = FormatDate("%hh:%ii:%ss", Date())
                        SendNetworkString(ConnectionID, "PRIVMSG " + channel$ + " :"+Time$+Chr(13)+Chr(10))
                        
                        
                      Case "+info"
                        If rnick$ = admin$
                           SendNetworkString(ConnectionID, "PRIVMSG " + channel$ + " :Purebasic Bot V1.0 mein lieber Admin"+Chr(13)+Chr(10))
                         Else
                           SendNetworkString(ConnectionID, "PRIVMSG " + channel$ + " :Purebasic Bot V1.0"+Chr(13)+Chr(10))
                         EndIf 
                         
                         
                       Case "+test"
                         
                        
                           ; If rnick$ = admin$
                           
                           SendNetworkString(ConnectionID, "NOTICE "+admin$+" haha"+Chr(13)+Chr(10))
                        ; Else
                         ;  SendNetworkString(ConnectionID, "PRIVMSG " + channel$ + " :Sie sind leider nicht befähigt mir Befehle zu geben !"+Chr(13)+Chr(10))
                          ; EndIf 
                          
                        Case "+nick"
                          user$ = Right(cmd$, 6)
                          SendNetworkString(ConnectionID, "NICK " +user$ +Chr(13)+Chr(10))
                          
                          
                        Case "+opme"
                          SendNetworkString(ConnectionID, "MODE " + admin$ + " +o" + Chr(13) + Chr(10))
                             
                           Case "+msg"
                            SendNetworkString(ConnectionID, "PRIVMSG " + channel$ + " :"+befehl$+benutzer$+text$+Chr(13)+Chr(10))
                            SendNetworkString(ConnectionID, "NOTICE "+benutzer$+ text$+Chr(13)+Chr(10))

                             
                            
                      EndSelect
                      
                      
                        
                        
                        
                       
                   
                    
                    ;#############################Ende Befehle
                 
                  EndIf
                 
                  PrintN("<" + rnick$ + "> " + rmsg$)
                  ;SendNetworkString(ConnectionID, "PRIVMSG " + channel$ + " :Hi there!" + Chr(13) + Chr(10))
                  SendNetworkString(ConnectionID, "JOIN " + channel$ + Chr(13) + Chr(10))
                  
                EndIf
                
               
                
                
              EndIf
              *buffer = AllocateMemory(4096)
            Case #PB_NetworkEvent_Disconnect
              PrintN("Disconnected, Exiting.")
              quit = 1
          EndSelect
         
      EndIf 
       
      Until quit = 1
     
    Else
      PrintN("Failed to connect..." + Chr(13))
      ;CloseNetworkConnection(ConnectionID)
      PrintN("Press ENTER to close.")
      Input()
    EndIf
Jume

Re: Gefundener IRC BOT

Beitrag von Jume »

Ich habs herausgefunden. Danke trotzdem für die Hilfe =)
Antworten