login  Naam:   Wachtwoord: 
Registreer je!
 Forum

irc bot

Offline zwobbel - 29/04/2005 18:02
Avatar van zwobbelPHP gevorderde Als ik men php bestand run krijg ik niets te zien ook zie ik op irc channel zelf geen bot connecten van mij waar ligt de fout?

  1. <?php
  2. set_time_limit (0); // time limit goed zetten zodat ie geen timouts krigjt
  3. ini_set ('error_reporting', E_ALL); // error reporitng op het hoogste zetten
  4.  
  5. class IRC_Bot
  6. {
  7. // default settings
  8. var $bot = array ("host" => "irc.quakenet.org", "port" => "6669", "owner" => "Zwobbel", "nick" => "TMF-bot", "user" => "thephpbot", "name" => "PHPBOT by zwobbel", "short"=> "phpb", "errn" => "", "errs" => "");
  9.  
  10. var $chan = array ('#mgevent');
  11.  
  12. // laat botje connecten met server
  13. function conn ()
  14. {
  15. $sock = @fsockopen ($this->bot['host'], $this->bot['port'], $this->bot['errn'], $this->bot['errs']);
  16.  
  17. if ($sock)
  18. {
  19. return $sock; // everything went oke return the socket
  20. }
  21. else
  22. {
  23. return $this->errn . ': ' . $this->errs; // something went wrong, return error number and string
  24. }
  25. }
  26.  
  27. function put ($msg)
  28. {
  29. return fputs ($this->conn (), $msg . "");
  30.  
  31. }
  32.  
  33. // username en zo setten
  34. function settings ()
  35. {
  36. $this->put ('NICK ' . $this->$bot['nick'] . '');
  37. $this->put ('USER ' . $this->$bot['user'] . ' : ' . $bot['name'] . '');
  38. }
  39.  
  40. // een bericht sturen
  41. // Type = PRIV -> Prive bericht naar een gebruiker
  42. // Type = NOTICE -> Zo'n channel notice..
  43. function message ($type, $destination, $message)
  44. {
  45. if ($type == 'PRIVMSG')
  46. {
  47. $this->put ('PRIVMSG ' . $destination . ' :' . $message . '');
  48. }
  49. else if ($type == 'NOTICE')
  50. {
  51. $this->put ('NOTICE '.$destination.' :'.$message . '');
  52. }
  53. }
  54.  
  55. // kanaal joinen.. spreekt voor zich
  56. function join ($chan, $key = NULL)
  57. {
  58. if ($key == NULL)
  59. {
  60. $this->put ('JOIN ' . $chan . '');
  61. }
  62. else
  63. {
  64. $this->put ('JOIN ' . $chan . ' '. $key . '');
  65. }
  66. }
  67.  
  68. // kanaal verlaten
  69. function part ($chan, $reason = NULL)
  70. {
  71. if ($reason == NULL)
  72. {
  73. $this->put ('PART '. $chan . '');
  74. }
  75. else
  76. {
  77. $this->message ('PRIV', $chan, $reason);
  78. $this->put ('PART '. $chan . '');
  79. }
  80. }
  81.  
  82. // iemand anders het kanaal laten verlaten :p
  83. function kick ($chan, $nick)
  84. {
  85. $this->put ('KICK ' . $chan . ' ' . $nick . '');
  86. }
  87.  
  88. // topic laten zetten
  89. function setTopic($chan, $newtopic = NULL)
  90. {
  91. if ($newtopic == NULL)
  92. {
  93. $this->message ('NOTICE' . $chan . ' :No topic to set');
  94. }
  95. else
  96. {
  97. $this->put ('TOPIC ' . $chan . ' :' . $newtopic . '');
  98. }
  99. }
  100.  
  101. function cmode ($target, $newmode = NULL)
  102. {
  103. if ($newmode == NULL)
  104. {
  105. continue;
  106. }
  107. else
  108. {
  109. $this->put ('MODE ' . $target . ' ' . $newmode . '');
  110. }
  111. }
  112.  
  113. function umode ($chan, $nick, $mode = NULL)
  114. {
  115. if ($mode == NULL)
  116. {
  117. continue;
  118. }
  119. else
  120. {
  121. $this->put ('MODE ' . $chan . ' ' . $mode . ' ' . $nick . '');
  122. }
  123. }
  124.  
  125. function startbot ()
  126. {
  127. while (TRUE)
  128. {
  129. $text = fgets ($sock, 100);
  130. if (substr ($text, 0, 4) == 'PING')
  131. {
  132. $this->substr ($text, 4, 10);
  133. }
  134. $mesg = explode (':', $text);
  135. $nick = explode ('!', $mesg[1]);
  136. $nick = $nick[0];
  137. $extr = explode (' ', $mesg[1]);
  138. $chan = $extr[2] ;
  139. $msg = strtolower ($mesg[2]);
  140. $arg = explode (' ', $msg);
  141.  
  142. if ($nick == $this->bot['owner'])
  143. {
  144. if (preg_match ('#' . $this->bot['short'] . ' op (.*)', $msg, $arg))
  145. {
  146. $this->umode ($chan, $arg, '+o');
  147. }
  148. else if (preg_match ('#' . $this->bot['short'] . ' deop (.*)', $msg, $arg))
  149. {
  150. $this->umode ($chan, $arg, '-o');
  151. }
  152. else if (preg_match ('#' . $this->bot['short'] . ' voice (.*)', $msg, $arg))
  153. {
  154. $this->umode ($chan, $arg, '+v');
  155. }
  156. else if (preg_match ('#' . $this->bot['short'] . ' devoice (.*)', $msg, $arg))
  157. {
  158. $this->umode ($chan, $arg, '-v');
  159. }
  160. else if (preg_match ('#' . $this->bot['short'] . ' kick (.*)', $msg, $arg))
  161. {
  162. $this->kick ($chan, $arg);
  163. }
  164. else if (preg_match ('#' . $this->bot['short'] . ' ban (.*)', $msg, $arg))
  165. {
  166. $this->umode ($chan, $arg, '+b');
  167. }
  168. else if (preg_match ('#' . $this->bot['short'] . ' unban (.*)', $msg, $arg))
  169. {
  170. $this->umode ($chan, $arg, '-b');
  171. }
  172. else if (preg_match ('#' . $this->bot['short'] . ' settopic (.*)', $msg, $arg))
  173. {
  174. $this->setTopic ($chan, $newtopic);
  175. }
  176. else if (preg_match ('#' . $this->bot['short'] . ' join (.*)', $msg, $arg))
  177. {
  178. if (isset ($arg[1]))
  179. {
  180. $this->join ($arg[0], $arg[1]);
  181. }
  182. else
  183. {
  184. $this->join ($arg[0]);
  185. }
  186. }
  187. else if (preg_match ('#' . $this->bot['short'] . ' part (.*)', $msg, $arg))
  188. {
  189. if (isset ($arg[1]))
  190. {
  191. $this->part ($arg[0], $arg[1]);
  192. }
  193. else
  194. {
  195. $this->part ($arg[0]);
  196. }
  197. }
  198. }
  199. else
  200. {
  201. $this->message ('NOTICE', $nick, 'You are not allowed to use this command.');
  202. }
  203. }
  204. }
  205. }
  206. ?>

6 antwoorden

Gesponsorde links
Offline XenoX - 29/04/2005 21:59
Avatar van XenoX Gouden medailleGouden medaille

PHP expert
Je voert niks uit?
Offline zwobbel - 30/04/2005 10:25
Avatar van zwobbel PHP gevorderde "Je voert niks uit?"'$

Hoe bedoel je normaal zou deze script toch moetten connecten naar de channel op quakenet genaamd #mgevent
Uit deze channel zou ik deze bot zelf kunnen besturen als mijn zwobbel is dat ik ook heb toegewezen in het script.
Offline ikkedikke - 30/04/2005 11:13
Avatar van ikkedikke PHP expert dit is alleen de class die het kan, roep je em ook een keer aan?
Offline zwobbel - 30/04/2005 11:48
Avatar van zwobbel PHP gevorderde ja mar dan krijg ik een rec #2 error bij conn hoe komt dit?
Offline CelestialCelebi - 30/04/2005 11:50
Avatar van CelestialCelebi PHP gevorderde Omdat je verbinding een resource is.
Offline zwobbel - 30/04/2005 13:48
Avatar van zwobbel PHP gevorderde en dat betekent juist?
Kan ik dit voorkomen of is dit een gezond teken?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s