Package com.achimala.leaguelib.models

Source Code of com.achimala.leaguelib.models.LeagueGame$ObserverCredentials

/*
*  This file is part of LeagueLib.
*  LeagueLib is free software: you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation, either version 3 of the License, or
*  (at your option) any later version.
*
*  LeagueLib is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with LeagueLib.  If not, see <http://www.gnu.org/licenses/>.
*/

package com.achimala.leaguelib.models;

import com.gvaneyck.rtmp.TypedObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Comparator;
import java.util.Arrays;

public class LeagueGame implements PlayerList {
    private class ObserverCredentials {
        private String _serverIP, _encryptionKey;
        private int _serverPort=-1;
       
        public ObserverCredentials(TypedObject obj) {
            _serverIP = obj.getString("observerServerIp");
            _serverPort = obj.getInt("observerServerPort");
            _encryptionKey = obj.getString("observerEncryptionKey");
        }
       
        public void setServerIPAddress(String ip) {
            _serverIP = ip;
        }
       
        public void setServerPort(int port) {
            _serverPort = port;
        }
       
        public void setEncryptionKey(String key) {
            _encryptionKey = key;
        }
       
        public String getServerIPAddress() {
            return _serverIP;
        }
       
        public int getServerPort() {
            return _serverPort;
        }
       
        public String getEncryptionKey() {
            return _encryptionKey;
        }
    }
   
    // TODO: eventually put this in its own enum?
    private String _gameType, _gameMode;
    private LeagueMatchmakingQueue _queue = null;
    private int _id=-1;
    private List<LeagueSummoner> _playerTeam, _enemyTeam;
    private TeamType _playerTeamType = TeamType.BLUE;
    private TeamType _enemyTeamType = TeamType.PURPLE;
    private Map<String, LeagueChampion> _playerChampionSelections;
    private Map<String, LeagueSummoner> _summoners;
    private Map<TeamType, List<LeagueChampion>> _bannedChampions;
    private ObserverCredentials _observerCredentials;
   
    public LeagueGame() {
    }
   
    private void fillListWithPlayers(List<LeagueSummoner> list, Object[] team, LeagueSummoner primarySummoner) {
        for(Object o : team) {
            TypedObject to = (TypedObject)o;
            LeagueSummoner sum = new LeagueSummoner(to, primarySummoner.getServer(), true);
            if(sum.isEqual(primarySummoner))
                sum = primarySummoner;
            _summoners.put(sum.getInternalName(), sum);
            list.add(sum);
        }
    }
   
    public LeagueGame(TypedObject obj, LeagueSummoner primarySummoner) {
        _observerCredentials = new ObserverCredentials(obj.getTO("playerCredentials"));
        obj = obj.getTO("game");
        _id = obj.getInt("id");
        _gameType = obj.getString("gameType");
        _gameMode = obj.getString("gameMode");
        _queue = LeagueMatchmakingQueue.valueOf(obj.getString("queueTypeName"));
        _playerTeam = new ArrayList<LeagueSummoner>();
        _enemyTeam = new ArrayList<LeagueSummoner>();
        _summoners = new HashMap<String, LeagueSummoner>();
        fillListWithPlayers(_playerTeam, obj.getArray("teamOne"), primarySummoner);
        fillListWithPlayers(_enemyTeam, obj.getArray("teamTwo"), primarySummoner);
        if(!_playerTeam.contains(primarySummoner))
            swapTeams();
       
        _playerChampionSelections = new HashMap<String, LeagueChampion>();
        for(Object o : obj.getArray("playerChampionSelections")) {
            TypedObject to = (TypedObject)o;
            _playerChampionSelections.put(to.getString("summonerInternalName"),
            LeagueChampion.getChampionWithId(to.getInt("championId")));
        }
  _bannedChampions = new HashMap<TeamType, List<LeagueChampion>>();
  for(TeamType t : TeamType.values()) {
      _bannedChampions.put(t, new ArrayList<LeagueChampion>());
  }
  Object[] sortedBans = obj.getArray("bannedChampions");
  Arrays.sort(sortedBans, new Comparator<Object>() {
    public int compare(Object o1, Object o2) {
        TypedObject to1 = (TypedObject)o1;
        TypedObject to2 = (TypedObject)o2;
        return to1.getInt("pickTurn").compareTo(to2.getInt("pickTurn"));
    }
      });
  for(Object o : sortedBans) {
      TypedObject to = (TypedObject)o;
      TeamType teamType = TeamType.getFromId(to.getInt("teamId"));
      LeagueChampion champion = LeagueChampion.getChampionWithId(to.getInt("championId"));
      _bannedChampions.get(teamType).add(champion);
  }
 
    }
   
    public void setGameType(String type) {
        _gameType = type;
    }
   
    public void setGameMode(String mode) {
        _gameMode = mode;
    }
   
    public void setId(int id) {
        _id = id;
    }
   
    public void setQueue(LeagueMatchmakingQueue queue) {
        _queue = queue;
    }
   
    public void swapTeams() {
        List<LeagueSummoner> temp = _playerTeam;
        _playerTeam = _enemyTeam;
        _enemyTeam = temp;
  _playerTeamType = TeamType.PURPLE;
  _enemyTeamType = TeamType.BLUE;
    }
   
    public String getGameType() {
        return _gameType;
    }
   
    public String getGameMode() {
        return _gameMode;
    }
   
    public int getId() {
        return _id;
    }
   
    public LeagueMatchmakingQueue getQueue() {
        return _queue;
    }
   
    public List<LeagueSummoner> getPlayerTeam() {
        return _playerTeam;
    }
   
    public List<LeagueSummoner> getEnemyTeam() {
        return _enemyTeam;
    }
   
    public List<LeagueSummoner> getAllPlayers() {
        List<LeagueSummoner> players = new ArrayList<LeagueSummoner>(_playerTeam);
        players.addAll(_enemyTeam);
        return players;
    }
   
    public LeagueChampion getChampionSelectionForSummoner(LeagueSummoner summoner) {
        return _playerChampionSelections.get(summoner.getInternalName());
    }
   
    public ObserverCredentials getObserverCredentials() {
        return _observerCredentials;
    }

    public TeamType getPlayerTeamType() {
  return _playerTeamType;
    }

    public TeamType getEnemyTeamType() {
  return _enemyTeamType;
    }
   
    public List<LeagueChampion> getBannedChampionsForTeam(TeamType type) {
  return _bannedChampions.get(type);
    }
     
}
TOP

Related Classes of com.achimala.leaguelib.models.LeagueGame$ObserverCredentials

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.