Package cz.beranek.projekt

Source Code of cz.beranek.projekt.HracController

package cz.beranek.projekt;


import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;

import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.SessionAttributes;


import com.google.appengine.api.channel.ChannelService;
import com.google.appengine.api.channel.ChannelServiceFactory;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;


import cz.beranek.model.Hra;
import cz.beranek.model.Hrac;
import cz.beranek.model.SeznamHracu;
import cz.beranek.model.SpravceHer;

@Controller
@SessionAttributes({"userId", "login","usrKey","hraId"})
public class HracController {
  @RequestMapping("/profil.muj")
  public String vychozi(Model model){
    UserService userService = UserServiceFactory.getUserService();
    String userId;
    String login;
   
    if(!userService.isUserLoggedIn()){
      model.addAttribute("link", userService.createLoginURL("/profil.muj"));
      return "login";
    }
    else {
      //uzivatel je prihlasen
      if(userService != null) {
         userId = userService.getCurrentUser().getUserId();
         login = userService.getCurrentUser().getNickname();
         model.addAttribute("userId", Zpravy.upravText(userId));
         model.addAttribute("login", Zpravy.upravText(login));
      }
    }
    return "profil";
  }
 
  @RequestMapping("/zaloz.hru")
  public String zalozHru(Model model,@ModelAttribute("userId") String userId,@ModelAttribute("login") String login){
    //test
    System.out.println(userId);
    System.out.println(login);
   
    String token;
    Hrac zakladatel=new Hrac(userId,login);
   
    Hra hra= new Hra();
    hra.addHrac(userId,zakladatel );
    hra.setHost(zakladatel);
   
    //zatim je jako id hry login zakladatele
    //System.out.println(SpravceHer.getInstance().toString());
    SpravceHer.getInstance().pridejHru(login, hra);
   
    //vytvoreni linku pro pripojeni
    model.addAttribute("link", "/pripoj.se?hra="+login);

    model.addAttribute("hraId", Zpravy.upravText(login));
    model.addAttribute("login", Zpravy.upravText(login));
    model.addAttribute("user", Zpravy.upravText(userId));
   
    //vytvoreni tokenu
    //asi vytvoreni kanalu a prirazeni tokenu
    final ChannelService channelService = ChannelServiceFactory.getChannelService();
    if (channelService != null){
       token = channelService.createChannel(userId);
       zakladatel.setChannel(token);
       model.addAttribute("usrKey", Zpravy.upravText(token));
   
   

    return "hostLobby";
  }
 
  @RequestMapping("/pripoj.se")
  public String vychozi(Model model, @RequestParam("hra") String hraId){
    //prihlaseni hrace
    final ChannelService channelService = ChannelServiceFactory.getChannelService();
    final UserService userService = UserServiceFactory.getUserService();
    String userId;
    String login;
    String token;
   
    if(!userService.isUserLoggedIn()){
      model.addAttribute("link", userService.createLoginURL("/pripoj.se?hra="+hraId));
      return "login";
    }
   
    else {
      //uzivatel je prihlasen
      if(userService != null) {
         userId = userService.getCurrentUser().getUserId();
         login = userService.getCurrentUser().getNickname();
         model.addAttribute("userId", Zpravy.upravText(userId));
         model.addAttribute("login", Zpravy.upravText(login));
        
         Hrac pripojeny=new Hrac(userId,login);
        
         SpravceHer.getInstance().getHra(hraId).addHrac(userId, pripojeny);
         SeznamHracu sh = SpravceHer.getInstance().getHra(hraId).getHraci();
         System.out.println(sh.vratPocetHracu());
         //vytvoreni tokenu
         //asi vytvoreni kanalu a prirazeni tokenu
         if (channelService != null){
           token = channelService.createChannel(userId);
           pripojeny.setChannel(token);
          
           model.addAttribute("usrKey", Zpravy.upravText(token));
           model.addAttribute("hraId", Zpravy.upravText(hraId));
           model.addAttribute("user", Zpravy.upravText(userId));
           //odeslani ostatnim ze jsem se pripojil
           Zpravy.odesliHrace(hraId, login, userId);          
         }        
      }
    }
   
    return "joinLobby";
  }
 
  /**Hrac je pripraven ke hre. (Aktivuje se tlacitkem v lobby.)*/
  @RequestMapping("/ready.do")
  public String ready(Model model, @RequestParam("hra") String hraId){
    //prihlaseni hrace
    final UserService userService = UserServiceFactory.getUserService();
    String userId;

   
    //TODO Overeni prihlaseni uzivatele - nema vyznam pro ajax
    if (!userService.isUserLoggedIn()) {
      model.addAttribute("link", userService.createLoginURL("/pripoj.se?hra=" + hraId));
      return "login";
    } else {
      if (userService != null) {
        userId = userService.getCurrentUser().getUserId();
        Hra hra = SpravceHer.getInstance().getHra(hraId);
        Hrac hrac = hra.getHrac(userId);
        System.out.println("Hrac "+hrac.getNick()+" is ready");
        hrac.setReady(true);
        model.addAttribute("JSON", "{\"pripraven\":true}");
      }
    }
    return "JSON";
  }
 
  /**Hrac byl presmerovan na stranku hry. Automaticky volano klientem po nacteni.*/
  @RequestMapping("/hraNactena.do")
  public String hraNactena(Model model, @ModelAttribute("hraId") String hraId){

    //prihlaseni hrace
    final UserService userService = UserServiceFactory.getUserService();
    String userId;
   
    if (!userService.isUserLoggedIn()) {
      model.addAttribute("link", userService.createLoginURL("/pripoj.se?hra=" + hraId));
      return "login";
    } else {
      if (userService != null) {
        userId = userService.getCurrentUser().getUserId();
        Hra hra = SpravceHer.getInstance().getHra(hraId);
        Hrac hrac = hra.getHrac(userId);
        hrac.setGameLoaded(true);
        model.addAttribute("JSON", "{\"hraNactena\":true}");
      }
    }
    return "JSON";
  }
 
  @RequestMapping("/stahni.hrace" )
  public String stahniHrace(Model model,@RequestParam("hra") String hraId,@RequestParam("hrac") String hracId){
    /*
    //odeslani sobe seznam hracu
    Zpravy.odesliSeznamHracu(hraId,hracId);
    */
    Hra tmp = SpravceHer.getInstance().getHra(hraId);
    ArrayList<String> pole = new ArrayList<String>();
   
    for (Hrac s : tmp.getHraci().values()) {
      HashMap<String, String> zprava=new HashMap<String, String>();
     
      zprava.put("nick", s.getNick());
      zprava.put("idHrace",s.getUserId());
      //pokud hra uz bezi, tak pridej informaci o poradi hracu
      if(tmp.hraBezi()){
        zprava.put("poradiHrace",Integer.toString(tmp.getHraci().getPoradi(s.getUserId())));
      }
     
      JSONObject json=JSONObject.fromObject(zprava);
      pole.add(json.toString());
    }
    JSONArray arr = JSONArray.fromObject(pole);
    //JSONObject json=JSONObject.fromObject(pole);
    System.out.println(arr.toString());
    model.addAttribute("JSON", arr.toString());
    return "JSON";
  }
 
  @RequestMapping("/_ah/channel/connected/")
  public String prihlaseni(){
    System.out.println("nekdo se pripojil na channel api");
    return "zprava";
  }
 
  @RequestMapping("/_ah/channel/disconnected/")
  public void odhlaseni(Model model, @RequestParam("hra") String hraId,@ModelAttribute("userId") String userId){
    System.out.println("odpojen");
    Hra hr = SpravceHer.getInstance().getHra(hraId);
    Hrac hrac=hr.getHrac(userId);
    if(hr.hraBezi()) Zpravy.odesliVsemZpravu(hr, "Hr�� "+hrac.getNick()+" se odpojil.");
  }
}
TOP

Related Classes of cz.beranek.projekt.HracController

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.