Advertisement
Guest User

Untitled

a guest
Feb 27th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.69 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. include './functions.php';
  14.  
  15. $guild_id = '334738421656584192';
  16.  
  17. $discord = new \Discord\Discord([
  18. 'token' => 'NDEzNzkwNjE1ODQ3OTYwNTc4.DWd-kg.heyST82ogNqqncqiiLaX7rlOMBM',
  19. ]);
  20.  
  21.  
  22. $message_queue = array();
  23. $count = 0;
  24.  
  25.  
  26. /**** Message Listener ****/
  27.  
  28. $discord->on('ready', function ($discord) use ($message_queue, $discord) {
  29.  
  30.  
  31. echo "Bot is ready.", PHP_EOL;
  32.  
  33. // Listen for events here
  34. $discord->on('message', function ($message) use ($message_queue) {
  35. echo "Recieved a message from {$message->author->username}: {$message->content}", PHP_EOL;
  36. switch($message->content)
  37. {
  38. case ".hello" :
  39. $message->channel->sendMessage("Salut {$message->author}");
  40. break;
  41. case ".logi" :
  42. $answer = " | Logistique \n\n__*Tarif et conditions*__ :\n\n";
  43. $answer .= "- *700 isk/m3*\n";
  44. $answer .= "- *30M* par contrat minimum et par tranche de 1B de valeur d'assets\n";
  45. $answer .= "- *100,000 m3* maximum par courrier";
  46. $answer .= "\n\nPlus d'informations dans #docs\n";
  47. $message->channel->sendMessage("{$message->author} {$answer}");
  48. break;
  49. case ".ping" :
  50.  
  51. /* Connexion à une base ODBC avec l'invocation de pilote */
  52. $dsn = 'mysql:dbname=discord;host=127.0.0.1';
  53. $user = 'allianceserver';
  54. $password = 'Sirius';
  55.  
  56. $dbh = new PDO($dsn, $user, $password);
  57.  
  58. try {
  59. $dbh = new PDO($dsn, $user, $password);
  60. } catch (PDOException $e) {
  61. echo 'DB Connexion failed : ' . $e->getMessage();
  62. }
  63.  
  64. $text = "pong";
  65. $guild = 334738421656584192;
  66. $channel = 415441330651791371;
  67.  
  68. $dbh->exec("INSERT INTO messages(text,channel,guild,sent) VALUES('$text','$channel','$guild','0')");
  69.  
  70. $message->channel->sendMessage($msg);
  71. break;
  72. }
  73.  
  74. if (strpos($message->content, '!update') !== false) {
  75. $userID = $message->author->id;
  76.  
  77. /* Connexion à une base ODBC avec l'invocation de pilote */
  78. $dsn = 'mysql:dbname=discord;host=127.0.0.1';
  79. $user = 'allianceserver';
  80. $password = 'Sirius';
  81.  
  82. $dbh = new PDO($dsn, $user, $password);
  83.  
  84. try {
  85. $dbh = new PDO($dsn, $user, $password);
  86. } catch (PDOException $e) {
  87. echo 'DB Connexion failed : ' . $e->getMessage();
  88. }
  89.  
  90. $query = $dbh->prepare("SELECT taskID FROM tasks WHERE userID=".$userID." AND sent = 4");
  91. $query->execute();
  92.  
  93. for($i=0; $row = $query->fetch(); $i++){
  94. $taskID = $row['taskID'];
  95. }
  96.  
  97. $dbh->exec("UPDATE tasks SET sent = 2 WHERE taskID=".$taskID);
  98.  
  99.  
  100. $msg = "Update requested ".$taskID." ".$userID."\n ----- \n";
  101.  
  102. //$message->channel->sendMessage($msg);
  103. }
  104.  
  105. if (strpos($message->content, '!auth') !== false) {
  106. $msg = "Registration key received \n ----- \n";
  107. $userID = $message->author->id;
  108. $msg .= "user : ".$message->author->username."\n";
  109. $msg .= "userID : ".$userID."\n ";
  110. $count = 0;
  111. $key = $message->content;
  112. $value = explode(" ",$key);
  113. $key = trim($key,' ');
  114. $key = (string)$value[1];
  115. $msg .= "key : ".$key."\n ";
  116.  
  117.  
  118. /* Connexion à une base ODBC avec l'invocation de pilote */
  119. $dsn = 'mysql:dbname=discord;host=127.0.0.1';
  120. $user = 'allianceserver';
  121. $password = 'Sirius';
  122.  
  123. $dbh = new PDO($dsn, $user, $password);
  124.  
  125. try {
  126. $dbh = new PDO($dsn, $user, $password);
  127. } catch (PDOException $e) {
  128. echo 'DB Connexion failed : ' . $e->getMessage();
  129. }
  130.  
  131. $query = $dbh->prepare("SELECT taskID, characterID FROM tasks WHERE authKey='".$key."' AND sent < 2");
  132. $query->execute();
  133.  
  134. for($i=0; $row = $query->fetch(); $i++){
  135. $taskID = $row['taskID'];
  136. $characterID = $row['characterID'];
  137. }
  138.  
  139. if($query->rowCount() > 0)
  140. {
  141. $dbh->exec("UPDATE tasks SET sent = 2 WHERE taskID=".$taskID);
  142. $dbh->exec("UPDATE tasks SET userID = ".$userID." WHERE taskID=".$taskID);
  143. $dbh->exec("UPDATE users SET discordID = ".$userID." WHERE characterID=".$characterID);
  144. $msg .= "\n ----- \n Update Task \n ----- \n";
  145. $msg .= "taskID : ".$taskID."\n ";
  146. $msg .= "characterID : ".$characterID."\n ";
  147. }
  148. else
  149. {
  150. $msg .= "\n ----- \n No task associated to key \n ----- \n";
  151. }
  152.  
  153. //$message->channel->sendMessage($msg);
  154. }
  155.  
  156. });
  157.  
  158. });
  159.  
  160.  
  161. /**** Message Queued Automation ****/
  162.  
  163. $PERIOD = 5; //seconds
  164.  
  165.  
  166. //I made a wrapper function so I don't need to reference $discord->loop everywhere,
  167. //but it's obviously not necessary.
  168. function AddLoop($tick, $func) { global $discord; $discord->loop->addPeriodicTimer($tick, $func); }
  169. function DoStuff() {
  170. global $discord;
  171.  
  172. /* Connexion à une base ODBC avec l'invocation de pilote */
  173. $dsn = 'mysql:dbname=discord;host=127.0.0.1';
  174. $user = 'allianceserver';
  175. $password = 'Sirius';
  176.  
  177. $dbh = new PDO($dsn, $user, $password);
  178.  
  179. try {
  180. $dbh = new PDO($dsn, $user, $password);
  181. } catch (PDOException $e) {
  182. echo 'DB Connexion failed : ' . $e->getMessage();
  183. }
  184.  
  185.  
  186. $sent=false;
  187. $query = $dbh->prepare("SELECT id,text,channel,guild FROM messages WHERE sent=0");
  188. $query->execute();
  189.  
  190. if($query->rowCount() > 0)
  191. {
  192. for($i=0; $row = $query->fetch(); $i++){
  193. $msg = $row['text'];
  194. $id = $row['id'];
  195. $dGuild = $row['guild'];
  196. $dChannel = $row['channel'];
  197. $dbh->exec("UPDATE messages SET sent=1 WHERE id=".$id);
  198. }
  199.  
  200. $guild = $discord->guilds->get('id', $dGuild);
  201. $channel = $guild->channels->get('id', $dChannel);
  202.  
  203. $channel->sendMessage(stripslashes(htmlspecialchars_decode($msg)));
  204. }
  205.  
  206. $query = $dbh->prepare("SELECT taskID, authKey, characterID FROM tasks WHERE sent=0");
  207. $query->execute();
  208.  
  209. if($query->rowCount() > 0)
  210. {
  211. for($i=0; $row = $query->fetch(); $i++){
  212. $taskID = $row['taskID'];
  213. $authKey = $row['authKey'];
  214. $characterID = $row['characterID'];
  215. $dbh->exec("UPDATE tasks SET sent=1 WHERE taskID=".$taskID);
  216. }
  217.  
  218. $dGuild = 334738421656584192;
  219.  
  220. /*
  221. bot = 415441330651791371
  222. pings = 361632885842771970
  223. */
  224.  
  225. $dChannel = 415441330651791371;
  226.  
  227. $guild = $discord->guilds->get('id', $dGuild);
  228. $channel = $guild->channels->get('id', $dChannel);
  229.  
  230. $msg = "new task received \n ------ \n TaskID : ".$taskID."\n authKey : ".$authKey."\n CharacterID : ".$characterID."\n";
  231.  
  232. //$member = $this->message->channel->guild->members->get("id", $userID);
  233.  
  234. /*$roles = $guild->roles;
  235.  
  236. foreach ($roles as $role) {
  237. $roleName = $role->name;
  238. if ($roleName == $this->roleName) {
  239. $member->addRole($role);
  240. $guild = $this->discord->guilds->get('id', $guildID);
  241. $guild->members->save($member);
  242. insertUser($this->db, $this->dbUser, $this->dbPass, $this->dbName, $userID, $charID, $eveName, 'corp');
  243. disableReg($this->db, $this->dbUser, $this->dbPass, $this->dbName, $code);
  244. $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");
  245. $this->logger->addInfo("auth: User authed and added to corp group " . $eveName);
  246. return null;
  247. }
  248. }*/
  249.  
  250. $channel->sendMessage($msg);
  251. }
  252.  
  253. $query = $dbh->prepare("SELECT taskID, authKey, characterID, userID FROM tasks WHERE sent=2");
  254. $query->execute();
  255.  
  256. if($query->rowCount() > 0)
  257. {
  258. $sent=true;
  259.  
  260. for($i=0; $row = $query->fetch(); $i++){
  261. $taskID = $row['taskID'];
  262. $authKey = $row['authKey'];
  263. $characterID = $row['characterID'];
  264. $userID = $row['userID'];
  265. $dbh->exec("UPDATE tasks SET sent=3 WHERE taskID=".$taskID);
  266. $dbh->exec("UPDATE users SET step=1 WHERE characterID=".$characterID);
  267. }
  268.  
  269. $query2 = $dbh->prepare("SELECT characterName, roleMask FROM users WHERE characterID=".$characterID);
  270. $query2->execute();
  271.  
  272. $characterName = "default";
  273. for($i=0; $row = $query2->fetch(); $i++){
  274. $characterName = $row['characterName'];
  275. $roleMask = $row['roleMask'];
  276. }
  277.  
  278. $dGuild = 334738421656584192;
  279.  
  280. /*
  281. bot = 415441330651791371
  282. pings = 361632885842771970
  283. */
  284.  
  285. $dChannel = 415441330651791371;
  286.  
  287. $guild = $discord->guilds->get('id', $dGuild);
  288. $channel = $guild->channels->get('id', $dChannel);
  289.  
  290. $guild = $discord->guilds->get('id', $dGuild);
  291. $member = $guild->members->get("id", $userID);
  292.  
  293. $characterName = (string)$characterName;
  294. $member->setNickname($characterName);
  295.  
  296. $roles = $guild->roles;
  297.  
  298. $group = 1;
  299. $pGroup = pow(2,$group);
  300. $ceo = (int)$pGroup & (int)$roleMask;
  301.  
  302. $group = 2;
  303. $pGroup = pow(2,$group);
  304. $director = (int)$pGroup & (int)$roleMask;
  305.  
  306. $group = 9;
  307. $pGroup = pow(2,$group);
  308. $manager = (int)$pGroup & (int)$roleMask;
  309.  
  310. $group = 4;
  311. $pGroup = pow(2,$group);
  312. $supervisor = (int)$pGroup & (int)$roleMask;
  313.  
  314. $group = 6;
  315. $pGroup = pow(2,$group);
  316. $chief = (int)$pGroup & (int)$roleMask;
  317.  
  318.  
  319.  
  320. foreach ($roles as $role) {
  321. //$msg .= $role->name."\n";
  322.  
  323. /* Groups
  324.  
  325. 0 : E.XIL 1
  326. 1 : CEO 2
  327. 2 : Director 4
  328. 3 : Administrator 8
  329. 4 : Supervisor 16
  330. 5 : Fleet Commander 32
  331. 6 : Chief of Staff 64
  332. 7 : Logistic 128
  333. 8 : Miner 256
  334. 9 : Manager 512
  335. 10: Squad Leader 1024
  336. */
  337.  
  338. if($role->name == "Les Exiles")
  339. {
  340. $ret = $member->addRole($role);
  341. $guild->members->save($member);
  342. }
  343.  
  344. if($ceo > 0 || $director > 0)
  345. {
  346. if($role->name == "Direction")
  347. {
  348. $ret = $member->addRole($role);
  349. //$guild->members->save($member);
  350. }
  351. }
  352.  
  353. if($manager > 0)
  354. {
  355. if($role->name == "Manager")
  356. {
  357. $ret = $member->addRole($role);
  358. //$guild->members->save($member);
  359. }
  360. }
  361.  
  362. if($supervisor > 0 || $chief > 0)
  363. {
  364. if($role->name == "Superviseur")
  365. {
  366. $ret = $member->addRole($role);
  367. //$guild->members->save($member);
  368. }
  369. }
  370.  
  371. $guild->members->save($member);
  372.  
  373. }
  374. $msg .= $characterName. " has been succesfully registered \n";
  375. //$msg .= $ceo." ".$director." ".$manager." ".$supervisor." ".$chief."\n";
  376.  
  377. $channel->sendMessage($msg);
  378.  
  379. }
  380.  
  381. if(!$sent)
  382. {
  383. $sent = true;
  384. $query = $dbh->prepare("SELECT taskID, authKey, characterID, userID FROM tasks WHERE sent=3");
  385. $query->execute();
  386.  
  387. if($query->rowCount() > 0)
  388. {
  389. for($i=0; $row = $query->fetch(); $i++){
  390. $taskID = $row['taskID'];
  391. $authKey = $row['authKey'];
  392. $characterID = $row['characterID'];
  393. $userID = $row['userID'];
  394. $dbh->exec("UPDATE tasks SET sent=4 WHERE taskID=".$taskID);
  395. }
  396.  
  397. $query2 = $dbh->prepare("SELECT characterName FROM users WHERE characterID=".$characterID);
  398. $query2->execute();
  399.  
  400. $characterName = "default";
  401. for($i=0; $row = $query2->fetch(); $i++){
  402. $characterName = $row['characterName'];
  403. }
  404.  
  405. $dGuild = 334738421656584192;
  406.  
  407. /*
  408. bot = 415441330651791371
  409. pings = 361632885842771970
  410. */
  411.  
  412. $dChannel = 415441330651791371;
  413.  
  414. $guild = $discord->guilds->get('id', $dGuild);
  415. $channel = $guild->channels->get('id', $dChannel);
  416.  
  417. $guild = $discord->guilds->get('id', $dGuild);
  418. $member = $guild->members->get("id", $userID);
  419.  
  420. $characterName = (string)$characterName;
  421. $member->setNickname($characterName);
  422.  
  423. $roles = $guild->roles;
  424.  
  425. $group = 1;
  426. $pGroup = pow(2,$group);
  427. $ceo = (int)$pGroup & (int)$roleMask;
  428.  
  429. $group = 2;
  430. $pGroup = pow(2,$group);
  431. $director = (int)$pGroup & (int)$roleMask;
  432.  
  433. $group = 9;
  434. $pGroup = pow(2,$group);
  435. $manager = (int)$pGroup & (int)$roleMask;
  436.  
  437. $group = 4;
  438. $pGroup = pow(2,$group);
  439. $supervisor = (int)$pGroup & (int)$roleMask;
  440.  
  441. $group = 6;
  442. $pGroup = pow(2,$group);
  443. $chief = (int)$pGroup & (int)$roleMask;
  444.  
  445.  
  446.  
  447. foreach ($roles as $role) {
  448. //$msg .= $role->name."\n";
  449.  
  450. /* Groups
  451.  
  452. 0 : E.XIL 1
  453. 1 : CEO 2
  454. 2 : Director 4
  455. 3 : Administrator 8
  456. 4 : Supervisor 16
  457. 5 : Fleet Commander 32
  458. 6 : Chief of Staff 64
  459. 7 : Logistic 128
  460. 8 : Miner 256
  461. 9 : Manager 512
  462. 10: Squad Leader 1024
  463. */
  464.  
  465. if($role->name == "Les Exiles")
  466. {
  467. $ret = $member->addRole($role);
  468. $guild->members->save($member);
  469. }
  470.  
  471. if($ceo > 0 || $director > 0)
  472. {
  473. if($role->name == "Direction")
  474. {
  475. $ret = $member->addRole($role);
  476. //$guild->members->save($member);
  477. }
  478. }
  479.  
  480. if($manager > 0)
  481. {
  482. if($role->name == "Manager")
  483. {
  484. $ret = $member->addRole($role);
  485. //$guild->members->save($member);
  486. }
  487. }
  488.  
  489. if($supervisor > 0 || $chief > 0)
  490. {
  491. if($role->name == "Superviseur")
  492. {
  493. $ret = $member->addRole($role);
  494. //$guild->members->save($member);
  495. }
  496. }
  497.  
  498. $guild->members->save($member);
  499.  
  500. }
  501.  
  502. $msg .= $characterName. " has been succesfully verified \n";
  503.  
  504. $channel->sendMessage($msg);
  505.  
  506. }
  507. }
  508.  
  509. }
  510.  
  511. AddLoop($PERIOD, 'DoStuff');
  512.  
  513. $discord->run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement