3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/deps/core/utility/pub_sub/Subscription.h"
8#include "mc/world/scores/ObjectiveSortOrder.h"
9#include "mc/world/scores/Scoreboard.h"
10#include "mc/world/scores/ScoreboardId.h"
34class ServerScoreboard :
public ::Scoreboard {
47 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BasicTimer>> mSaveTimer;
48 ::ll::TypedStorage<8, 8, ::LevelStorage*> mLevelStorage;
49 ::ll::TypedStorage<1, 1, bool> mIsDirty;
50 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager>
const> mGameplayUserManager;
51 ::ll::TypedStorage<8, 24, ::std::vector<::Objective const*>> mTrackedObjectives;
52 ::ll::TypedStorage<8, 8, ::PacketSender*> mPacketSender;
53 ::ll::TypedStorage<8, 16, ::ScoreboardId> mLastUniqueSBID;
54 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnSaveSubscription;
55 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnLevelStorageManagerStartLeaveGameSubscription;
56 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnRemoveActorEntityReferencesSubscription;
57 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnGameplayUserRemovedSubscription;
67 virtual ~ServerScoreboard() =
default;
69 virtual void onObjectiveAdded(
::Objective const& objective) ;
71 virtual void onObjectiveRemoved(
::Objective& objective) ;
79 virtual ::DisplayObjective
const* setDisplayObjective(
80 ::std::string
const& displaySlotName,
82 ::ObjectiveSortOrder
const order
85 virtual ::Objective* clearDisplayObjective(::std::string
const& displaySlotName) ;
87 virtual void onPlayerJoined(
::Player const& player) ;
93 virtual ::ScoreboardId
const& createScoreboardId(
::Player const& player) ;
95 virtual ::ScoreboardId
const& createScoreboardId(
::Actor const& entity) ;
97 virtual ::ScoreboardId
const& createScoreboardId(::std::string
const& name) ;
99 virtual void writeToLevelStorage() ;
101 virtual bool isClientSide() const ;
107 MCAPI ServerScoreboard(
125 ::
std::
string const& objName,
161 ::
std::
string const& displaySlotName,
163 ::ObjectiveSortOrder const order
Definition BasicTimer.h:5
Definition CommandSoftEnumRegistry.h:10
Definition DisplayObjective.h:14
Definition EntityContext.h:15
Definition GameplayUserManager.h:25
Definition IActorManagerConnector.h:14
Definition ILevelStorageManagerConnector.h:13
Definition LevelStorage.h:26
Definition Objective.h:15
Definition PacketSender.h:17
Definition ScoreboardIdentityRef.h:16
MCAPI ::std::variant<::RemoveScore, ::ChangePlayerScore, ::ChangeEntityScore, ::ChangeFakePlayerScore > _unpackIdentityDefToScorePacket(::ScoreboardIdentityRef const &identityDef, ::std::string const &objName, int score)
MCAPI void initializeWithLevelStorageManagerConnector(::ILevelStorageManagerConnector &levelStorageManagerConnector)
MCAPI void $onPlayerJoined(::Player const &player)
MCAPI void _onRemoveActorEntityReferences(::Actor &actor)
MCAPI void $onObjectiveAdded(::Objective const &objective)
MCAPI void $onPlayerIdentityUpdated(::PlayerScoreboardId const &playerId)
MCAPI void _clearAllScoreTagsForObjective(::std::string const &displaySlotName, ::DisplayObjective const &displayObjective)
MCAPI void $writeToLevelStorage()
MCAPI void $onObjectiveRemoved(::Objective &objective)
MCAPI void intializeWithActorManager(::IActorManagerConnector &actorManagerConnector)
MCAPI void _onGameplayUserRemoved(::EntityContext &entity)
MCAPI::DisplayObjective const * $setDisplayObjective(::std::string const &displaySlotName, ::Objective const &objective, ::ObjectiveSortOrder const order)
MCAPI void $onPlayerScoreRemoved(::ScoreboardId const &id, ::Objective const &objective)
MCAPI void _updateScoreTag(::ScoreboardId const &scoreboardId, bool assertOnFakePlayer)
MCAPI void _onSaveEvent(::LevelStorage &)
MCAPI void $setPacketSender(::PacketSender *sender)
MCAPI::ScoreboardId const & $createScoreboardId(::Player const &player)
MCAPI bool $isClientSide() const
MCAPI::Objective * $clearDisplayObjective(::std::string const &displaySlotName)
Definition ChangeEntityScore.h:9
Definition ChangeFakePlayerScore.h:8
Definition ChangePlayerScore.h:9
Definition PlayerScoreboardId.h:6
Definition RemoveScore.h:8
Definition ScoreboardId.h:11
Definition ServerScoreboard.h:42