forked from mtcontrib/pipeworks
added reserved teleport channels
This commit is contained in:
parent
6323a923e0
commit
f66336394e
@ -94,6 +94,25 @@ register_tube("pipeworks:teleport_tube","Teleporter pneumatic tube segment",tele
|
|||||||
end,
|
end,
|
||||||
on_receive_fields = function(pos,formname,fields,sender)
|
on_receive_fields = function(pos,formname,fields,sender)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
|
|
||||||
|
--check for private channels
|
||||||
|
if fields.channel ~= nil then
|
||||||
|
local name, mode = fields.channel:match("^([^:;]+)([:;])")
|
||||||
|
if name and mode and name ~= sender:get_player_name() then
|
||||||
|
|
||||||
|
--channels starting with '[name]:' can only be used by the named player
|
||||||
|
if mode == ":" then
|
||||||
|
minetest.chat_send_player(sender:get_player_name(), "Sorry, channel '"..fields.channel.."' is reserved for exclusive use by "..name)
|
||||||
|
return
|
||||||
|
|
||||||
|
--channels starting with '[name];' can be used by other players, but cannot be received from
|
||||||
|
elseif mode == ";" and (meta:get_int("can_receive") ~= 0) == (fields["bt"] == nil) then
|
||||||
|
minetest.chat_send_player(sender:get_player_name(), "Sorry, receiving from channel '"..fields.channel.."' is reserved for "..name)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if fields.channel==nil then fields.channel=meta:get_string("channel") end
|
if fields.channel==nil then fields.channel=meta:get_string("channel") end
|
||||||
meta:set_string("channel",fields.channel)
|
meta:set_string("channel",fields.channel)
|
||||||
remove_tube_in_file(pos)
|
remove_tube_in_file(pos)
|
||||||
|
Loading…
Reference in New Issue
Block a user