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';
- include './functions.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;
- }
- if (strpos($message->content, '!update') !== false) {
- $userID = $message->author->id;
- /* 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 taskID FROM tasks WHERE userID=".$userID." AND sent = 4");
- $query->execute();
- for($i=0; $row = $query->fetch(); $i++){
- $taskID = $row['taskID'];
- }
- $dbh->exec("UPDATE tasks SET sent = 2 WHERE taskID=".$taskID);
- $msg = "Update requested ".$taskID." ".$userID."\n ----- \n";
- //$message->channel->sendMessage($msg);
- }
- if (strpos($message->content, '!auth') !== false) {
- $msg = "Registration key received \n ----- \n";
- $userID = $message->author->id;
- $msg .= "user : ".$message->author->username."\n";
- $msg .= "userID : ".$userID."\n ";
- $count = 0;
- $key = $message->content;
- $value = explode(" ",$key);
- $key = trim($key,' ');
- $key = (string)$value[1];
- $msg .= "key : ".$key."\n ";
- /* 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 taskID, characterID FROM tasks WHERE authKey='".$key."' AND sent < 2");
- $query->execute();
- for($i=0; $row = $query->fetch(); $i++){
- $taskID = $row['taskID'];
- $characterID = $row['characterID'];
- }
- if($query->rowCount() > 0)
- {
- $dbh->exec("UPDATE tasks SET sent = 2 WHERE taskID=".$taskID);
- $dbh->exec("UPDATE tasks SET userID = ".$userID." WHERE taskID=".$taskID);
- $dbh->exec("UPDATE users SET discordID = ".$userID." WHERE characterID=".$characterID);
- $msg .= "\n ----- \n Update Task \n ----- \n";
- $msg .= "taskID : ".$taskID."\n ";
- $msg .= "characterID : ".$characterID."\n ";
- }
- else
- {
- $msg .= "\n ----- \n No task associated to key \n ----- \n";
- }
- //$message->channel->sendMessage($msg);
- }
- });
- });
- /**** 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();
- }
- $sent=false;
- $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(stripslashes(htmlspecialchars_decode($msg)));
- }
- $query = $dbh->prepare("SELECT taskID, authKey, characterID FROM tasks WHERE sent=0");
- $query->execute();
- if($query->rowCount() > 0)
- {
- for($i=0; $row = $query->fetch(); $i++){
- $taskID = $row['taskID'];
- $authKey = $row['authKey'];
- $characterID = $row['characterID'];
- $dbh->exec("UPDATE tasks SET sent=1 WHERE taskID=".$taskID);
- }
- $dGuild = 334738421656584192;
- /*
- bot = 415441330651791371
- pings = 361632885842771970
- */
- $dChannel = 415441330651791371;
- $guild = $discord->guilds->get('id', $dGuild);
- $channel = $guild->channels->get('id', $dChannel);
- $msg = "new task received \n ------ \n TaskID : ".$taskID."\n authKey : ".$authKey."\n CharacterID : ".$characterID."\n";
- //$member = $this->message->channel->guild->members->get("id", $userID);
- /*$roles = $guild->roles;
- foreach ($roles as $role) {
- $roleName = $role->name;
- if ($roleName == $this->roleName) {
- $member->addRole($role);
- $guild = $this->discord->guilds->get('id', $guildID);
- $guild->members->save($member);
- insertUser($this->db, $this->dbUser, $this->dbPass, $this->dbName, $userID, $charID, $eveName, 'corp');
- disableReg($this->db, $this->dbUser, $this->dbPass, $this->dbName, $code);
- $this->message->reply(":white_check_mark: **Success:** You have now been added to the " . $this->roleName . " group. To get more roles, talk to the CEO / Directors");
- $this->logger->addInfo("auth: User authed and added to corp group " . $eveName);
- return null;
- }
- }*/
- $channel->sendMessage($msg);
- }
- $query = $dbh->prepare("SELECT taskID, authKey, characterID, userID FROM tasks WHERE sent=2");
- $query->execute();
- if($query->rowCount() > 0)
- {
- $sent=true;
- for($i=0; $row = $query->fetch(); $i++){
- $taskID = $row['taskID'];
- $authKey = $row['authKey'];
- $characterID = $row['characterID'];
- $userID = $row['userID'];
- $dbh->exec("UPDATE tasks SET sent=3 WHERE taskID=".$taskID);
- $dbh->exec("UPDATE users SET step=1 WHERE characterID=".$characterID);
- }
- $query2 = $dbh->prepare("SELECT characterName, roleMask FROM users WHERE characterID=".$characterID);
- $query2->execute();
- $characterName = "default";
- for($i=0; $row = $query2->fetch(); $i++){
- $characterName = $row['characterName'];
- $roleMask = $row['roleMask'];
- }
- $dGuild = 334738421656584192;
- /*
- bot = 415441330651791371
- pings = 361632885842771970
- */
- $dChannel = 415441330651791371;
- $guild = $discord->guilds->get('id', $dGuild);
- $channel = $guild->channels->get('id', $dChannel);
- $guild = $discord->guilds->get('id', $dGuild);
- $member = $guild->members->get("id", $userID);
- $characterName = (string)$characterName;
- $member->setNickname($characterName);
- $roles = $guild->roles;
- $group = 1;
- $pGroup = pow(2,$group);
- $ceo = (int)$pGroup & (int)$roleMask;
- $group = 2;
- $pGroup = pow(2,$group);
- $director = (int)$pGroup & (int)$roleMask;
- $group = 9;
- $pGroup = pow(2,$group);
- $manager = (int)$pGroup & (int)$roleMask;
- $group = 4;
- $pGroup = pow(2,$group);
- $supervisor = (int)$pGroup & (int)$roleMask;
- $group = 6;
- $pGroup = pow(2,$group);
- $chief = (int)$pGroup & (int)$roleMask;
- foreach ($roles as $role) {
- //$msg .= $role->name."\n";
- /* Groups
- 0 : E.XIL 1
- 1 : CEO 2
- 2 : Director 4
- 3 : Administrator 8
- 4 : Supervisor 16
- 5 : Fleet Commander 32
- 6 : Chief of Staff 64
- 7 : Logistic 128
- 8 : Miner 256
- 9 : Manager 512
- 10: Squad Leader 1024
- */
- if($role->name == "Les Exiles")
- {
- $ret = $member->addRole($role);
- $guild->members->save($member);
- }
- if($ceo > 0 || $director > 0)
- {
- if($role->name == "Direction")
- {
- $ret = $member->addRole($role);
- //$guild->members->save($member);
- }
- }
- if($manager > 0)
- {
- if($role->name == "Manager")
- {
- $ret = $member->addRole($role);
- //$guild->members->save($member);
- }
- }
- if($supervisor > 0 || $chief > 0)
- {
- if($role->name == "Superviseur")
- {
- $ret = $member->addRole($role);
- //$guild->members->save($member);
- }
- }
- $guild->members->save($member);
- }
- $msg .= $characterName. " has been succesfully registered \n";
- //$msg .= $ceo." ".$director." ".$manager." ".$supervisor." ".$chief."\n";
- $channel->sendMessage($msg);
- }
- if(!$sent)
- {
- $sent = true;
- $query = $dbh->prepare("SELECT taskID, authKey, characterID, userID FROM tasks WHERE sent=3");
- $query->execute();
- if($query->rowCount() > 0)
- {
- for($i=0; $row = $query->fetch(); $i++){
- $taskID = $row['taskID'];
- $authKey = $row['authKey'];
- $characterID = $row['characterID'];
- $userID = $row['userID'];
- $dbh->exec("UPDATE tasks SET sent=4 WHERE taskID=".$taskID);
- }
- $query2 = $dbh->prepare("SELECT characterName FROM users WHERE characterID=".$characterID);
- $query2->execute();
- $characterName = "default";
- for($i=0; $row = $query2->fetch(); $i++){
- $characterName = $row['characterName'];
- }
- $dGuild = 334738421656584192;
- /*
- bot = 415441330651791371
- pings = 361632885842771970
- */
- $dChannel = 415441330651791371;
- $guild = $discord->guilds->get('id', $dGuild);
- $channel = $guild->channels->get('id', $dChannel);
- $guild = $discord->guilds->get('id', $dGuild);
- $member = $guild->members->get("id", $userID);
- $characterName = (string)$characterName;
- $member->setNickname($characterName);
- $roles = $guild->roles;
- $group = 1;
- $pGroup = pow(2,$group);
- $ceo = (int)$pGroup & (int)$roleMask;
- $group = 2;
- $pGroup = pow(2,$group);
- $director = (int)$pGroup & (int)$roleMask;
- $group = 9;
- $pGroup = pow(2,$group);
- $manager = (int)$pGroup & (int)$roleMask;
- $group = 4;
- $pGroup = pow(2,$group);
- $supervisor = (int)$pGroup & (int)$roleMask;
- $group = 6;
- $pGroup = pow(2,$group);
- $chief = (int)$pGroup & (int)$roleMask;
- foreach ($roles as $role) {
- //$msg .= $role->name."\n";
- /* Groups
- 0 : E.XIL 1
- 1 : CEO 2
- 2 : Director 4
- 3 : Administrator 8
- 4 : Supervisor 16
- 5 : Fleet Commander 32
- 6 : Chief of Staff 64
- 7 : Logistic 128
- 8 : Miner 256
- 9 : Manager 512
- 10: Squad Leader 1024
- */
- if($role->name == "Les Exiles")
- {
- $ret = $member->addRole($role);
- $guild->members->save($member);
- }
- if($ceo > 0 || $director > 0)
- {
- if($role->name == "Direction")
- {
- $ret = $member->addRole($role);
- //$guild->members->save($member);
- }
- }
- if($manager > 0)
- {
- if($role->name == "Manager")
- {
- $ret = $member->addRole($role);
- //$guild->members->save($member);
- }
- }
- if($supervisor > 0 || $chief > 0)
- {
- if($role->name == "Superviseur")
- {
- $ret = $member->addRole($role);
- //$guild->members->save($member);
- }
- }
- $guild->members->save($member);
- }
- $msg .= $characterName. " has been succesfully verified \n";
- $channel->sendMessage($msg);
- }
- }
- }
- AddLoop($PERIOD, 'DoStuff');
- $discord->run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement