Add ability to exchange private messages between minetest servers
parent
19ea3bf7db
commit
9cbfe42ab4
13
README.md
13
README.md
|
@ -92,11 +92,17 @@ callback: Callback function (params: srvs)
|
|||
Description: Returns an indexed table containing all server names
|
||||
to the callback function
|
||||
```
|
||||
> `multiserver.send_msg(msg)`
|
||||
> `multiserver.broadcast_msg(msg)`
|
||||
```
|
||||
msg: Message to send
|
||||
Description: Sends a message to all other minetest servers
|
||||
```
|
||||
> `multiserver.send_msg(tosrv, msg)`
|
||||
```
|
||||
tosrv: Server to send the message to
|
||||
msg: Message to send
|
||||
Description: Sends a message to another minetest server
|
||||
```
|
||||
> `multiserver.register_on_joinplayer(callback)`
|
||||
```
|
||||
callback: Callback function (params: name, srv)
|
||||
|
@ -116,7 +122,8 @@ indicates whether the redirection was successful
|
|||
```
|
||||
> `multiserver.register_on_msg(callback)`
|
||||
```
|
||||
callback: Callback function (params: msg)
|
||||
callback: Callback function (params: msg, broadcast)
|
||||
Description: Registers a callback function for messages sent by other
|
||||
minetest servers
|
||||
minetest servers, broadcast is true if all servers were sent
|
||||
the message
|
||||
```
|
||||
|
|
|
@ -59,10 +59,14 @@ multiserver.get_servers = function(cb)
|
|||
multiserver.do_rpc("<-GETSRVS", cb)
|
||||
end
|
||||
|
||||
multiserver.send_msg = function(msg)
|
||||
multiserver.broadcast_msg = function(msg)
|
||||
multiserver.do_rpc("<-MT2MT " .. msg, nil)
|
||||
end
|
||||
|
||||
multiserver.send_msg = function(tosrv, msg)
|
||||
multiserver.do_rpc("<-MSG2MT " .. tosrv .. " " .. msg, nil)
|
||||
end
|
||||
|
||||
multiserver.register_on_joinplayer = function(cb)
|
||||
table.insert(multiserver.on_joinplayer, cb)
|
||||
end
|
||||
|
|
3
rpc.lua
3
rpc.lua
|
@ -57,13 +57,14 @@ minetest.register_on_modchannel_message(function(channel_name, sender, msg)
|
|||
end
|
||||
elseif cmd == "->MT2MT" then
|
||||
local smsg = msg:split(" ")
|
||||
local broadcast = multiserver.to_bool(smsg[2])
|
||||
local m = ""
|
||||
for i = 3, #smsg do
|
||||
m = m .. smsg[i]
|
||||
if i < #smsg then m = m .. " " end
|
||||
end
|
||||
for _, f in ipairs(multiserver.on_msg) do
|
||||
f(m)
|
||||
f(m, broadcast)
|
||||
end
|
||||
end
|
||||
if cb[rrq] == nil then return end
|
||||
|
|
Loading…
Reference in New Issue