28 #include <unordered_set>
42 #define CLIENT_CHAT_MESSAGE_LIMIT_PER_10S 10.0f
98 void print(std::ostream &o)
const;
116 const char *playername,
117 const std::string &password,
118 const std::string &address_name,
134 void scanModSubfolder(
const std::string &mod_name,
const std::string &mod_path,
135 std::string mod_subpath);
161 void step(
float dtime);
242 const std::string &newpassword);
253 const std::vector<ModSpec> &
getMods()
const override;
371 virtual scene::IAnimatedMesh*
getMesh(
const std::string &filename,
bool cache =
false);
372 const std::string*
getModFile(std::string filename);
380 bool loadMedia(
const std::string &data,
const std::string &filename,
381 bool from_media_push =
false);
383 void request_media(
const std::vector<std::string> &file_requests);
426 const std::string &message)
override;
441 const std::string &hostname,
442 bool is_local_server);
452 void sendInit(
const std::string &playerName);
482 std::unique_ptr<con::Connection>
m_con;
Definition: clientenvironment.h:64
const std::list< std::string > & getPlayerNames()
Definition: clientenvironment.h:138
LocalPlayer * getLocalPlayer() const
Definition: clientenvironment.h:78
Definition: scripting_client.h:38
void setFatalError(const std::string &reason)
Definition: client.h:319
void handleCommand_NodeDef(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:747
void handleCommand_DeleteParticleSpawner(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1030
const std::string * getModFile(std::string filename)
Definition: client.cpp:1930
ICraftDefManager * getCraftDefManager() override
Definition: client.cpp:1869
std::string getModStoragePath() const override
Definition: client.cpp:1970
void handleCommand_Privileges(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:883
v3s16 getCrackPos()
Definition: client.cpp:1489
void loadMods()
Definition: client.cpp:136
void handleCommand_AuthAccept(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:120
MapDatabase * m_localdb
Definition: client.h:578
void clearOutChatQueue()
Definition: client.cpp:1220
void handleCommand_ModChannelMsg(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1536
MtEventManager * getEventManager()
Definition: client.cpp:1895
void handleCommand_DetachedInventory(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:911
StringMap m_mesh_data
Definition: client.h:570
bool loadMedia(const std::string &data, const std::string &filename, bool from_media_push=false)
Definition: client.cpp:648
void handleCommand_AddNode(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:238
Minimap * m_minimap
Definition: client.h:485
IItemDefManager * getItemDefManager() override
Definition: client.cpp:1861
float m_connection_reinit_timer
Definition: client.h:466
std::unordered_map< int, u16 > m_sounds_to_objects
Definition: client.h:557
float m_inventory_from_server_age
Definition: client.h:500
void handleCommand_DenySudoMode(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:167
void handleCommand_PlayerSpeed(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1476
void interact(InteractAction action, const PointedThing &pointed)
Definition: client.cpp:938
const bool activeObjectsReceived() const
Definition: client.h:335
void request_media(const std::vector< std::string > &file_requests)
Definition: client.cpp:761
bool checkCSMRestrictionFlag(CSMRestrictionFlags flag) const
Definition: client.h:413
void updateCameraOffset(v3s16 camera_offset)
Definition: client.h:308
void Stop()
Definition: client.cpp:256
MapNode CSMGetNode(v3s16 p, bool *is_valid_position)
Helper function for Client Side Modding CSM restrictions are applied there, this should not be used f...
Definition: client.cpp:1328
void handleCommand_AnnounceMedia(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:639
const ModSpec * getModSpec(const std::string &modname) const override
Definition: client.cpp:251
Client(const char *playername, const std::string &password, const std::string &address_name, MapDrawControl &control, IWritableTextureSource *tsrc, IWritableShaderSource *shsrc, IWritableItemDefManager *itemdef, NodeDefManager *nodedef, ISoundManager *sound, MtEventManager *event, bool ipv6, GameUI *game_ui)
Definition: client.cpp:89
u64 m_csm_restriction_flags
Definition: client.h:592
std::unordered_map< std::string, ModMetadata * > m_mod_storages
Definition: client.h:584
std::queue< ClientEvent * > m_client_event_queue
Definition: client.h:532
const Address getServerAddress()
Definition: client.cpp:1649
void handleCommand_HP(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:555
void handleCommand_UpdatePlayerList(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1403
void addUpdateMeshTask(v3s16 blockpos, bool ack_to_server=false, bool urgent=false)
Definition: client.cpp:1566
void handleCommand_ActiveObjectMessages(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:481
ClientScripting * getScript()
Definition: client.h:394
void handleCommand_ItemDef(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:767
StringMap m_mod_vfs
Definition: client.h:587
IntervalLimiter m_map_timer_and_unload_interval
Definition: client.h:469
float m_recommended_send_interval
Definition: client.h:548
float m_avg_rtt_timer
Definition: client.h:467
float m_mod_storage_save_timer
Definition: client.h:585
static const std::string & getBuiltinLuaPath()
Definition: client.cpp:233
void handleCommand_ChatMessage(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:400
std::unordered_map< u32, u32 > m_hud_server_to_client
Definition: client.h:560
IntervalLimiter m_localdb_save_interval
Definition: client.h:579
void handleCommand_HudSetParam(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1187
const bool modsLoaded() const
Definition: client.h:395
void handleCommand_HudSetSky(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1209
void addUpdateMeshTaskWithEdge(v3s16 blockpos, bool ack_to_server=false, bool urgent=false)
Definition: client.cpp:1578
NodeDefManager * m_nodedef
Definition: client.h:474
bool m_mods_loaded
Definition: client.h:536
bool m_simple_singleplayer_mode
Definition: client.h:343
bool m_minimap_disabled_by_server
Definition: client.h:486
void addNode(v3s16 p, MapNode n, bool remove_metadata=true)
Definition: client.cpp:1365
void handleCommand_HudSetStars(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1325
u32 m_sudo_auth_methods
Definition: client.h:515
void handleCommand_Movement(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:511
void setCamera(Camera *camera)
Definition: client.h:353
void handleCommand_HudSetMoon(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1312
ITextureSource * tsrc()
Definition: client.h:248
void promptConfirmRegistration(AuthMechanism chosen_auth_mechanism)
Definition: client.cpp:1023
float m_animation_time
Definition: client.h:503
void pushToChatQueue(ChatMessage *cec)
Definition: client.h:389
void setPlayerControl(PlayerControl &control)
Definition: client.cpp:1383
LocalClientState m_state
Definition: client.h:573
std::vector< ModSpec > m_mods
Definition: client.h:586
Camera * m_camera
Definition: client.h:484
void handleCommand_LocalPlayerAnimations(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1383
void sendInventoryFields(const std::string &formname, const StringMap &fields)
Definition: client.cpp:1144
int m_crack_level
Definition: client.h:504
IWritableShaderSource * m_shsrc
Definition: client.h:472
std::unordered_map< std::string, Inventory * > m_detached_inventories
Definition: client.h:567
std::string getPlayerName()
Definition: client.h:460
void sendNodemetaFields(v3s16 p, const std::string &formname, const StringMap &fields)
Definition: client.cpp:1122
void sendInit(const std::string &playerName)
Definition: client.cpp:1009
void scanModIntoMemory(const std::string &mod_name, const std::string &mod_path)
Definition: client.h:136
void handleCommand_Hello(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:54
void deleteAuthData()
Definition: client.cpp:975
static AuthMechanism choseAuthMech(const u32 mechs)
Definition: client.cpp:995
bool hasClientEvents() const
Definition: client.h:311
void pushToEventQueue(ClientEvent *event)
Definition: client.cpp:1849
std::unordered_map< int, s32 > m_sounds_client_to_server
Definition: client.h:555
std::string m_access_denied_reason
Definition: client.h:531
const bool mediaReceived() const
Definition: client.h:333
std::string m_password
Definition: client.h:522
void inventoryAction(InventoryAction *a) override
Definition: client.cpp:1463
std::string m_new_password
Definition: client.h:524
void handleCommand_HudChange(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1110
Inventory * getInventory(const InventoryLocation &loc) override
Definition: client.cpp:1419
void typeChatMessage(const std::wstring &message)
Definition: client.cpp:1552
IWritableTextureSource * m_tsrc
Definition: client.h:471
void Send(NetworkPacket *pkt)
Definition: client.cpp:900
float mediaReceiveProgress()
Definition: client.cpp:1654
float m_removed_sounds_check_timer
Definition: client.h:551
bool checkPrivilege(const std::string &priv) const
Definition: client.h:292
void sendDamage(u16 damage)
Definition: client.cpp:1239
void handleCommand_EyeOffset(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1395
std::queue< std::wstring > m_out_chat_queue
Definition: client.h:509
u32 m_csm_restriction_noderange
Definition: client.h:593
bool m_is_registration_confirmation_state
Definition: client.h:342
void handleCommand_FormspecPrepend(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1458
int CSMClampRadius(v3s16 pos, int radius)
Definition: client.cpp:1340
ClientEvent * getClientEvent()
Definition: client.cpp:1639
void makeScreenshot()
Definition: client.cpp:1773
void handleCommand_MovePlayer(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:591
ISoundManager * m_sound
Definition: client.h:475
void handleCommand_NodemetaChanged(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:258
std::string m_playername
Definition: client.h:521
const std::string & accessDeniedReason() const
Definition: client.h:327
float m_last_time_of_day_f
Definition: client.h:544
u16 getProtoVersion()
Definition: client.h:338
void sendDeletedBlocks(std::vector< v3s16 > &blocks)
Definition: client.cpp:1084
void handleCommand_DeathScreen(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:622
IWritableItemDefManager * m_itemdef
Definition: client.h:473
bool checkLocalPrivilege(const std::string &priv)
Definition: client.h:369
virtual ISoundManager * getSoundManager()
Definition: client.cpp:1891
void ProcessData(NetworkPacket *pkt)
Definition: client.cpp:849
bool sendModChannelMessage(const std::string &channel, const std::string &message) override
Definition: client.cpp:2005
void handleCommand_PlaySound(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:787
bool registerModStorage(ModMetadata *meta) override
Definition: client.cpp:1947
void startAuth(AuthMechanism chosen_auth_mechanism)
Definition: client.cpp:1035
void unregisterModStorage(const std::string &name) override
Definition: client.cpp:1959
void handleCommand_Null(NetworkPacket *pkt)
Definition: client.h:169
bool joinModChannel(const std::string &channel) override
Definition: client.cpp:1979
void handleCommand_SrpBytesSandB(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1425
void scanModSubfolder(const std::string &mod_name, const std::string &mod_path, std::string mod_subpath)
Definition: client.cpp:205
~Client()
Definition: client.cpp:278
void deletingPeer(con::Peer *peer, bool timeout) override
Definition: client.cpp:741
void removeNode(v3s16 p)
Definition: client.cpp:1306
u64 getCSMRestrictionFlags() const
Definition: client.h:408
void initLocalMapSaving(const Address &address, const std::string &hostname, bool is_local_server)
Definition: client.cpp:784
u16 m_proto_ver
Definition: client.h:496
bool canSendChatMessage() const
Definition: client.cpp:1179
void handleCommand_InventoryFormSpec(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:902
bool m_activeobjects_received
Definition: client.h:535
GameUI * m_game_ui
Definition: client.h:575
void sendChangePassword(const std::string &oldpassword, const std::string &newpassword)
Definition: client.cpp:1225
u16 allocateUnknownNodeId(const std::string &name) override
Definition: client.cpp:1883
void handleCommand_Deprecated(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:47
void sendReady()
Definition: client.cpp:1252
u8 m_server_ser_ver
Definition: client.h:489
void handleCommand_HudSetFlags(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1149
void peerAdded(con::Peer *peer) override
Definition: client.cpp:736
void step(float dtime)
Definition: client.cpp:323
bool accessDenied() const
Definition: client.h:315
const std::vector< ModSpec > & getMods() const override
Definition: client.cpp:245
bool m_update_wielded_item
Definition: client.h:498
float m_chat_message_allowance
Definition: client.h:511
void sendPlayerPos()
Definition: client.cpp:1265
void handleCommand_HudSetSun(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1299
void * m_auth_data
Definition: client.h:527
PacketCounter m_packetcounter
Definition: client.h:501
u64 getMapSeed()
Definition: client.h:301
ParticleManager m_particle_manager
Definition: client.h:481
int getCrackLevel()
Definition: client.cpp:1484
float m_time_of_day_update_timer
Definition: client.h:545
u16 getHP()
Definition: client.cpp:1514
const std::string & getFormspecPrepend() const
Definition: client.h:429
void handleCommand_RemoveNode(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:228
void sendChatMessage(const std::wstring &message)
Definition: client.cpp:1193
void handleCommand_Breath(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:579
void handleCommand_BlockData(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:284
void sendRemovedSounds(std::vector< s32 > &soundList)
Definition: client.cpp:1107
std::unique_ptr< ModChannelMgr > m_modchannel_mgr
Definition: client.h:595
void afterContentReceived()
Definition: client.cpp:1694
void handleCommand_HudRemove(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1092
const bool itemdefReceived() const
Definition: client.h:329
virtual IWritableShaderSource * getShaderSource()
Definition: client.cpp:1878
float getCurRate()
Definition: client.cpp:1767
void handleCommand_ActiveObjectRemoveAdd(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:436
bool m_shutdown
Definition: client.h:589
bool isShutdown()
Definition: client.cpp:273
void handleCommand_Inventory(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:332
void addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server=false, bool urgent=false)
Definition: client.cpp:1596
void handleCommand_OverrideDayNightRatio(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1367
bool m_nodedef_received
Definition: client.h:534
u64 m_map_seed
Definition: client.h:518
Inventory * m_inventory_from_server
Definition: client.h:499
void handleCommand_MinimapModes(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1624
bool m_itemdef_received
Definition: client.h:533
void setPlayerItem(u16 item)
Definition: client.cpp:1390
LocalClientState getState()
Definition: client.h:385
ClientMediaDownloader * m_media_downloader
Definition: client.h:538
void confirmRegistration()
Definition: client.cpp:1029
float getRTT()
Definition: client.cpp:1762
float m_playerpos_send_timer
Definition: client.h:468
ModChannel * getModChannel(const std::string &channel) override
Definition: client.cpp:2024
virtual scene::IAnimatedMesh * getMesh(const std::string &filename, bool cache=false)
Definition: client.cpp:1905
bool m_access_denied
Definition: client.h:529
void connect(Address address, bool is_local_server)
Definition: client.cpp:314
static const std::string & getClientModsLuaPath()
Definition: client.cpp:239
void handleCommand_AccessDenied(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:176
ITextureSource * getTextureSource()
Definition: client.cpp:1874
std::unordered_map< u32, u32 > & getHUDTranslationMap()
Definition: client.h:418
void handleCommand_AddParticleSpawner(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:975
ClientEnvironment & getEnv()
Definition: client.h:247
u16 m_cache_save_interval
Definition: client.h:580
void handleCommand_ModChannelSignal(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1554
void handleCommand_CSMRestrictionFlags(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1467
bool leaveModChannel(const std::string &channel) override
Definition: client.cpp:1992
const bool nodedefReceived() const
Definition: client.h:331
AuthMechanism m_chosen_auth_mech
Definition: client.h:526
std::queue< ChatMessage * > m_chat_queue
Definition: client.h:512
std::unordered_set< std::string > m_privileges
Definition: client.h:563
void showMinimap(bool show=true)
Definition: client.cpp:1854
void handleCommand_Fov(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:535
void sendGotBlocks(const std::vector< v3s16 > &blocks)
Definition: client.cpp:1097
MtEventManager * m_event
Definition: client.h:476
void handleCommand_MediaPush(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1487
void handleCommand(NetworkPacket *pkt)
Definition: client.cpp:840
void handleCommand_TimeOfDay(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:352
void setCrack(int level, v3s16 pos)
Definition: client.cpp:1494
bool m_access_denied_reconnect
Definition: client.h:530
bool updateWieldedItem()
Definition: client.cpp:1402
bool reconnectRequested() const
Definition: client.h:317
std::unordered_set< std::string > m_media_pushed_files
Definition: client.h:540
const NodeDefManager * getNodeDefManager() override
Definition: client.cpp:1865
void handleCommand_AcceptSudoMode(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:153
const std::list< std::string > & getConnectedPlayerNames()
Definition: client.h:279
v3s16 m_crack_pos
Definition: client.h:505
std::unique_ptr< con::Connection > m_con
Definition: client.h:482
DISABLE_CLASS_COPY(Client)
bool getChatMessage(std::wstring &message)
Definition: client.cpp:1521
const std::unordered_set< std::string > & getPrivilegeList() const
Definition: client.h:295
ISoundManager * sound()
Definition: client.h:249
float m_packetcounter_timer
Definition: client.h:465
std::string m_address_name
Definition: client.h:483
const std::string & getAddressName() const
Definition: client.h:403
ClientEnvironment m_env
Definition: client.h:480
void ReceiveAll()
Definition: client.cpp:813
void sendInventoryAction(InventoryAction *a)
Definition: client.cpp:1164
void handleCommand_SpawnParticle(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:960
Camera * getCamera()
Definition: client.h:355
std::unordered_map< s32, int > m_sounds_server_to_client
Definition: client.h:553
void handleCommand_HudAdd(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1042
void handleCommand_ShowFormSpec(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:944
void handleCommand_CloudParams(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:1339
u32 m_last_chat_message_sent
Definition: client.h:510
Minimap * getMinimap()
Definition: client.h:352
void handleCommand_Media(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:692
bool m_time_of_day_set
Definition: client.h:543
virtual ParticleManager * getParticleManager()
Definition: client.cpp:1900
float getAnimationTime()
Definition: client.cpp:1479
void sendRespawn()
Definition: client.cpp:1246
v3s16 CSMClampPos(v3s16 pos)
Definition: client.cpp:1352
bool shouldShowMinimap() const
Definition: client.cpp:1844
void handleCommand_FadeSound(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:868
void handleCommand_StopSound(NetworkPacket *pkt)
Definition: clientpackethandler.cpp:855
MeshUpdateThread m_mesh_update_thread
Definition: client.h:479
ClientScripting * m_script
Definition: client.h:583
Definition: craftdef.h:405
Definition: itemdef.h:105
Definition: itemdef.h:139
Definition: numeric.h:319
Definition: inventorymanager.h:106
Definition: inventory.h:282
Definition: mapblock_mesh.h:86
Definition: database.h:38
Definition: mesh_generator_thread.h:110
v3s16 m_camera_offset
Definition: mesh_generator_thread.h:118
Definition: minimap.h:114
Definition: modchannels.h:67
Definition: modchannels.h:38
Definition: networkpacket.h:28
This class is for getting the actual properties of nodes from their content ID.
Definition: nodedef.h:510
std::map< u16, u32 > m_packets
Definition: client.h:102
void print(std::ostream &o) const
Definition: client.cpp:75
void add(u16 command)
Definition: client.h:83
u32 sum() const
Definition: client.cpp:67
void clear()
Definition: client.h:92
Class doing particle as well as their spawners handling.
Definition: particles.h:142
const char * getName() const
Definition: player.h:147
std::string formspec_prepend
Definition: player.h:181
Definition: connection.h:755
Definition: peerhandler.h:40
Definition: connection.h:523
LocalClientState
Definition: client.h:68
@ LC_Init
Definition: client.h:70
@ LC_Created
Definition: client.h:69
@ LC_Ready
Definition: client.h:71
core::vector3d< s16 > v3s16
Definition: irr_v3d.h:28
CSMRestrictionFlags
Definition: networkprotocol.h:1041
@ CSM_RF_NONE
Definition: networkprotocol.h:1042
InteractAction
Definition: networkprotocol.h:1057
AuthMechanism
Definition: networkprotocol.h:983
std::unordered_map< std::string, std::string > StringMap
Definition: string.h:60
Definition: chatmessage.h:35
Definition: clientevent.h:56
Definition: inventorymanager.h:126
Definition: inventorymanager.h:28
Definition: clientmap.h:29
Definition: mapnode.h:118
Definition: mapblock_mesh.h:40
An active object or node which is selected by a ray on the map.
Definition: pointedthing.h:36
std::string p(std::string path)
Definition: test_filepath.cpp:59