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