Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: RES: Rebot progressing nicely!

From: mat:eurogamer at: 30-Nov-2000 0:59

Heya Mailbank, M> Hi Mat M> May I take a look at rebot? Couple of requests for this, what I'll print here probably doesn't work because I've cut something vital out. However it'd be much easier to see what's going on after I cut the reams and reams of game server functions and other stuff out out. I also learned a great many things so I'm actually going to ditch this and re-write it in sort of proper Rebol with half as many temporary variables; < -- Cut -- > Rebol [] ircserver: "irc.server.com" ircport: 6667 channel: "#channel" nick: "Rebot" usern: "Rebot" hostn: "0wnerage.com" servern: "irc.server.com" realn: "Rebol Bot Alpha 1" bold: to-char 2 underline: to-char 31 SendCMD: func [ irccommand ][ insert irccon irccommand ] get-status: func [ SendChan: func [ whattosay ][ sendCMD rejoin ["PRIVMSG " channel " :" whattosay] ] PrivMSG: func [ whattosay ][ SendCMD rejoin ["PRIVMSG " currentnick " :" whattosay] ] Quitchannel: func [ quitmsg ][ SendCMD rejoin ["PART " channel " :" quitmsg ] ] HelpSubject: func [ hsubject ][ switch hsubject [ "search" [PrivMSG "Usage: Search <playername>"] "commands" [PrivMSG rejoin [Nick " commands: commands, search, bbcnews, translate, serverstatus, serverannounce"] ] ] ] ProcessPublic: func [ ][ channelwords: parse channeltext none if nick = pick channelwords 1 [ publiccommand: find/tail channeltext nick publickeyword: pick parse publiccommand none 1 switch publickeyword [ "quit" [ SendChan "Bah :(" Quitchannel "Nobody loves me..." wait irccon close irccon halt ] comment {loads of switches for public commands goes here} ] ] ] ProcessPrivate: func [ ][ Print "Processing private msg" privatewords: parse msgtext none command: pick privatewords 1 print command switch command [ "search" [ searchOGA ] "commands" [ HelpSubject "commands"] "cmds" [ HelpSubject "commands"] comment {loads of switches for private /msg commands go here} ] ] ReadIRC: func [ ][ ircout: copy irccon for i 1 lnircout 1 [ ln: pick ircout i lnwords: parse ln none keyword: pick lnwords 1 irccommand: pick lnwords 2 if keyword = "PING" [ pingstamp: pick lnwords 2 SendCMD rejoin ["PONG " pingstamp] ] parse ln [thru ":" copy currentnick to "!"] if irccommand = "PRIVMSG" [ if channel = pick lnwords 3 [ channeltext: find/tail ln " :" ProcessPublic ] if nick = pick lnwords 3 [ msgtext: find/tail ln " :" ProcessPrivate ] ] ] return ircout ] Comment { THIS IS THE MAIN LOOP } ircurl: make url! rejoin ["tcp://" ircserver ":" ircport] if error? try [irccon: open/lines/no-wait ircurl] [ print ["Error connecting to server" ircurl] halt ] sendCMD rejoin ["NICK " nick] wait irccon print readIRC sendCMD rejoin ["USER " usern " " hostn " " servern " " realn] sendCMD rejoin ["JOIN " channel] SendChan "Rebot is my name and 0wnerage is my game! /msg rebot commands" do forever [ print readirc wait irccon ] -- Mat Bettinson - EuroGamer's Gaming Evangelist with a Goatee http://www.eurogamer.net | http://www.eurogamer-network.com