From 6f1c90720402415b62fb4d5e809ec7dbc1cd7f96 Mon Sep 17 00:00:00 2001 From: Loïc Blot Date: Tue, 26 Sep 2017 00:11:20 +0200 Subject: 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 --- builtin/client/register.lua | 2 ++ builtin/game/register.lua | 1 + builtin/settingtypes.txt | 3 +++ 3 files changed, 6 insertions(+) (limited to 'builtin') diff --git a/builtin/client/register.lua b/builtin/client/register.lua index cfc5abaa7..2b835c744 100644 --- a/builtin/client/register.lua +++ b/builtin/client/register.lua @@ -71,3 +71,5 @@ core.registered_on_dignode, core.register_on_dignode = make_registration() core.registered_on_punchnode, core.register_on_punchnode = make_registration() core.registered_on_placenode, core.register_on_placenode = make_registration() core.registered_on_item_use, core.register_on_item_use = make_registration() +core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration() +core.registered_on_modchannel_signal, core.register_on_modchannel_signal = make_registration() diff --git a/builtin/game/register.lua b/builtin/game/register.lua index 06c9c61d2..f5d4ea216 100644 --- a/builtin/game/register.lua +++ b/builtin/game/register.lua @@ -583,6 +583,7 @@ core.registered_on_punchplayers, core.register_on_punchplayer = make_registratio core.registered_on_priv_grant, core.register_on_priv_grant = make_registration() core.registered_on_priv_revoke, core.register_on_priv_revoke = make_registration() core.registered_can_bypass_userlimit, core.register_can_bypass_userlimit = make_registration() +core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration() -- -- Compatibility for on_mapgen_init() diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 4cfd2fe53..926a881fe 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -928,6 +928,9 @@ player_transfer_distance (Player transfer distance) int 0 # Whether to allow players to damage and kill each other. enable_pvp (Player versus Player) bool true +# Enable mod channels support. +enable_mod_channels (Mod channels) bool false + # If this is set, players will always (re)spawn at the given position. static_spawnpoint (Static spawnpoint) string -- cgit v1.2.3