#include "ServerScoreboard.h" class Packet; 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 std::string& 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 std::string& 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 std::string& 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(); // } } std::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); } std::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; }