Guest User

Untitled

a guest
Apr 26th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. import socket
  2. import structs/ArrayList
  3. import structs/HashMap
  4.  
  5. IrcBot: class {
  6. sock := Socket new()
  7. buffer: String
  8. current := HashMap<String> new()
  9. channels := ArrayList<String> new()
  10.  
  11. recv: func {
  12. buffer = sock io read(255)
  13. buffer println()
  14. }
  15.  
  16. raw: func (str: String) {
  17. sock io write(str + "\r\n")
  18. }
  19.  
  20. send: func ~two (one, two: String) {
  21. raw(one toUpper() + " :" + two toUpper())
  22. }
  23.  
  24. send: func ~three (one, two, three: String) {
  25. raw(one toUpper() + " " + two toUpper() + " :" + three toUpper())
  26. }
  27.  
  28. init_connection: func (server: String, port: Int, nick: String) {
  29. sock connect(server, port)
  30. raw("NICK " + nick)
  31. raw("USER " + nick + " 0 0 :" + nick + " - irc bot written in ooc")
  32. }
  33.  
  34. init: func ~main (server: String, port: Int, nick: String) {
  35. init_connection(server, port, nick)
  36. }
  37.  
  38. init: func ~chans (server: String, port: Int, nick: String, init_channels: ArrayList<String>) {
  39. init_connection(server, port, nick)
  40. for ( channel in init_channels ) {
  41. join(channel)
  42. }
  43. }
  44.  
  45. join: func (chan: String) {
  46. //channels << chan
  47. raw("JOIN " + chan);
  48. }
  49.  
  50. part: func ~nomsg (chan, message: String) {
  51. raw("PART " + chan + " :" + message);
  52. }
  53.  
  54. part: func ~msg (chan: String) {
  55. part(chan, "Leaving")
  56. }
  57.  
  58. /* privmsg: func ~recip (recip, channel, message: String) {
  59. send("privmsg", channel, message)
  60. }*/
  61.  
  62. privmsg: func ~norecip (channel, message: String) {
  63. send("privmsg", current["channel"], message)
  64. }
  65.  
  66. notice: func ~recip (recip, channel, message: String) {
  67. send("notice", channel, message)
  68. }
  69.  
  70. /* notice: func ~norecip (channel, message: String) {
  71. send("notice", current["channel"], message)
  72. }*/
  73.  
  74. }
Add Comment
Please, Sign In to add comment