summaryrefslogtreecommitdiff
path: root/src/client.h
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-09-26 00:11:20 +0200
committerGitHub <noreply@github.com>2017-09-26 00:11:20 +0200
commit6f1c90720402415b62fb4d5e809ec7dbc1cd7f96 (patch)
tree6f94c2bbc2d343be50945a0074bc16da282a4bc1 /src/client.h
parent6df312a608912b3cb21d04532151e29e8b0c7301 (diff)
downloadminetest-6f1c90720402415b62fb4d5e809ec7dbc1cd7f96.tar.gz
minetest-6f1c90720402415b62fb4d5e809ec7dbc1cd7f96.tar.bz2
minetest-6f1c90720402415b62fb4d5e809ec7dbc1cd7f96.zip
Implement mod communication channels (#6351)
Implement network communication for channels * Implement ModChannel manager server side to route incoming messages from clients to other clients * Add signal handler switch on client & ModChannelMgr on client to handle channels * Add Lua API bindings + client packet sending + unittests * Implement server message sending * Add callback from received message handler to Lua API using registration method
Diffstat (limited to 'src/client.h')
-rw-r--r--src/client.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/client.h b/src/client.h
index 420d18895..36f564086 100644
--- a/src/client.h
+++ b/src/client.h
@@ -52,6 +52,7 @@ class IWritableNodeDefManager;
//class IWritableCraftDefManager;
class ClientMediaDownloader;
struct MapDrawControl;
+class ModChannelMgr;
class MtEventManager;
struct PointedThing;
class MapDatabase;
@@ -224,6 +225,8 @@ public:
void handleCommand_LocalPlayerAnimations(NetworkPacket* pkt);
void handleCommand_EyeOffset(NetworkPacket* pkt);
void handleCommand_UpdatePlayerList(NetworkPacket* pkt);
+ void handleCommand_ModChannelMsg(NetworkPacket *pkt);
+ void handleCommand_ModChannelSignal(NetworkPacket *pkt);
void handleCommand_SrpBytesSandB(NetworkPacket* pkt);
void handleCommand_CSMFlavourLimits(NetworkPacket *pkt);
@@ -424,6 +427,11 @@ public:
return m_csm_noderange_limit;
}
+ bool joinModChannel(const std::string &channel);
+ bool leaveModChannel(const std::string &channel);
+ bool sendModChannelMessage(const std::string &channel, const std::string &message);
+ ModChannel *getModChannel(const std::string &channel);
+
private:
// Virtual methods from con::PeerHandler
@@ -580,4 +588,6 @@ private:
// CSM flavour limits byteflag
u64 m_csm_flavour_limits = CSMFlavourLimit::CSM_FL_NONE;
u32 m_csm_noderange_limit = 8;
+
+ std::unique_ptr<ModChannelMgr> m_modchannel_mgr;
};