Advertisement
Guest User

CALLBACK CREW

a guest
Jun 20th, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. <?php
  2. /**
  3. * @author Martin Galovic (galovik) <galovikcode@gmail.com>
  4. */
  5.  
  6. require_once(__DIR__.'/../lib/Rcon.php');
  7.  
  8. use thedudeguy\Rcon;
  9.  
  10. $parse = ['action', 'method', 'price', 'currency', 'days', 'variables', 'sms_text', 'key', 'code'];
  11. foreach ($parse as $p) {
  12. $_GET[$p] = isset($_GET[$p]) ? $_GET[$p] : null;
  13. }
  14. $ip = $_SERVER['REMOTE_ADDR'];
  15.  
  16. // ===== NASTAVENIA ===== //
  17. $expectedKey = 'uvip22'; // Sem nastavte kľúč, ktorý ste použili pri pridávaní VIP URL callback-u
  18.  
  19. // Rcon: nastavte v server.properties
  20. $rconHost = '******'; // Rcon Host
  21. $rconPort = ******; // Rcon port ---) UDAJE SU SPRAVNE NASTAVENE :)
  22. $rconPassword = '******'; // Rcon properties
  23.  
  24. // ===== KONIEC NASTAVENI =====
  25.  
  26. /**
  27. * Akcia:
  28. * @var string
  29. * - 'activate' #Aktivácia VIP - volá sa pri úspešnom zakúpení a zaplatení VIP
  30. * - 'deactivate' #Deaktivácia VIP - volá sa pri vypršaní VIP
  31. */
  32. $action = $_GET['action'];
  33.  
  34. /**
  35. * MetĂłda:
  36. * @var string
  37. * - 'smssk' #Platba pomocou SMS zo Slovenska
  38. * - 'smscz' #Platba pomocou SMS z ÄŚeskej republiky
  39. * - 'paypal' #Platba pomocou PayPal-u
  40. */
  41. $method = $_GET['method'];
  42.  
  43. /**
  44. * Cena VIP:
  45. * @var float
  46. */
  47. $price = $_GET['price'];
  48.  
  49. /**
  50. * Mena:
  51. * @var string
  52. * - 'eur' - euro (EUR)
  53. * - 'czk' - česká koruna (Kč)
  54. */
  55. $currency = $_GET['currency'];
  56.  
  57. /**
  58. * Počet dní na koľko má byť VIP aktívne:
  59. * @var int
  60. */
  61. $days = $_GET['days'];
  62.  
  63. /**
  64. * Premenné:
  65. * @var array
  66. * nazov_premennej => hodnota
  67. * Napr.: nick => galovik
  68. */
  69. $variables = $_GET['variables'];
  70.  
  71. /**
  72. * Text odoslanej SMS:
  73. * @var string
  74. * Napr. SERVER PRO 57714 1 vip galovik
  75. */
  76. $smsText = $_GET['sms_text'];
  77.  
  78. /**
  79. * Kľúč, ktorý ste nastavili pri pridávaní callbacku
  80. * @var string
  81. */
  82. $key = $_GET['key'];
  83.  
  84. /**
  85. * Unikátny kód pre VIP bránu, ktorú ste vytvorili
  86. * @var string
  87. */
  88. $code = $_GET['code'];
  89.  
  90. // Validácia
  91. if ($key !== $expectedKey) exit("Spatny kluc");
  92.  
  93. $commands = array(); // for older PHP :/
  94.  
  95. // ================ NASTAVENIE PRIKAZOV ================ //
  96. if ($action == 'activate') {
  97. // ===== AKTIVACIA ===== //
  98. switch ($code) {
  99. case 'vipsk':
  100. $commands[] = 'bdispatch all pex user :nick group add VIP';
  101. $commands[] = 'bdispatch bungee alert &e:nick &6si zakoupil &a&lVIP&6, Dekujeme!';
  102. $commands[] = 'bdispatch all pex reload';
  103. $commands[] = 'bdispatch all nte reload file';
  104. break;
  105. case 'ultravipsk':
  106. $commands[] = 'bdispatch lobby-1 say FUNGUJE.';
  107. $commands[] = 'bdispatch all pex user :nick group add UltraVIP';
  108. $commands[] = 'bdispatch bungee alert &e:nick &6si zakoupil &b&lULTRAVIP&6, Dekujeme!';
  109. $commands[] = 'bdispatch all pex reload';
  110. $commands[] = 'bdispatch all nte reload file';
  111. break;
  112. default:
  113. exit("Spatny kod");
  114. break;
  115. }
  116. }
  117. elseif ($action == 'deactivate') {
  118. // ===== DEAKTIVACIA ===== //
  119. switch ($code) {
  120. case 'vip':
  121. $commands[] = 'bdispatch all pex user :nick group remove VIP';
  122. $commands[] = 'bdispatch all pex reload';
  123. $commands[] = 'bdispatch all nte reload file';
  124. break;
  125. case 'ultravipsk':
  126. $commands[] = 'pex user :nick group set default';
  127. break;
  128. default:
  129. exit("Spatny kod");
  130. break;
  131. }
  132. }
  133. else {
  134. exit("Spatna akce");
  135. }
  136. // ================ KONIEC NASTAVENIA PRIKAZOV ================ //
  137.  
  138. // Call rcon commands
  139.  
  140. $rcon = new Rcon($rconHost, $rconPort, $rconPassword);
  141.  
  142. if (!$rcon->connect()) exit("Nepodarilo se pripojit k Rconu");
  143.  
  144. if (count($commands)) {
  145.  
  146. foreach ($commands as $command) {
  147. $command = command($command, $variables);
  148. $rcon->send_command($command);
  149. }
  150.  
  151. }
  152.  
  153. function command($command = '', $variables = []) {
  154. foreach ($variables as $key => $value) {
  155. $command = str_replace(':'.$key, $value, $command);
  156. }
  157. return $command;
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement