Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- CheckVIP() => Comprueba los usuarios a los que se les ha terminado el VIP
- RemoveVIP(usuario,dias conectado) => Le quita a un usuario el rango VIP y le pone Novato/Veterano
- AddVIP(usuario,dias vip) => Le da a un usuario el status de VIP
- Tambien hay una base de datos SQLite (vipdays.db) que contiene los dias totales que ha contratado un usuario (promociones?)
- y el tiempo cuando se acaba el VIP, para quitarlo automaticamente
- */
- /* Configuracion del servidor */
- $bukkit_server = "duendedreams.homelinux.com";
- $bukkit_password = "1234";
- $world_name = "mesp"; //No usado
- function CheckVIP(){
- if(!file_exists("./vipdays.db")){
- $db = new PDO("sqlite:./vipdays.db");
- $db->exec("CREATE TABLE vipDays (user TEXT UNIQUE NOT NULL PRIMARY KEY, totalDays INTEGER NOT NULL, endVip TIMESTAMP NOT NULL);");
- }else{
- $db = new PDO("sqlite:./vipdays.db");
- }
- $link = mysql_connect("localhost", "root", "**********************"); //Poner la contraseña
- mysql_select_db("minecraft", $link);
- $users=$db->exec("SELECT * FROM vipDays WHERE endVip<=".time().";");
- while($user=$users->fetch()){
- $days_logged_in = mysql_fetch_array(mysql_query("SELECT count(distinct date) as `days` FROM logins WHERE user='".$user."' LIMIT 1;", $link));
- RemoveVIP($user,$days_logged_in);
- }
- mysql_close($link);
- unset($link);
- }
- function RemoveVIP($user,$days_logged_in){
- global $bukkit_server,$bukkit_password,$world_name;
- $user = addslashes(stripslashes($user));
- if($sock = socket_create(AF_INET, SOCK_STREAM, 0)){
- if($succ = socket_connect($sock, $bukkit_server, 4445)){
- socket_write($sock, $command = md5($bukkit_password)."<Password>", strlen($command) + 1);
- socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents remove Vip;", strlen($command) + 1);
- if($days_logged_in<30){
- socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents add Novato;", strlen($command) + 1);
- }else{
- socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents add Veterano;", strlen($command) + 1);
- }
- socket_close($sock);
- return true;
- }
- }
- return false;
- }
- function AddVIP($user,$days){
- global $bukkit_server,$bukkit_password,$world_name;
- $user = addslashes(stripslashes($user));
- $days++; //El dia gratis que se da
- if(!file_exists("./vipdays.db")){
- $db = new PDO("sqlite:./vipdays.db");
- $db->exec("CREATE TABLE vipDays (user TEXT UNIQUE NOT NULL PRIMARY KEY, totalDays INTEGER NOT NULL, endVip TIMESTAMP NOT NULL);");
- }else{
- $db = new PDO("sqlite:./vipdays.db");
- }
- if($sock = socket_create(AF_INET, SOCK_STREAM, 0)){
- if($succ = socket_connect($sock, $bukkit_server, 4445)){
- socket_write($sock, $command = md5($bukkit_password)."<Password>", strlen($command) + 1);
- /* Da igual si se quita Veterano y Novato a la vez, asi que no compruebo nada aqui */
- socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents remove Novato;", strlen($command) + 1);
- socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents remove Veterano;", strlen($command) + 1);
- socket_write($sock, $command = "/Command/ExecuteConsoleCommand:pr ".$user." parents add Vip;", strlen($command) + 1);
- $userdb=$db->exec("SELECT totalDays,endVip FROM vipDays WHERE user='".$user."' LIMIT 1;");
- if(!is_object($userdb)){
- $db->exec("INSERT INTO vipDays VALUES (".$user.",".$days.",".(time()+$days*3600*24).");");
- }else{
- $userdb=$userdb->fetch();
- $userdb["totalDays"]+=$days;
- if($userdb["endVip"]>time()){
- $userdb["endVip"]+=$days*3600*24;
- }else{
- $userdb["endVip"]=time()+$days*3600*24;
- }
- $db->exec("UPDATE vipDays SET totalDays=".$userdb["totalDays"].", endVip=".$userdb["endVip"]." WHERE user='".$user."';");
- }
- socket_write($sock, $command = "/Chatcolor-yellow:".$user."/Chatcolor-gray: es ahora VIP", strlen($command) + 1);
- socket_close($sock);
- return true;
- }
- }
- return false;
- }
- ?>
Add Comment
Please, Sign In to add comment