package com.rzg.zombieland.server.comunicacion.controlador; import com.google.gson.Gson; import com.rzg.zombieland.comunes.comunicacion.pojo.POJOCreacionPartida; import com.rzg.zombieland.comunes.comunicacion.respuesta.RespuestaGenerica; import com.rzg.zombieland.comunes.misc.Log; import com.rzg.zombieland.comunes.misc.ZombielandException; import com.rzg.zombieland.server.meta.Partida; import com.rzg.zombieland.server.meta.ServicioPartidas; import com.rzg.zombieland.server.sesion.ManejadorSesion; /** * Maneja la creaci�n de una partida. * @author nicolas * */ public class ControladorCrearPartida extends ControladorConSesion { /** * Crea un controlador de creaci�n de partida. * @param manejadorSesion * @throws ZombielandException */ public ControladorCrearPartida(ManejadorSesion manejadorSesion) { super(manejadorSesion); } @Override public String procesarAutenticado(String linea) { Gson gson = new Gson(); POJOCreacionPartida pojo = gson.fromJson(linea, POJOCreacionPartida.class); Partida partida = new Partida(getSesion().getJugador(), pojo); ServicioPartidas.getInstancia().addPartida(partida); try { getSesion().setPartida(partida); } catch (ZombielandException e) { return gson.toJson(new RespuestaGenerica(e.getMessage())); } Log.debug("El jugador " + getSesion().getJugador().getNombre() + " ha creado una partida."); return gson.toJson(new RespuestaGenerica()); } }