br.com.great.gerenciamento.GerenciadorJogos.java Source code

Java tutorial

Introduction

Here is the source code for br.com.great.gerenciamento.GerenciadorJogos.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.great.gerenciamento;

import br.com.great.contexto.Jogo;
import br.com.great.contexto.Missao;
import br.com.great.contexto.Texto;
import br.com.great.controller.JogadoresController;
import br.com.great.controller.JogosController;
import br.com.great.util.Constants;
import br.com.great.util.OperacoesJSON;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 *
 * @author carleandro
 */
public class GerenciadorJogos extends Thread {

    @Override
    public void run() {
        while (!isInterrupted()) {

            try {
                //             enviarLocalizacao();
                Thread.sleep(5000);
            } catch (InterruptedException ex) {
                Logger.getLogger(GerenciadorJogos.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    public JSONArray acao(JSONArray json) {
        JSONArray jsonResult = null;
        try {
            JSONObject jobj;
            int acao = json.getJSONObject(0).getInt("acao");
            switch (acao) {
            case Constants.JOGO_NEWJOGO:
                jobj = json.getJSONObject(1);
                jsonResult = newJogo(jobj.getInt("jogo_id"), Integer.valueOf(jobj.getString("jogador_id")),
                        jobj.getString("nomeficticio"));
                break;
            case Constants.JOGO_LISTAJGO:
                jobj = json.getJSONObject(1);
                jsonResult = listarJogos(jobj.getDouble("latitude"), jobj.getDouble("longitude"),
                        jobj.getInt("distancia"));
                break;
            case Constants.JOGO_CADASTRAR:
                jobj = json.getJSONObject(1);
                jsonResult = newJogo(jobj.getInt("jogo_id"), Integer.valueOf(jobj.getString("jogador_id")),
                        jobj.getString("nomeficticio"));
                break;
            case Constants.JOGADOR_LOGIN:
                jobj = json.getJSONObject(1);
                jsonResult = login(jobj.getString("email"), jobj.getString("senha"));
                break;
            case Constants.JOGADOR_CADASTRAR:
                jobj = json.getJSONObject(1);
                jsonResult = cadastrarJogador(jobj.getString("email"), jobj.getString("senha"));
                break;

            default:
                //comandos caso nenhuma das opes anteriores tenha sido escolhida
            }
        } catch (JSONException ex) {
            System.err.println("Erro em acao:" + ex.getMessage());
        }
        return jsonResult;
    }

    public void carregaJogadores() {
        PlayJogo.setJogadores(new JogadoresController().listarTodos());
    }

    private JSONArray cadastrarJogador(String email, String senha) {
        String[] value, key = { "result" };
        int result = new JogadoresController().cadastrarJogador(email, senha);
        if (result == 0) {
            value = new String[] { "erro ao salvar" };
        } else if (result == -1) {
            value = new String[] { "Jogador j existe" };
        } else {
            value = new String[] { "Salvo com sucesso!" };
            PlayJogo.getJogadores().add(new JogadoresController().getJogador(result));
        }
        return new JSONArray().put(new OperacoesJSON().toJSONObject(key, value));
    }

    private JSONArray login(String email, String senha) {
        String[] value, key = { "result" };
        int result = 0;
        for (int i = 0; i < PlayJogo.getJogadores().size(); i++) {
            if (PlayJogo.getJogadores().get(i).getLogin().equals(email)
                    && PlayJogo.getJogadores().get(i).getSenha().equals(senha)) {
                result = 1;
            }
            System.err.println(PlayJogo.getJogadores().get(i).getSenha() + " email: "
                    + PlayJogo.getJogadores().get(i).getLogin());
        }
        value = new String[] { String.valueOf(result) };
        return new JSONArray().put(new OperacoesJSON().toJSONObject(key, value));
    }

    private JSONArray newJogo(int jogo_id, int jogador_id, String nome) throws JSONException {
        Jogo jogo = new JogosController().getJogo(jogo_id);
        if (jogo != null) {
            jogo.setNomeficticio(nome);
            jogo.setJogador_iniciou(jogador_id);
            PlayJogo.getJogos().add(jogo);
        }
        JSONArray json = new JSONArray();
        json.put(0, PlayJogo.getJogos().get(0).getConfiguracaoMissao().get(0).getMissao());
        return json;
    }

    private JSONArray listarJogos(double latitude, double longitude, int distancia) {
        return new JogosController().getJogos(latitude, longitude, distancia);
    }

}