MrSaooty

       GitHub: @MrSaooty
  • Untitled

    MrSaooty        
    0 Likes Commentsphp

    public function buy($id, $money){
      	// JSONAPI
    		$informations = $this->Informations->find('first');
        	$api = new JSONAPI($informations['Informations']['jsonapi_ip'], $informations['Informations']['jsonapi_port'], $informations['Informations']['jsonapi_username'], $informations['Informations']['jsonapi_password'], $informations['Informations']['jsonapi_salt']);
        	// On test si le joueur est en ligne
        	$playersOnline = $api->call('players.online.names'); // Tableau des joueurs en lignes
    		$testPlayerOnline = in_array($this->Auth->user('username'), $playersOnline[0]['success']); // On cherche dans ce tableau
    		// Si on a trouvé le pseudo du joueur dans le tableau des joueurs en ligne
    		if($testPlayerOnline){
    			$testPlayerOnline = 'online';
    		}
    		// Sinon... il n'est pas connecté IG
    		else{
    			$testPlayerOnline = 'offline';
    		}
    		// Si l'utlisateur est co au site
    		if($this->Auth->user()){
    			// Si l'item existe
    			if($this->Shop->find('first', ['conditions' => ['Shop.id' => $id]])){
    				// Si l'utlisateur est co en jeu
    				if($testPlayerOnline == 'online'){
    					// Si l'utilisateur paye avec la monnaie du site
    					if($money == 'site'){
    						$user = $this->User->find('first', ['conditions' => ['User.username' => $this->Auth->user('username')]]); // On recup les infos de l'utlisateur
    						$userMoneySite = $user['User']['tokens']; // Le nombre de tokens de l'utilisateur
    						$item = $this->Shop->find('first', ['conditions' => ['Shop.id' => $id]]); // On recup les infos de l'item
    						$price = $item['Shop']['price_money_site']; // Cout de l'achat avec la monnaie du site
    						// Historique d'achat
    						$this->shopHistory->create;
    						$this->shopHistory->saveField('username', $this->Auth->user('username'));
    						$this->shopHistory->saveField('item', $item['Shop']['name']);
    						$this->shopHistory->saveField('price', $price);
    						$this->shopHistory->saveField('money', $money);
    						// Si l'utilisateur a assez
    						if($userMoneySite >= $price){
    							// On définit son nv nb de tokens
    							$newUserMoneySite = $userMoneySite - $price;
    							$this->User->id = $this->Auth->user('id');
    							$this->User->saveField('tokens', $newUserMoneySite);
    							// On execute la commande
    							$command = str_replace('{{player}}', $this->Auth->user('username'), $item['Shop']['command']);
    							$api->call('server.run_command', [$command]);
    							// On redirige avec un message
    							$this->Session->setFlash('Achat effectué, vous avez depensé '.$price.' '.$informations['Informations']['site_money'].'', 'success');
    							return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    						}
    						// Si l'utilisateur n'a pas assez
    						else{
    							$this->Session->setFlash('Vous n\'avez pas assez de '.$informations['Informations']['site_money'].'', 'error');
    							return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    						}
    					}
    					// L'utilisateur paye avec la monnaie du serveur
    					else{
    						$user = $this->User->find('first', ['conditions' => ['User.username' => $this->Auth->user('username')]]); // On recup les infos de l'utlisateur
    						$userMoneyServer = $api->call('players.name.bank.balance', [$this->Auth->user('username')])[0]['success']; // Le nombre d'argent, sur le serveur
    						$item = $this->Shop->find('first', ['conditions' => ['Shop.id' => $id]]); // On recup les infos de l'item
    						$price = $item['Shop']['price_money_server']; // Cout de l'achat avec la monnaie du site
    						// Historique d'achat
    						$this->shopHistory->create;
    						$this->shopHistory->saveField('username', $this->Auth->user('username'));
    						$this->shopHistory->saveField('item', $item['Shop']['name']);
    						$this->shopHistory->saveField('price', $price);
    						$this->shopHistory->saveField('money', $money);
    						// Si l'utilisateur a assez
    						if($userMoneyServer >= $price){
    							// On définit son nv nb de tokens
    							$newUserMoneyServer = $userMoneyServer - $price;
    							$api->call('players.name.bank.withdraw', [$this->Auth->user('username'), $price]);
    							// On execute la commande
    							$command = str_replace('{{player}}', $this->Auth->user('username'), $item['Shop']['command']);
    							$api->call('server.run_command', [$command]);
    							// On redirige avec un message
    							$this->Session->setFlash('Achat effectué, vous avez depensé '.$price.' '.$informations['Informations']['money_server'].'', 'success');
    							return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    						}
    						// Si l'utilisateur n'a pas assez
    						else{
    							$this->Session->setFlash('Vous n\'avez pas assez de '.$informations['Informations']['site_money'].'', 'error');
    							return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    						}
    					}
    				// Si l'utlisateur n'est pas co en jeu
    				}
    				else{
    					$this->Session->setFlash('Vous devez être connecté en jeu avant de faire des achats', 'error');
    					return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    				}
    			}
    			// Si l'item n'existe pas
    			else{
    				$this->Session->setFlash('Cet article n\'existe pas !', 'error');
    				return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    			}
    		// Si l'utlisateur n'est pas co au site
    		}
    		else{
    			$this->Session->setFlash('Vous devez être connecté pour accéder à cette page', 'error');
    			return $this->redirect(['controller' => 'users', 'action' => 'login']);
    		}
    	}
  • CMS MC

    MrSaooty        
    0 Likes Commentsphp

    public function buy($id, $money){
        // JSONAPI
    		$informations = $this->Informations->find('first');
        	$api = new JSONAPI($informations['Informations']['jsonapi_ip'], $informations['Informations']['jsonapi_port'], $informations['Informations']['jsonapi_username'], $informations['Informations']['jsonapi_password'], $informations['Informations']['jsonapi_salt']);
        	// On test si le joueur est en ligne
        	$playersOnline = $api->call('players.online.names'); // Tableau des joueurs en lignes
    		$testPlayerOnline = in_array($this->Auth->user('username'), $playersOnline[0]['success']); // On cherche dans ce tableau
    		// Si on a trouvé le pseudo du joueur dans le tableau des joueurs en ligne
    		if($testPlayerOnline){
    			$testPlayerOnline = 'online';
    		}
    		// Sinon... il n'est pas connecté IG
    		else{
    			$testPlayerOnline = 'offline';
    		}
    		// Si l'utlisateur est co au site
    		if($this->Auth->user()){
    			// Si l'item existe
    			if($this->Shop->find('first', ['conditions' => ['Shop.id' => $id]])){
    				// Si l'utlisateur est co en jeu
    				if($testPlayerOnline == 'online'){
    					// Si l'utilisateur paye avec la monnaie du site
    					if($money == 'site'){
    						$user = $this->User->find('first', ['conditions' => ['User.username' => $this->Auth->user('username')]]); // On recup les infos de l'utlisateur
    						$userMoneySite = $user['User']['tokens']; // Le nombre de tokens de l'utilisateur
    						$item = $this->Shop->find('first', ['conditions' => ['Shop.id' => $id]]); // On recup les infos de l'item
    						$price = $item['Shop']['price_money_site']; // Cout de l'achat avec la monnaie du site
    						// Historique d'achat
    						$this->shopHistory->create;
    						$this->shopHistory->saveField('username', $this->Auth->user('username'));
    						$this->shopHistory->saveField('item', $item['Shop']['name']);
    						$this->shopHistory->saveField('price', $price);
    						$this->shopHistory->saveField('money', $money);
    						// Si l'utilisateur a assez
    						if($userMoneySite >= $price){
    							// On définit son nv nb de tokens
    							$newUserMoneySite = $userMoneySite - $price;
    							$this->User->id = $this->Auth->user('id');
    							$this->User->saveField('tokens', $newUserMoneySite);
    							// On execute la commande
    							$command = str_replace('{{player}}', $this->Auth->user('username'), $item['Shop']['command']);
    							$api->call('server.run_command', [$command]);
    							// On redirige avec un message
    							$this->Session->setFlash('Achat effectué, vous avez depensé '.$price.' '.$informations['Informations']['site_money'].'', 'success');
    							return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    						}
    						// Si l'utilisateur n'a pas assez
    						else{
    							$this->Session->setFlash('Vous n\'avez pas assez de '.$informations['Informations']['site_money'].'', 'error');
    							return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    						}
    					}
    					// L'utilisateur paye avec la monnaie du serveur
    					else{
    						$user = $this->User->find('first', ['conditions' => ['User.username' => $this->Auth->user('username')]]); // On recup les infos de l'utlisateur
    						$userMoneyServer = $api->call('players.name.bank.balance', [$this->Auth->user('username')])[0]['success']; // Le nombre d'argent, sur le serveur
    						$item = $this->Shop->find('first', ['conditions' => ['Shop.id' => $id]]); // On recup les infos de l'item
    						$price = $item['Shop']['price_money_server']; // Cout de l'achat avec la monnaie du site
    						// Historique d'achat
    						$this->shopHistory->create;
    						$this->shopHistory->saveField('username', $this->Auth->user('username'));
    						$this->shopHistory->saveField('item', $item['Shop']['name']);
    						$this->shopHistory->saveField('price', $price);
    						$this->shopHistory->saveField('money', $money);
    						// Si l'utilisateur a assez
    						if($userMoneyServer >= $price){
    							// On définit son nv nb de tokens
    							$newUserMoneyServer = $userMoneyServer - $price;
    							$api->call('players.name.bank.withdraw', [$this->Auth->user('username'), $price]);
    							// On execute la commande
    							$command = str_replace('{{player}}', $this->Auth->user('username'), $item['Shop']['command']);
    							$api->call('server.run_command', [$command]);
    							// On redirige avec un message
    							$this->Session->setFlash('Achat effectué, vous avez depensé '.$price.' '.$informations['Informations']['money_server'].'', 'success');
    							return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    						}
    						// Si l'utilisateur n'a pas assez
    						else{
    							$this->Session->setFlash('Vous n\'avez pas assez de '.$informations['Informations']['site_money'].'', 'error');
    							return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    						}
    					}
    				// Si l'utlisateur n'est pas co en jeu
    				}
    				else{
    					$this->Session->setFlash('Vous devez être connecté en jeu avant de faire des achats', 'error');
    					return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    				}
    			}
    			// Si l'item n'existe pas
    			else{
    				$this->Session->setFlash('Cet article n\'existe pas !', 'error');
    				return $this->redirect(['controller' => 'shops', 'action' => 'index']);
    			}
    		// Si l'utlisateur n'est pas co au site
    		}
    		else{
    			$this->Session->setFlash('Vous devez être connecté pour accéder à cette page', 'error');
    			return $this->redirect(['controller' => 'users', 'action' => 'login']);
    		}
    	}