Botcraft 1.21.5
Loading...
Searching...
No Matches
Botcraft::EntityManager Class Reference

#include <EntityManager.hpp>

Inheritance diagram for Botcraft::EntityManager:
ProtocolCraft::Handler ProtocolCraft::GenericHandler< Packet, AllPackets >

Public Member Functions

 EntityManager (const std::shared_ptr< NetworkManager > &network_manager)
 
std::shared_ptr< LocalPlayerGetLocalPlayer ()
 
std::shared_ptr< EntityGetEntity (const int id) const
 
void AddEntity (const std::shared_ptr< Entity > &entity)
 
Utilities::ScopeLockedWrapper< const std::unordered_map< int, std::shared_ptr< Entity > >, std::shared_mutex, std::shared_lock > GetEntities () const
 Get a read-only locked version of all the loaded entities (including local player)
 

Protected Member Functions

virtual void Handle (ProtocolCraft::ClientboundLoginPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundAddEntityPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundSetHealthPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundTeleportEntityPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundPlayerAbilitiesPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundMoveEntityPacketPos &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundMoveEntityPacketPosRot &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundMoveEntityPacketRot &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundRemoveEntitiesPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundRespawnPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundGameEventPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundSetEntityDataPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundSetEntityMotionPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundSetEquipmentPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundUpdateAttributesPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundUpdateMobEffectPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundRemoveMobEffectPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundEntityPositionSyncPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundMoveMinecartPacket &packet) override
 

Private Attributes

std::unordered_map< int, std::shared_ptr< Entity > > entities
 
std::shared_ptr< LocalPlayerlocal_player
 
std::shared_mutex entity_manager_mutex
 
std::shared_ptr< NetworkManagernetwork_manager
 

Detailed Description

Definition at line 17 of file EntityManager.hpp.

Constructor & Destructor Documentation

◆ EntityManager()

Botcraft::EntityManager::EntityManager ( const std::shared_ptr< NetworkManager > &  network_manager)

Definition at line 11 of file EntityManager.cpp.

References local_player.

Member Function Documentation

◆ AddEntity()

void Botcraft::EntityManager::AddEntity ( const std::shared_ptr< Entity > &  entity)

Definition at line 28 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ GetEntities()

Utilities::ScopeLockedWrapper< const std::unordered_map< int, std::shared_ptr< Entity > >, std::shared_mutex, std::shared_lock > Botcraft::EntityManager::GetEntities ( ) const

Get a read-only locked version of all the loaded entities (including local player)

Returns
Basically an object you can use as a std::unordered_map<int, std::shared_ptr<Entity>>*. ALL ENTITIES UPDATE WILL BE BLOCKED WHILE THIS OBJECT IS ALIVE, make sure it goes out of scope as soon as you don't need it.

Definition at line 39 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ GetEntity()

std::shared_ptr< Entity > Botcraft::EntityManager::GetEntity ( const int  id) const

Definition at line 21 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ GetLocalPlayer()

std::shared_ptr< LocalPlayer > Botcraft::EntityManager::GetLocalPlayer ( )

Definition at line 16 of file EntityManager.cpp.

References local_player.

◆ Handle() [1/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundAddEntityPacket packet)
overrideprotectedvirtual

◆ Handle() [2/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundEntityPositionSyncPacket packet)
overrideprotectedvirtual

Definition at line 511 of file EntityManager.cpp.

References entities, entity_manager_mutex, and local_player.

◆ Handle() [3/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundGameEventPacket packet)
overrideprotectedvirtual

Definition at line 320 of file EntityManager.cpp.

References local_player.

◆ Handle() [4/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundLoginPacket packet)
overrideprotectedvirtual

Definition at line 45 of file EntityManager.cpp.

References entities, entity_manager_mutex, and local_player.

◆ Handle() [5/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundMoveEntityPacketPos packet)
overrideprotectedvirtual

◆ Handle() [6/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundMoveEntityPacketPosRot packet)
overrideprotectedvirtual

◆ Handle() [7/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundMoveEntityPacketRot packet)
overrideprotectedvirtual

Definition at line 124 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ Handle() [8/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundMoveMinecartPacket packet)
overrideprotectedvirtual

Definition at line 537 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ Handle() [9/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundPlayerAbilitiesPacket packet)
overrideprotectedvirtual

Definition at line 287 of file EntityManager.cpp.

References local_player.

◆ Handle() [10/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundRemoveEntitiesPacket packet)
overrideprotectedvirtual

Definition at line 301 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ Handle() [11/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundRemoveMobEffectPacket packet)
overrideprotectedvirtual

Definition at line 486 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

◆ Handle() [12/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundRespawnPacket packet)
overrideprotectedvirtual

Definition at line 311 of file EntityManager.cpp.

References local_player.

◆ Handle() [13/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundSetEntityDataPacket packet)
overrideprotectedvirtual

Definition at line 332 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

◆ Handle() [14/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundSetEntityMotionPacket packet)
overrideprotectedvirtual

Definition at line 355 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

◆ Handle() [15/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundSetEquipmentPacket packet)
overrideprotectedvirtual

Definition at line 379 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

◆ Handle() [16/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundSetHealthPacket packet)
overrideprotectedvirtual

Definition at line 244 of file EntityManager.cpp.

References local_player.

◆ Handle() [17/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundTeleportEntityPacket packet)
overrideprotectedvirtual

Definition at line 251 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ Handle() [18/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundUpdateAttributesPacket packet)
overrideprotectedvirtual

◆ Handle() [19/19]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundUpdateMobEffectPacket packet)
overrideprotectedvirtual

Definition at line 459 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

Member Data Documentation

◆ entities

std::unordered_map<int, std::shared_ptr<Entity> > Botcraft::EntityManager::entities
private

◆ entity_manager_mutex

std::shared_mutex Botcraft::EntityManager::entity_manager_mutex
mutableprivate

◆ local_player

std::shared_ptr<LocalPlayer> Botcraft::EntityManager::local_player
private

◆ network_manager

std::shared_ptr<NetworkManager> Botcraft::EntityManager::network_manager
private

Definition at line 83 of file EntityManager.hpp.


The documentation for this class was generated from the following files: