Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use Discord\Discord;
- use Discord\Parts\User\Game;
- use Discord\Parts\Channel\Message;
- use Discord\Parts\User\User;
- use Discord\Cache\Cache;
- use Discord\Parts\Channel\Channel;
- use Discord\Parts\Part;
- use React\Promise\Deferred;
- include __DIR__.'/vendor/autoload.php';
- $guild_id = '334738421656584192';
- $discord = new \Discord\Discord([
- 'token' => 'NDEzNzkwNjE1ODQ3OTYwNTc4.DWd-kg.heyST82ogNqqncqiiLaX7rlOMBM',
- ]);
- $message_queue = array();
- $count = 0;
- /**** Message Listener ****/
- $discord->on('ready', function ($discord) use ($message_queue, $discord) {
- echo "Bot is ready.", PHP_EOL;
- // Listen for events here
- $discord->on('message', function ($message) use ($message_queue) {
- echo "Recieved a message from {$message->author->username}: {$message->content}", PHP_EOL;
- switch($message->content)
- {
- case ".hello" :
- $message->channel->sendMessage("Salut {$message->author}");
- break;
- case ".logi" :
- $answer = " | Logistique \n\n__*Tarif et conditions*__ :\n\n";
- $answer .= "- *700 isk/m3*\n";
- $answer .= "- *30M* par contrat minimum et par tranche de 1B de valeur d'assets\n";
- $answer .= "- *100,000 m3* maximum par courrier";
- $answer .= "\n\nPlus d'informations dans #docs\n";
- $message->channel->sendMessage("{$message->author} {$answer}");
- break;
- case ".ping" :
- /* Connexion à une base ODBC avec l'invocation de pilote */
- $dsn = 'mysql:dbname=discord;host=127.0.0.1';
- $user = 'allianceserver';
- $password = 'Sirius';
- $dbh = new PDO($dsn, $user, $password);
- try {
- $dbh = new PDO($dsn, $user, $password);
- } catch (PDOException $e) {
- echo 'DB Connexion failed : ' . $e->getMessage();
- }
- $text = "pong";
- $guild = 334738421656584192;
- $channel = 415441330651791371;
- $dbh->exec("INSERT INTO messages(text,channel,guild,sent) VALUES('$text','$channel','$guild','0')");
- $message->channel->sendMessage($msg);
- break;
- }
- });
- });
- /**** Message Queued Automation ****/
- $PERIOD = 5; //seconds
- //I made a wrapper function so I don't need to reference $discord->loop everywhere,
- //but it's obviously not necessary.
- function AddLoop($tick, $func) { global $discord; $discord->loop->addPeriodicTimer($tick, $func); }
- function DoStuff() {
- global $discord;
- /* Connexion à une base ODBC avec l'invocation de pilote */
- $dsn = 'mysql:dbname=discord;host=127.0.0.1';
- $user = 'allianceserver';
- $password = 'Sirius';
- $dbh = new PDO($dsn, $user, $password);
- try {
- $dbh = new PDO($dsn, $user, $password);
- } catch (PDOException $e) {
- echo 'DB Connexion failed : ' . $e->getMessage();
- }
- $query = $dbh->prepare("SELECT id,text,channel,guild FROM messages WHERE sent=0");
- $query->execute();
- if($query->rowCount() > 0)
- {
- for($i=0; $row = $query->fetch(); $i++){
- $msg = $row['text'];
- $id = $row['id'];
- $dGuild = $row['guild'];
- $dChannel = $row['channel'];
- $dbh->exec("UPDATE messages SET sent=1 WHERE id=".$id);
- }
- $guild = $discord->guilds->get('id', $dGuild);
- $channel = $guild->channels->get('id', $dChannel);
- $channel->sendMessage($msg);
- }
- }
- AddLoop($PERIOD, 'DoStuff');
- $discord->run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement