Package cz.beranek.projekt

Source Code of cz.beranek.projekt.Zpravy

package cz.beranek.projekt;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Locale;

import net.sf.json.JSONObject;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.google.appengine.api.channel.ChannelMessage;
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.SpravceHer;

/**
*
* @author Kudrna
*
*/
/*
* TODO Presunout metodu zpracuj tak, aby trida zpravy nemusela byt controller
*/
@Controller
public class Zpravy {
 
  public static String toUTF8(String vstup){
    String convertedStr = null;
    try {
      convertedStr = new String(vstup.getBytes("UTF-8"), "UTF-8");
    } catch (UnsupportedEncodingException e) {
      // TODO Auto-generated catch block
      System.out.println("chyba kodovani");
      e.printStackTrace();
    }
    return convertedStr;
  }
 
  @RequestMapping(value = "/zpracuj.do")
  public String zpracuj(@RequestParam("text") String text, @RequestParam("hra") String hraId) {
    /*TODO Navrhuji nasledujici kod presunout do jine, staticke metody,
     *  ktera pujde volat i z jinych mist.
     */
   
    System.out.println("prijata zprava:" + text + ";");
    // login bz slo posilat abz se nemusel tahat z google
    // Bych to takhle nechal z "bezpecnostnich duvodu" treba
    final ChannelService channel = ChannelServiceFactory.getChannelService();
    final UserService userService = UserServiceFactory.getUserService();
    String login = userService.getCurrentUser().getNickname();
    // return null;
   
    HashMap<String, String> zprava=new HashMap<String, String>();
   
   
    zprava.put("typ", "chat");
    zprava.put("login",login);
    zprava.put("zprava",text);
   
    JSONObject json=JSONObject.fromObject(zprava);

    Hra tmp = SpravceHer.getInstance().getHra(hraId);
    if (tmp == null) {
      System.out.println("neexistujici hra");
      return "zprava";
    }
    System.out.println(json.toString());
    for (Hrac s : tmp.getHraci().values()) {
      channel.sendMessage(new ChannelMessage(s.getUserId(), json.toString()));
    }
    return "zprava";
  }
 
 

  public static void presmeruj(Hra hra, String cil) {
   
    final ChannelService chanel = ChannelServiceFactory.getChannelService();
   
    HashMap<String, String> zprava=new HashMap<String, String>();
   
    zprava.put("typ", "redirect");
    zprava.put("cil", cil);
   
    JSONObject json=JSONObject.fromObject(zprava);
    String z = toUTF8(json.toString());
    for (Hrac h : hra.getHraci().values()) {
      chanel.sendMessage(new ChannelMessage(h.getUserId(), json.toString()));
    }
   
  }
 
  public static void odesliHraci(Hrac hrac,String zprava){
    final ChannelService chanel = ChannelServiceFactory.getChannelService();
   
    chanel.sendMessage(new ChannelMessage(hrac.getUserId(), toUTF8(zprava)));   
  }
 
  /**
   * Odesle zpravu, ktera je urcena pro vypis do chatu
   * @param hra
   * @param textZpravy
   */
  public static void odesliVsem(Hra hra,String typ,String textZpravy){
    final ChannelService chanel = ChannelServiceFactory.getChannelService();
   
    HashMap<String, String> zprava=new HashMap<String, String>();
   
    zprava.put("typ", typ);
    zprava.put("text", textZpravy);
   
    JSONObject json=JSONObject.fromObject(zprava);
 
    for (Hrac s : hra.getHraci().values()) {
      chanel.sendMessage(new ChannelMessage(s.getUserId(), json.toString()));
    }
  }
 
  /**
   * Odesle zpravu vsem hracum ve hre
   * @param hra
   * @param textZpravy
   */
  public static void odesliVsem(Hra hra,String JSONtextZpravy){
    final ChannelService chanel = ChannelServiceFactory.getChannelService();

 
    for (Hrac s : hra.getHraci().values()) {
      chanel.sendMessage(new ChannelMessage(s.getUserId(), JSONtextZpravy));
    }
  }
 
  public static void odesliHrace(String hraId, String login, String userId) {
   
    final ChannelService chanel = ChannelServiceFactory.getChannelService();
    Hra tmp = SpravceHer.getInstance().getHra(hraId);
   
    HashMap<String, String> zprava=new HashMap<String, String>();
   
    zprava.put("typ", "connect");
    zprava.put("login", login);
   
    JSONObject json=JSONObject.fromObject(zprava);

    for (Hrac s : tmp.getHraci().values()) {
      if (!userId.equals(s.getUserId()))
        chanel.sendMessage(new ChannelMessage(s.getUserId(), json.toString()));
    }
  }

  public static void odesliSeznamHracu(String hraId, String userId) {
   
    System.out.println("odeslani seznamu hracu");
    final ChannelService chanel = ChannelServiceFactory.getChannelService();
    Hra tmp = SpravceHer.getInstance().getHra(hraId);
   
    for (Hrac s : tmp.getHraci().values()) {
     
      HashMap<String, String> zprava=new HashMap<String, String>();
      zprava.put("typ", "connect");
      zprava.put("login", s.getNick());
     
      JSONObject json=JSONObject.fromObject(zprava);

      chanel.sendMessage(new ChannelMessage(userId, json.toString()));
     
      System.out.println("odelslano" + userId);
    }
  }
 
  /**
   *
   * @param hra
   * @param cisloHrace Cislo hrace, ktere je dane poradim hrace ze seznamuHracu->poradiHracu.
   * @param cisloPolicka Cislo policka ve hre, na ktere se ma figurka premistit.
   */
  public static void odesliPoziciHrace(Hra hra,Hrac hrac,int cisloPolicka){
    HashMap<String, String> zprava=new HashMap<String, String>()
    zprava.put("typ", "presun");
    zprava.put("hrac",Integer.toString(hra.getHraci().getPoradi(hrac.getUserId())));
    zprava.put("pole", Integer.toString(cisloPolicka));
    JSONObject json=JSONObject.fromObject(zprava);
    odesliVsem(hra, json.toString());
  }
 
  /**
   * Odesle vsem hracum ve hre zpravu, ktera se zobrazi v chatovacim okne
   * @param hra
   * @param hrac
   * @param zprava
   */
  public static void odesliVsemZpravu(Hra hra, String zprava){
    HashMap<String, String> jsonMap=new HashMap<String, String>();
    jsonMap.put("typ", "chatInfo");
    jsonMap.put("text",zprava);
   
    JSONObject json=JSONObject.fromObject(jsonMap);
    //odesliVsem(hra, toUTF8(json.toString()));
    odesliVsem(hra, json.toString());
  }
 
  /**
   * Odesle konkretnimu hraci zpravu, ktera se zobrazi v chatovacim okne
   * @param hra
   * @param hrac
   * @param zprava
   */
  public static void odesliHraciZpravu(Hrac hrac, String zprava){
    final ChannelService chanel = ChannelServiceFactory.getChannelService();
    HashMap<String, String> jsonMap=new HashMap<String, String>();
    jsonMap.put("typ", "chatInfo");
    jsonMap.put("text",zprava);
    JSONObject json=JSONObject.fromObject(jsonMap);
   
    chanel.sendMessage(new ChannelMessage(hrac.getUserId(), toUTF8(json.toString())));     
  }
 
  /**
   * Odesle vsem hracum informaci o tom ktery hrac je na tahu
   * @param hrac
   */
  public static void odesliHraceNaTahu(Hra hra,Hrac hrac){
    //final ChannelService chanel = ChannelServiceFactory.getChannelService();
    HashMap<String, String> jsonMap=new HashMap<String, String>();
    jsonMap.put("typ", "zmenaTahu");
    jsonMap.put("idHrace",hrac.getUserId());
    jsonMap.put("nickHrace",hrac.getNick());
    JSONObject json=JSONObject.fromObject(jsonMap);
    odesliVsem(hra, json.toString());
    //chanel.sendMessage(new ChannelMessage(hrac.getUserId(), json.toString())); 
  }
 
  /**
   * Odesle vsem hracum informaci o stavu penez konkretniho hrace
   * @param hra
   * @param hrac
   * @param castka
   */
  public static void odesliStavPenez(Hra hra,Hrac hrac,int castka){
    HashMap<String, String> zprava=new HashMap<String, String>();
    zprava.put("typ", "zmenaPenez");
    zprava.put("idHrace",hrac.getUserId());
    zprava.put("castka", Integer.toString(castka));
    JSONObject json=JSONObject.fromObject(zprava);
    odesliVsem(hra, json.toString());
  }
 
  public static void odesliStavPenezJednomu(Hra hra,Hrac hrac,int castka){
    HashMap<String, String> zprava=new HashMap<String, String>();
    zprava.put("typ", "zmenaPenez");
    zprava.put("idHrace",hrac.getUserId());
    zprava.put("castka", Integer.toString(castka));
    JSONObject json=JSONObject.fromObject(zprava);
    odesliHraci(hrac, json.toString());
  }
 
  /**
   * Odesle vsem hraci informaci o tom, ze pole koupil hrac
   * @param hra
   * @param hrac
   */
  public static void odesliKoupiPole(Hra hra, Hrac hrac){
    HashMap<String, String> zprava=new HashMap<String, String>();
    zprava.put("typ", "koupePole");
    zprava.put("vysledek", "true");
    zprava.put("hrac", Integer.toString(hra.getHraci().getPoradi(hrac.getUserId())));
    zprava.put("pole", Integer.toString(hrac.getPozice() + 1));
   
    JSONObject json=JSONObject.fromObject(zprava);
 
    Zpravy.odesliVsem(hra, json.toString());
  }
 
  /**
   * Odesle pocet zetonu ktere jsou na policku
   * @param hra
   * @param hrac
   * @param pocet Pocet dostihu
   * @param pole Cislo policka
   */
  public static void odesliPocetDostihu(Hra hra, Hrac hrac,int pocet,int pole){
    HashMap<String, String> zprava=new HashMap<String, String>();
    zprava.put("typ", "koupeDostihu");
    zprava.put("nick", hrac.getNick());
    zprava.put("pocet", Integer.toString(pocet));
    zprava.put("pole", Integer.toString(pole + 1));
   
    JSONObject json=JSONObject.fromObject(zprava);
 
    Zpravy.odesliVsem(hra, json.toString());
  }
 
  /**
   * odstrani uvozovky na zacatku a konci
   * @param st
   * @return
   */
  public static String upravText(String st){
    String novy;
    if(st.charAt(0)=='\'') {
      novy=st.substring(1,st.length()-1);
    } else novy=st;
    return novy;
     
  }
}
TOP

Related Classes of cz.beranek.projekt.Zpravy

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.