Guest User

Untitled

a guest
Dec 11th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4. CheckVIP() => Comprueba los usuarios a los que se les ha terminado el VIP
  5. RemoveVIP(usuario,dias conectado) => Le quita a un usuario el rango VIP y le pone Novato/Veterano
  6. AddVIP(usuario,dias vip) => Le da a un usuario el status de VIP
  7.  
  8. Tambien hay una base de datos SQLite (vipdays.db) que contiene los dias totales que ha contratado un usuario (promociones?)
  9. y el tiempo cuando se acaba el VIP, para quitarlo automaticamente
  10.  
  11. */
  12.  
  13.  
  14.  
  15.  
  16. /* Configuracion del servidor */
  17. $bukkit_server = "duendedreams.homelinux.com";
  18. $bukkit_password = "1234";
  19. $world_name = "mesp"; //No usado
  20.  
  21.  
  22. function CheckVIP(){
  23.  
  24. if(!file_exists("./vipdays.db")){
  25. $db = new PDO("sqlite:./vipdays.db");
  26. $db->exec("CREATE TABLE vipDays (user TEXT UNIQUE NOT NULL PRIMARY KEY, totalDays INTEGER NOT NULL, endVip TIMESTAMP NOT NULL);");
  27. }else{
  28. $db = new PDO("sqlite:./vipdays.db");
  29. }
  30. $link = mysql_connect("localhost", "root", "**********************"); //Poner la contraseña
  31. mysql_select_db("minecraft", $link);
  32. $users=$db->exec("SELECT * FROM vipDays WHERE endVip<=".time().";");
  33. while($user=$users->fetch()){
  34. $days_logged_in = mysql_fetch_array(mysql_query("SELECT count(distinct date) as `days` FROM logins WHERE user='".$user."' LIMIT 1;", $link));
  35. RemoveVIP($user,$days_logged_in);
  36. }
  37. mysql_close($link);
  38. unset($link);
  39. }
  40.  
  41. function RemoveVIP($user,$days_logged_in){
  42. global $bukkit_server,$bukkit_password,$world_name;
  43.  
  44. $user = addslashes(stripslashes($user));
  45. if($sock = socket_create(AF_INET, SOCK_STREAM, 0)){
  46. if($succ = socket_connect($sock, $bukkit_server, 4445)){
  47. socket_write($sock, $command = md5($bukkit_password)."<Password>", strlen($command) + 1);
  48. socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents remove Vip;", strlen($command) + 1);
  49. if($days_logged_in<30){
  50. socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents add Novato;", strlen($command) + 1);
  51. }else{
  52. socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents add Veterano;", strlen($command) + 1);
  53. }
  54. socket_close($sock);
  55. return true;
  56. }
  57. }
  58. return false;
  59. }
  60.  
  61. function AddVIP($user,$days){
  62. global $bukkit_server,$bukkit_password,$world_name;
  63.  
  64. $user = addslashes(stripslashes($user));
  65. $days++; //El dia gratis que se da
  66.  
  67. if(!file_exists("./vipdays.db")){
  68. $db = new PDO("sqlite:./vipdays.db");
  69. $db->exec("CREATE TABLE vipDays (user TEXT UNIQUE NOT NULL PRIMARY KEY, totalDays INTEGER NOT NULL, endVip TIMESTAMP NOT NULL);");
  70. }else{
  71. $db = new PDO("sqlite:./vipdays.db");
  72. }
  73.  
  74. if($sock = socket_create(AF_INET, SOCK_STREAM, 0)){
  75. if($succ = socket_connect($sock, $bukkit_server, 4445)){
  76. socket_write($sock, $command = md5($bukkit_password)."<Password>", strlen($command) + 1);
  77. /* Da igual si se quita Veterano y Novato a la vez, asi que no compruebo nada aqui */
  78. socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents remove Novato;", strlen($command) + 1);
  79. socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents remove Veterano;", strlen($command) + 1);
  80. socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents add Vip;", strlen($command) + 1);
  81. $userdb=$db->exec("SELECT totalDays,endVip FROM vipDays WHERE user='".$user."' LIMIT 1;");
  82. if(!is_object($userdb)){
  83. $db->exec("INSERT INTO vipDays VALUES (".$user.",".$days.",".(time()+$days*3600*24).");");
  84. }else{
  85. $userdb=$userdb->fetch();
  86. $userdb["totalDays"]+=$days;
  87. if($userdb["endVip"]>time()){
  88. $userdb["endVip"]+=$days*3600*24;
  89. }else{
  90. $userdb["endVip"]=time()+$days*3600*24;
  91. }
  92. $db->exec("UPDATE vipDays SET totalDays=".$userdb["totalDays"].", endVip=".$userdb["endVip"]." WHERE user='".$user."';");
  93. }
  94. socket_write($sock, $command = "/Chatcolor-yellow:".$user."/Chatcolor-gray: es ahora VIP", strlen($command) + 1);
  95. socket_close($sock);
  96. return true;
  97. }
  98. }
  99. return false;
  100. }
  101.  
  102. ?>
Add Comment
Please, Sign In to add comment