diff options
author | Pierre-Adrien Langrognet <upsilon@langg.net> | 2017-05-21 23:06:51 +0200 |
---|---|---|
committer | Loïc Blot <nerzhul@users.noreply.github.com> | 2017-05-21 23:06:51 +0200 |
commit | 39f4a2f607d44738d60db84eba4b30e3d7450204 (patch) | |
tree | 63a72301d3c53917b99fe0607f48219372f85b6f /src/client.h | |
parent | ec490abf5889e06c88887e17f1746043de3b10fe (diff) | |
download | minetest-39f4a2f607d44738d60db84eba4b30e3d7450204.tar.gz minetest-39f4a2f607d44738d60db84eba4b30e3d7450204.tar.bz2 minetest-39f4a2f607d44738d60db84eba4b30e3d7450204.zip |
[CSM] Add send_chat_message and run_server_chatcommand API functions (#5747)
* [CSM] Add send_chat_message and run_server_chatcommand API functions
* Add client-side chat message rate limiting
* Limit out chat queue size
* [CSM] Add minetest.clear_out_chat_queue API function and .clear_chat_queue chatcommand
* Last fixes/cleanups before merge
Diffstat (limited to 'src/client.h')
-rw-r--r-- | src/client.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/client.h b/src/client.h index cc0d4699d..b4145c76f 100644 --- a/src/client.h +++ b/src/client.h @@ -38,6 +38,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "tileanimation.h" #include "mesh_generator_thread.h" +#define CLIENT_CHAT_MESSAGE_LIMIT_PER_10S 10.0f + struct MeshMakeData; class MapBlockMesh; class IWritableTextureSource; @@ -360,6 +362,7 @@ public: const StringMap &fields); void sendInventoryAction(InventoryAction *a); void sendChatMessage(const std::wstring &message); + void clearOutChatQueue(); void sendChangePassword(const std::string &oldpassword, const std::string &newpassword); void sendDamage(u8 damage); @@ -565,6 +568,8 @@ private: inline std::string getPlayerName() { return m_env.getLocalPlayer()->getName(); } + bool canSendChatMessage() const; + float m_packetcounter_timer; float m_connection_reinit_timer; float m_avg_rtt_timer; @@ -612,6 +617,9 @@ private: //s32 m_daynight_i; //u32 m_daynight_ratio; std::queue<std::wstring> m_chat_queue; + std::queue<std::wstring> m_out_chat_queue; + u32 m_last_chat_message_sent; + float m_chat_message_allowance; // The authentication methods we can use to enter sudo mode (=change password) u32 m_sudo_auth_methods; |