Package com.gtdev.web.ctrl.unity

Source Code of com.gtdev.web.ctrl.unity.UnityController

package com.gtdev.web.ctrl.unity;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.gtdev.web.dao.PlayerDAO;
import com.gtdev.web.dao.UserDAO;
import com.gtdev.web.model.JsonUnity;
import com.gtdev.web.model.Network;
import com.gtdev.web.model.Serveur;
import com.gtdev.web.service.gae.UtilisateurService;
import com.gtdev.web.store.Player;
import com.gtdev.web.store.User;

/** @author Gregory Tardivel */
@Controller
public final class UnityController {

    @Autowired
    private JsonUnity message;
    @Autowired
    private UserDAO userDAO;
    @Autowired
    private PlayerDAO playerDAO;
    @Autowired
    private Network network;
    @Autowired
    private UtilisateurService userService;

    @RequestMapping(value = "/user/check", headers = "Accept=application/json")
    @ResponseBody
    public JsonUnity isConnected() {
        if (this.userService.isLogged()) {
            final User userBD = this.userDAO.find(this.userService.getUser()
                    .getEmail());
            if (userBD == null) {
                // L'utilisateur doit créé un login
                this.message.setError("register");
            } else {
                this.message.setPlayer(userBD.getPersonnage());
                this.message.setMessage("Utilisateur connecté");
            }
        } else {
            this.message
                    .setError("Vous devez être connecté avec votre compte Google");
        }
        return this.message;
    }

    @RequestMapping(value = "/user/register", headers = "Accept=application/json")
    @ResponseBody
    public JsonUnity create(
            final String login,
            final int eyes,
            final int hair,
            final int hairColor,
            final String male) {
        if (this.userService.isLogged()) {
            final User user = this.userService.getUser();
            final Player perso = new Player();
            perso.setNom(login);
            perso.setMasculin(male.equals("True"));
            perso.setEyes(eyes);
            perso.setHair(hair);
            perso.setHairColor(hairColor);
            user.setPersonnage(perso);
            this.userDAO.save(user);
            this.message.setPlayer(perso);
            this.message.setMessage("Login créé");
        } else {
            this.message
                    .setError("Vous devez être connecté avec votre compte Google");
        }
        return this.message;
    }

    @RequestMapping(value = "/server/liste", headers = "Accept=application/json")
    @ResponseBody
    public JsonUnity listServeurs() {
        if (this.userService.isLogged()) {
            // Chargement de la liste des serveurs
            // this.message.setServeurs(this.network.getServeurs());
        } else {
            this.message
                    .setError("Vous devez être connecté avec votre compte Google");
        }
        return this.message;
    }

    @RequestMapping(value = "/server/new", headers = "Accept=application/json")
    @ResponseBody
    public JsonUnity newServeur(
            final String adresseIP,
            final String port,
            final int clients,
            final HttpServletRequest request) {
        if (this.userService.isLogged()) {
            this.network.addServeur(request.getSession().getId(), adresseIP
                    + ":" + port, clients);
        } else {
            this.message
                    .setError("Vous devez être connecté avec votre compte Google");
        }
        return this.message;
    }

    @RequestMapping(value = "/server/connect", headers = "Accept=application/json")
    @ResponseBody
    public JsonUnity connectServeur(final String name) {
        if (this.userService.isLogged()) {
            for (final Serveur serveur : this.network.getServeurs()) {
                if (serveur.getName().equals(name)) {
                    // this.message.setAdresseIP(serveur.getAdresseIP().split(":")[0]);
                    // this.message.setPort(serveur.getAdresseIP().split(":")[1]);
                    serveur.setConnections(serveur.getConnections() + 1);
                }
            }
        } else {
            this.message
                    .setError("Vous devez être connecté avec votre compte Google");
        }
        return this.message;
    }

    @RequestMapping(value = "/server/close", headers = "Accept=application/json")
    @ResponseBody
    public JsonUnity deleteServeur(final HttpServletRequest request) {
        if (this.userService.isLogged()) {
            final String adresseIP = request.getRemoteAddr();
            this.network.removeServeur(adresseIP);
        } else {
            this.message
                    .setError("Vous devez être connecté avec votre compte Google");
        }
        return this.message;
    }

    @RequestMapping(value = "/player/save", headers = "Accept=application/json")
    @ResponseBody
    public JsonUnity sauvegarder(
            final String nom,
            final int sante,
            final int santeMAX,
            final int niveau,
            final int experience,
            final float positionX,
            final float positionY,
            final float positionZ,
            final float rotationX,
            final float rotationY,
            final float rotationZ,
            final float rotationW) {
        final Player player = this.message.getPlayer();
        player.setNom(nom);
        player.setSante(sante);
        player.setSanteMAX(santeMAX);
        player.setNiveau(niveau);
        player.setExperience(experience);
        player.setPositionX(positionX);
        player.setPositionY(positionY);
        player.setPositionZ(positionZ);
        player.setRotationX(rotationX);
        player.setRotationY(rotationY);
        player.setRotationZ(rotationZ);
        player.setRotationW(rotationW);
        this.message.setPlayer(this.playerDAO.save(player));
        this.message.setMessage("Sauvegarde effectuée");
        return this.message;
    }
}
TOP

Related Classes of com.gtdev.web.ctrl.unity.UnityController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.