4jcraft/targets/minecraft/server/ServerScoreboard.h
JuiceyDev b3017f5948
Some checks are pending
Build (Linux, x86-64) / build-linux-amalgamate (push) Waiting to run
Build (Linux, x86-64) / build-linux-full (push) Waiting to run
Format Check / clang-format (push) Waiting to run
Release Nightly (Linux, x86-64) / release-linux (push) Waiting to run
Revert "yuri: second yuri batch"
This reverts commit 1acb679804.
2026-04-07 13:06:37 +02:00

51 lines
1.5 KiB
C++

#pragma once
#include <memory>
#include <string>
#include <unordered_set>
#include <vector>
#include "minecraft/world/scores/Scoreboard.h"
class MinecraftServer;
class ScoreboardSaveData;
class Score;
class Objective;
class PlayerTeam;
class Packet;
class ServerScoreboard : public Scoreboard {
private:
MinecraftServer* server;
std::unordered_set<Objective*> trackedObjectives;
ScoreboardSaveData* saveData;
public:
ServerScoreboard(MinecraftServer* server);
MinecraftServer* getServer();
void onScoreChanged(Score* score);
void onPlayerRemoved(const std::wstring& player);
void setDisplayObjective(int slot, Objective* objective);
void addPlayerToTeam(const std::wstring& player, PlayerTeam* team);
void removePlayerFromTeam(const std::wstring& player, PlayerTeam* team);
void onObjectiveAdded(Objective* objective);
void onObjectiveChanged(Objective* objective);
void onObjectiveRemoved(Objective* objective);
void onTeamAdded(PlayerTeam* team);
void onTeamChanged(PlayerTeam* team);
void onTeamRemoved(PlayerTeam* team);
void setSaveData(ScoreboardSaveData* data);
protected:
void setDirty();
public:
std::vector<std::shared_ptr<Packet> >* getStartTrackingPackets(
Objective* objective);
void startTrackingObjective(Objective* objective);
std::vector<std::shared_ptr<Packet> >* getStopTrackingPackets(
Objective* objective);
void stopTrackingObjective(Objective* objective);
int getObjectiveDisplaySlotCount(Objective* objective);
};