#include "stdafx.h" #include "ServerScoreboard.h" ServerScoreboard::ServerScoreboard(MinecraftServer *server) { this->server = server; } MinecraftServer *ServerScoreboard::getServer() { return server; } void ServerScoreboard::onScoreChanged(Score *score) { //Scoreboard::onScoreChanged(score); //if (trackedObjectives.contains(score.getObjective())) //{ // server->getPlayers()->broadcastAll( shared_ptr( new SetScorePacket(score, SetScorePacket::METHOD_CHANGE))); //} //setDirty(); } void ServerScoreboard::onPlayerRemoved(const wstring &player) { //Scoreboard::onPlayerRemoved(player); //server->getPlayers()->broadcastAll( shared_ptr( new SetScorePacket(player))); //setDirty(); } void ServerScoreboard::setDisplayObjective(int slot, Objective *objective) { //Objective *old = getDisplayObjective(slot); //Scoreboard::setDisplayObjective(slot, objective); //if (old != objective && old != nullptr) //{ // if (getObjectiveDisplaySlotCount(old) > 0) // { // server->getPlayers()->broadcastAll( shared_ptr( new SetDisplayObjectivePacket(slot, objective))); // } // else // { // stopTrackingObjective(old); // } //} //if (objective != nullptr) //{ // if (trackedObjectives.contains(objective)) // { // server->getPlayers()->broadcastAll( shared_ptr( new SetDisplayObjectivePacket(slot, objective))); // } // else // { // startTrackingObjective(objective); // } //} //setDirty(); } void ServerScoreboard::addPlayerToTeam(const wstring &player, PlayerTeam *team) { //Scoreboard::addPlayerToTeam(player, team); //server->getPlayers()->broadcastAll( shared_ptr( new SetPlayerTeamPacket(team, Arrays::asList(player), SetPlayerTeamPacket::METHOD_JOIN))); //setDirty(); } void ServerScoreboard::removePlayerFromTeam(const wstring &player, PlayerTeam *team) { //Scoreboard::removePlayerFromTeam(player, team); //server->getPlayers()->broadcastAll( shared_ptr( new SetPlayerTeamPacket(team, Arrays::asList(player), SetPlayerTeamPacket::METHOD_LEAVE))); //setDirty(); } void ServerScoreboard::onObjectiveAdded(Objective *objective) { //Scoreboard::onObjectiveAdded(objective); //setDirty(); } void ServerScoreboard::onObjectiveChanged(Objective *objective) { //Scoreaboard::onObjectiveChanged(objective); //if (trackedObjectives.contains(objective)) //{ // server->getPlayers()->broadcastAll( shared_ptr( new SetObjectivePacket(objective, SetObjectivePacket::METHOD_CHANGE))); //} //setDirty(); } void ServerScoreboard::onObjectiveRemoved(Objective *objective) { //Scoreboard::onObjectiveRemoved(objective); //if (trackedObjectives.contains(objective)) //{ // stopTrackingObjective(objective); //} //setDirty(); } void ServerScoreboard::onTeamAdded(PlayerTeam *team) { //Scoreboard::onTeamAdded(team); //server->getPlayers()->broadcastAll( shared_ptr( new SetPlayerTeamPacket(team, SetPlayerTeamPacket::METHOD_ADD)) ); //setDirty(); } void ServerScoreboard::onTeamChanged(PlayerTeam *team) { //Scoreboard::onTeamChanged(team); //server->getPlayers()->broadcastAll( shared_ptr( new SetPlayerTeamPacket(team, SetPlayerTeamPacket::METHOD_CHANGE))); //setDirty(); } void ServerScoreboard::onTeamRemoved(PlayerTeam *team) { //Scoreboard::onTeamRemoved(team); //server->getPlayers()->broadcastAll( shared_ptr( new SetPlayerTeamPacket(team, SetPlayerTeamPacket::METHOD_REMOVE)) ); //setDirty(); } void ServerScoreboard::setSaveData(ScoreboardSaveData *data) { //saveData = data; } void ServerScoreboard::setDirty() { //if (saveData != nullptr) //{ // saveData->setDirty(); //} } vector > *ServerScoreboard::getStartTrackingPackets(Objective *objective) { return nullptr; //vector > *packets = new vector >(); //packets.push_back( shared_ptr( new SetObjectivePacket(objective, SetObjectivePacket::METHOD_ADD))); //for (int slot = 0; slot < DISPLAY_SLOTS; slot++) //{ // if (getDisplayObjective(slot) == objective) packets.push_back( shared_ptr( new SetDisplayObjectivePacket(slot, objective))); //} //for (Score score : getPlayerScores(objective)) //{ // packets.push_back( shared_ptr( new SetScorePacket(score, SetScorePacket::METHOD_CHANGE))); //} //return packets; } void ServerScoreboard::startTrackingObjective(Objective *objective) { //vector > *packets = getStartTrackingPackets(objective); //for (ServerPlayer player : server.getPlayers().players) //{ // for (Packet packet : packets) // { // player.connection.send(packet); // } //} //trackedObjectives.push_back(objective); } vector > *ServerScoreboard::getStopTrackingPackets(Objective *objective) { return nullptr; //vector > *packets = new ArrayList(); //packets->push_back( shared_ptr > *packets = getStopTrackingPackets(objective); //for (ServerPlayer player : server.getPlayers().players) //{ // for (Packet packet : packets) // { // player->connection->send(packet); // } //} //trackedObjectives.remove(objective); } int ServerScoreboard::getObjectiveDisplaySlotCount(Objective *objective) { return 0; //int count = 0; //for (int slot = 0; slot < DISPLAY_SLOTS; slot++) //{ // if (getDisplayObjective(slot) == objective) count++; //} //return count; }