Botcraft 1.21.4
Loading...
Searching...
No Matches
Botcraft::NetworkManager Class Reference

#include <NetworkManager.hpp>

Inheritance diagram for Botcraft::NetworkManager:
ProtocolCraft::Handler ProtocolCraft::GenericHandler< Message, AllMessages >

Public Member Functions

 NetworkManager (const std::string &address, const std::string &login, const bool force_microsoft_auth, const std::vector< ProtocolCraft::Handler * > &handlers={})
 
 NetworkManager (const ProtocolCraft::ConnectionState constant_connection_state)
 
 ~NetworkManager ()
 
void Stop ()
 
void AddHandler (ProtocolCraft::Handler *h)
 
void Send (const std::shared_ptr< ProtocolCraft::Message > msg)
 
const ProtocolCraft::ConnectionState GetConnectionState () const
 
const std::string & GetMyName () const
 
void SendChatMessage (const std::string &message)
 
void SendChatCommand (const std::string &command)
 
std::thread::id GetProcessingThreadId () const
 

Private Member Functions

void WaitForNewPackets ()
 
void ProcessPacket (const std::vector< unsigned char > &packet)
 
void OnNewRawData (const std::vector< unsigned char > &packet)
 
virtual void Handle (ProtocolCraft::ClientboundLoginCompressionPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundLoginFinishedPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundHelloPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundKeepAlivePacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundPingPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundCustomQueryPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundPlayerChatPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundLoginPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundFinishConfigurationPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundKeepAliveConfigurationPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundPingConfigurationPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundStartConfigurationPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundChunkBatchStartPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundChunkBatchFinishedPacket &msg) override
 
virtual void Handle (ProtocolCraft::ClientboundSelectKnownPacksPacket &msg) override
 

Private Attributes

std::vector< ProtocolCraft::Handler * > subscribed
 
std::shared_ptr< TCP_Comcom
 
std::shared_ptr< Authentifierauthentifier
 
ProtocolCraft::ConnectionState state
 
std::thread m_thread_process
 
std::queue< std::vector< unsigned char > > packets_to_process
 
std::mutex mutex_process
 
std::condition_variable process_condition
 
int compression
 
std::mutex mutex_send
 
std::string name
 
LastSeenMessagesTracker chat_context
 
ProtocolCraft::UUID chat_session_uuid {}
 
std::atomic< int > message_sent_index
 
std::chrono::steady_clock::time_point chunk_batch_start_time
 

Detailed Description

Definition at line 24 of file NetworkManager.hpp.

Constructor & Destructor Documentation

◆ NetworkManager() [1/2]

Botcraft::NetworkManager::NetworkManager ( const std::string &  address,
const std::string &  login,
const bool  force_microsoft_auth,
const std::vector< ProtocolCraft::Handler * > &  handlers = {} 
)

◆ NetworkManager() [2/2]

Botcraft::NetworkManager::NetworkManager ( const ProtocolCraft::ConnectionState  constant_connection_state)

Definition at line 99 of file NetworkManager.cpp.

References compression, and state.

◆ ~NetworkManager()

Botcraft::NetworkManager::~NetworkManager ( )

Definition at line 105 of file NetworkManager.cpp.

References Stop().

Member Function Documentation

◆ AddHandler()

void Botcraft::NetworkManager::AddHandler ( ProtocolCraft::Handler h)

Definition at line 130 of file NetworkManager.cpp.

References subscribed.

Referenced by NetworkManager().

◆ GetConnectionState()

const ConnectionState Botcraft::NetworkManager::GetConnectionState ( ) const

Definition at line 171 of file NetworkManager.cpp.

References state.

◆ GetMyName()

const std::string & Botcraft::NetworkManager::GetMyName ( ) const

Definition at line 176 of file NetworkManager.cpp.

References name.

◆ GetProcessingThreadId()

std::thread::id Botcraft::NetworkManager::GetProcessingThreadId ( ) const

Definition at line 294 of file NetworkManager.cpp.

References m_thread_process.

◆ Handle() [1/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundChunkBatchFinishedPacket msg)
overrideprivatevirtual

Definition at line 623 of file NetworkManager.cpp.

References chunk_batch_start_time, and Send().

◆ Handle() [2/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundChunkBatchStartPacket msg)
overrideprivatevirtual

Definition at line 618 of file NetworkManager.cpp.

References chunk_batch_start_time.

◆ Handle() [3/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundCustomQueryPacket msg)
overrideprivatevirtual

Definition at line 506 of file NetworkManager.cpp.

References Send().

◆ Handle() [4/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundFinishConfigurationPacket msg)
overrideprivatevirtual

Definition at line 590 of file NetworkManager.cpp.

References Send(), and state.

◆ Handle() [5/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundHelloPacket msg)
overrideprivatevirtual

Definition at line 431 of file NetworkManager.cpp.

References authentifier, com, and Send().

◆ Handle() [6/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundKeepAliveConfigurationPacket msg)
overrideprivatevirtual

Definition at line 597 of file NetworkManager.cpp.

References Send().

◆ Handle() [7/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundKeepAlivePacket msg)
overrideprivatevirtual

Definition at line 489 of file NetworkManager.cpp.

References Send().

◆ Handle() [8/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundLoginCompressionPacket msg)
overrideprivatevirtual

Definition at line 411 of file NetworkManager.cpp.

References compression.

◆ Handle() [9/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundLoginFinishedPacket msg)
overrideprivatevirtual

Definition at line 419 of file NetworkManager.cpp.

◆ Handle() [10/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundLoginPacket msg)
overrideprivatevirtual

◆ Handle() [11/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundPingConfigurationPacket msg)
overrideprivatevirtual

Definition at line 604 of file NetworkManager.cpp.

References Send().

◆ Handle() [12/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundPingPacket msg)
overrideprivatevirtual

Definition at line 497 of file NetworkManager.cpp.

References Send().

◆ Handle() [13/15]

◆ Handle() [14/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundSelectKnownPacksPacket msg)
overrideprivatevirtual

Definition at line 635 of file NetworkManager.cpp.

References Send().

◆ Handle() [15/15]

void Botcraft::NetworkManager::Handle ( ProtocolCraft::ClientboundStartConfigurationPacket msg)
overrideprivatevirtual

Definition at line 611 of file NetworkManager.cpp.

References Send(), and state.

◆ OnNewRawData()

void Botcraft::NetworkManager::OnNewRawData ( const std::vector< unsigned char > &  packet)
private

Definition at line 401 of file NetworkManager.cpp.

References mutex_process, packets_to_process, and process_condition.

Referenced by NetworkManager().

◆ ProcessPacket()

void Botcraft::NetworkManager::ProcessPacket ( const std::vector< unsigned char > &  packet)
private

Definition at line 369 of file NetworkManager.cpp.

References ProtocolCraft::CreateClientboundMessage(), LOG_FATAL, state, and subscribed.

Referenced by WaitForNewPackets().

◆ Send()

void Botcraft::NetworkManager::Send ( const std::shared_ptr< ProtocolCraft::Message msg)

◆ SendChatCommand()

void Botcraft::NetworkManager::SendChatCommand ( const std::string &  command)

◆ SendChatMessage()

void Botcraft::NetworkManager::SendChatMessage ( const std::string &  message)

◆ Stop()

void Botcraft::NetworkManager::Stop ( )

Definition at line 110 of file NetworkManager.cpp.

References com, compression, m_thread_process, process_condition, and state.

Referenced by ~NetworkManager().

◆ WaitForNewPackets()

void Botcraft::NetworkManager::WaitForNewPackets ( )
private

Member Data Documentation

◆ authentifier

std::shared_ptr<Authentifier> Botcraft::NetworkManager::authentifier
private

Definition at line 90 of file NetworkManager.hpp.

Referenced by Handle(), Handle(), NetworkManager(), SendChatCommand(), and SendChatMessage().

◆ chat_context

LastSeenMessagesTracker Botcraft::NetworkManager::chat_context
private

Definition at line 105 of file NetworkManager.hpp.

Referenced by Handle(), SendChatCommand(), and SendChatMessage().

◆ chat_session_uuid

ProtocolCraft::UUID Botcraft::NetworkManager::chat_session_uuid {}
private

Definition at line 108 of file NetworkManager.hpp.

Referenced by Handle(), and SendChatMessage().

◆ chunk_batch_start_time

std::chrono::steady_clock::time_point Botcraft::NetworkManager::chunk_batch_start_time
private

Definition at line 113 of file NetworkManager.hpp.

Referenced by Handle(), and Handle().

◆ com

std::shared_ptr<TCP_Com> Botcraft::NetworkManager::com
private

Definition at line 89 of file NetworkManager.hpp.

Referenced by Handle(), NetworkManager(), Send(), and Stop().

◆ compression

int Botcraft::NetworkManager::compression
private

Definition at line 98 of file NetworkManager.hpp.

Referenced by Handle(), NetworkManager(), NetworkManager(), Send(), Stop(), and WaitForNewPackets().

◆ m_thread_process

std::thread Botcraft::NetworkManager::m_thread_process
private

Definition at line 93 of file NetworkManager.hpp.

Referenced by GetProcessingThreadId(), NetworkManager(), and Stop().

◆ message_sent_index

std::atomic<int> Botcraft::NetworkManager::message_sent_index
private

Definition at line 109 of file NetworkManager.hpp.

Referenced by NetworkManager(), and SendChatMessage().

◆ mutex_process

std::mutex Botcraft::NetworkManager::mutex_process
private

Definition at line 96 of file NetworkManager.hpp.

Referenced by OnNewRawData(), and WaitForNewPackets().

◆ mutex_send

std::mutex Botcraft::NetworkManager::mutex_send
private

Definition at line 100 of file NetworkManager.hpp.

Referenced by Send().

◆ name

std::string Botcraft::NetworkManager::name
private

Definition at line 102 of file NetworkManager.hpp.

Referenced by GetMyName(), NetworkManager(), and WaitForNewPackets().

◆ packets_to_process

std::queue<std::vector<unsigned char> > Botcraft::NetworkManager::packets_to_process
private

Definition at line 95 of file NetworkManager.hpp.

Referenced by OnNewRawData(), and WaitForNewPackets().

◆ process_condition

std::condition_variable Botcraft::NetworkManager::process_condition
private

Definition at line 97 of file NetworkManager.hpp.

Referenced by OnNewRawData(), Stop(), and WaitForNewPackets().

◆ state

ProtocolCraft::ConnectionState Botcraft::NetworkManager::state
private

◆ subscribed

std::vector<ProtocolCraft::Handler*> Botcraft::NetworkManager::subscribed
private

Definition at line 87 of file NetworkManager.hpp.

Referenced by AddHandler(), and ProcessPacket().


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