Advertisement
Guest User

Untitled

a guest
Feb 20th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. <?php
  2.  
  3. use Discord\Discord;
  4. use Discord\Parts\User\Game;
  5. use Discord\Parts\Channel\Message;
  6. use Discord\Parts\User\User;
  7. use Discord\Cache\Cache;
  8. use Discord\Parts\Channel\Channel;
  9. use Discord\Parts\Part;
  10. use React\Promise\Deferred;
  11.  
  12. include __DIR__.'/vendor/autoload.php';
  13.  
  14. $guild_id = '334738421656584192';
  15.  
  16. $discord = new \Discord\Discord([
  17. 'token' => 'NDEzNzkwNjE1ODQ3OTYwNTc4.DWd-kg.heyST82ogNqqncqiiLaX7rlOMBM',
  18. ]);
  19.  
  20.  
  21. $message_queue = array();
  22. $count = 0;
  23.  
  24.  
  25. /**** Message Listener ****/
  26.  
  27. $discord->on('ready', function ($discord) use ($message_queue, $discord) {
  28.  
  29.  
  30. echo "Bot is ready.", PHP_EOL;
  31.  
  32. // Listen for events here
  33. $discord->on('message', function ($message) use ($message_queue) {
  34. echo "Recieved a message from {$message->author->username}: {$message->content}", PHP_EOL;
  35. switch($message->content)
  36. {
  37. case ".hello" :
  38. $message->channel->sendMessage("Salut {$message->author}");
  39. break;
  40. case ".logi" :
  41. $answer = " | Logistique \n\n__*Tarif et conditions*__ :\n\n";
  42. $answer .= "- *700 isk/m3*\n";
  43. $answer .= "- *30M* par contrat minimum et par tranche de 1B de valeur d'assets\n";
  44. $answer .= "- *100,000 m3* maximum par courrier";
  45. $answer .= "\n\nPlus d'informations dans #docs\n";
  46. $message->channel->sendMessage("{$message->author} {$answer}");
  47. break;
  48. case ".ping" :
  49.  
  50. /* Connexion à une base ODBC avec l'invocation de pilote */
  51. $dsn = 'mysql:dbname=discord;host=127.0.0.1';
  52. $user = 'allianceserver';
  53. $password = 'Sirius';
  54.  
  55. $dbh = new PDO($dsn, $user, $password);
  56.  
  57. try {
  58. $dbh = new PDO($dsn, $user, $password);
  59. } catch (PDOException $e) {
  60. echo 'DB Connexion failed : ' . $e->getMessage();
  61. }
  62.  
  63. $text = "pong";
  64. $guild = 334738421656584192;
  65. $channel = 415441330651791371;
  66.  
  67. $dbh->exec("INSERT INTO messages(text,channel,guild,sent) VALUES('$text','$channel','$guild','0')");
  68.  
  69. $message->channel->sendMessage($msg);
  70. break;
  71. }
  72.  
  73. });
  74.  
  75. });
  76.  
  77.  
  78. /**** Message Queued Automation ****/
  79.  
  80. $PERIOD = 5; //seconds
  81.  
  82.  
  83. //I made a wrapper function so I don't need to reference $discord->loop everywhere,
  84. //but it's obviously not necessary.
  85. function AddLoop($tick, $func) { global $discord; $discord->loop->addPeriodicTimer($tick, $func); }
  86. function DoStuff() {
  87. global $discord;
  88.  
  89. /* Connexion à une base ODBC avec l'invocation de pilote */
  90. $dsn = 'mysql:dbname=discord;host=127.0.0.1';
  91. $user = 'allianceserver';
  92. $password = 'Sirius';
  93.  
  94. $dbh = new PDO($dsn, $user, $password);
  95.  
  96. try {
  97. $dbh = new PDO($dsn, $user, $password);
  98. } catch (PDOException $e) {
  99. echo 'DB Connexion failed : ' . $e->getMessage();
  100. }
  101.  
  102. $query = $dbh->prepare("SELECT id,text,channel,guild FROM messages WHERE sent=0");
  103. $query->execute();
  104.  
  105. if($query->rowCount() > 0)
  106. {
  107. for($i=0; $row = $query->fetch(); $i++){
  108. $msg = $row['text'];
  109. $id = $row['id'];
  110. $dGuild = $row['guild'];
  111. $dChannel = $row['channel'];
  112. $dbh->exec("UPDATE messages SET sent=1 WHERE id=".$id);
  113. }
  114.  
  115. $guild = $discord->guilds->get('id', $dGuild);
  116. $channel = $guild->channels->get('id', $dChannel);
  117.  
  118. $channel->sendMessage($msg);
  119. }
  120.  
  121. }
  122.  
  123. AddLoop($PERIOD, 'DoStuff');
  124.  
  125. $discord->run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement