/* * Copyright (C) 2004-2014 L2J Server * * This file is part of L2J Server. * * L2J Server 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. * * L2J Server 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 this program. If not, see . */ package com.l2jserver.gameserver.model.entity; import java.util.Map; import javolution.util.FastMap; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; /** * @author FBIagent */ public class TvTEventTeam { /** The name of the team
*/ private final String _name; /** The team spot coordinated
*/ private int[] _coordinates = new int[3]; /** The points of the team
*/ private short _points; /** Name and instance of all participated players in FastMap
*/ private Map _participatedPlayers = new FastMap<>(); /** * C'tor initialize the team
*
* @param name as String
* @param coordinates as int[]
*/ public TvTEventTeam(String name, int[] coordinates) { _name = name; _coordinates = coordinates; _points = 0; } /** * Adds a player to the team
*
* @param playerInstance as L2PcInstance
* @return boolean: true if success, otherwise false
*/ public boolean addPlayer(L2PcInstance playerInstance) { if (playerInstance == null) { return false; } synchronized (_participatedPlayers) { _participatedPlayers.put(playerInstance.getObjectId(), playerInstance); } return true; } /** * Removes a player from the team * @param playerObjectId */ public void removePlayer(int playerObjectId) { synchronized (_participatedPlayers) { _participatedPlayers.remove(playerObjectId); } } /** * Increases the points of the team
*/ public void increasePoints() { ++_points; } /** * Cleanup the team and make it ready for adding players again
*/ public void cleanMe() { _participatedPlayers.clear(); _participatedPlayers = new FastMap<>(); _points = 0; } /** * Is given player in this team? * @param playerObjectId * @return boolean: true if player is in this team, otherwise false */ public boolean containsPlayer(int playerObjectId) { boolean containsPlayer; synchronized (_participatedPlayers) { containsPlayer = _participatedPlayers.containsKey(playerObjectId); } return containsPlayer; } /** * Returns the name of the team
*
* @return String: name of the team
*/ public String getName() { return _name; } /** * Returns the coordinates of the team spot
*
* @return int[]: team coordinates
*/ public int[] getCoordinates() { return _coordinates; } /** * Returns the points of the team
*
* @return short: team points
*/ public short getPoints() { return _points; } /** * Returns name and instance of all participated players in FastMap
*
* @return Map: map of players in this team
*/ public Map getParticipatedPlayers() { Map participatedPlayers = null; synchronized (_participatedPlayers) { participatedPlayers = _participatedPlayers; } return participatedPlayers; } /** * Returns player count of this team
*
* @return int: number of players in team
*/ public int getParticipatedPlayerCount() { int participatedPlayerCount; synchronized (_participatedPlayers) { participatedPlayerCount = _participatedPlayers.size(); } return participatedPlayerCount; } }